outb etc are common interfaces. They will be translated to whatever the device driver translates them to. The default on X86 is I/O instructions. On ARM and other architectures, they are probably just memory accesses. What I meant by supporting the access types is that your FPGA device needs to be able to read or write the size data of the outb etc functions take as arguments. 8, 16, 32 bits depending on what you are using. 8 bit -> outb, 16 bit -> outw, 32 bit -> outl.
When writing your kernel driver, you can use the HAL functions or outb etc, or both as needed. It is easier to read if you use HAL, but more portable to use outb etc.