One of our external devices can be interfaced directly as a memory mapped peripheral. It can be configured for 8-bit or 16-bit parallel operation
Citing the Hardware Design Guide
The A0 signal is not needed in 16-bit parallel operating mode, as 16 bits are addressed instead of 8 bits. If there is need for writing one byte at the time signals WEH and WEL can be used to enable writing to the high or low byte respectively. If both are enabled both bytes are written.
This is the function table:
| WEL (WE) | WEH (A0) | OE | Comment | +----------+----------+----------+---------------------+ | LOW | HIGH | X | D[0..7] is written | | HIGH | LOW | X | D[8..15] is written | | LOW | LOW | X | D[0..15] is written | | HIGH | HIGH | LOW | D[0..15] is read |
Using the sram driver as explained in Accessing External Memory Bus (EIM) on iMX6 via memory map writing D[0…15] is no problem as 16bit addresses always have A0 set to 0 and we are not interested in single byte writes.
But reading is impossible.
Is there any Linux Kernel driver which is compatible with this kind of external memory bus? Or can EIM_DA0 be configured in a way that it functions as WE?