On Wed, 1 Jul 2015, Tobias Nygren wrote:
There are a few issues though: 1) I don't understand why the third argument to bus_space_subregion in awin_com_match needs to be divided by 4. It is already done in awin_com_attach and com ports are not correctly probed without it.
The MI com(4) driver expects single byte access but the hardware uses 32-bit registers. Note that we use aio_core_a4x_bst instead of aio_core_bst to access the device -- this is why the /4 is necessary.
2) timeout waiting for BUSY ack. Probably need to unmask some interrupt somewhere. (Any clues?)
It looks like COM_16750 option is in the kernel config (arch/arm/allwinner/files.awin) but the hardware only supports 16450 and 16550 modes according to the datasheet. Try removing it?
3) Should I bother to shut down the clocks in _match after probing and re-enable them in _attach?
If you're going to return a match, it's probably fine to leave them enabled. We can revisit when we move all of the clock stuff out into its own driver.
Cheers, Jared