Hello,
Why do you need to use DMA if you also need interrupts for each received byte? The whole point if using DMA is to avoid these interrupts, thus reducing CPU load.
The driver will not generate events for each byte no matter what mode you use. It will only generate events when it fills the Rx buffer. If you want to get events after each byte, then you need to provide a buffer of size 1. Then the driver will send the event UART_EVENT_RX_FULL when a byte is received, and in the callback you can call FLEXIO_UART_DRV_SetRxBuffer to provide another buffer for the next byte (or reconfirm that the same buffer can be used again).
You can check the example driver_examples\communication\flexio_uart, it receives data byte by byte in the way described above.
Best regards,
Cristian