Thread (2 messages) 2 messages, 1 author, 2011-05-17

Re: i80 (Intel 8080-like) command interface to LCDs - how to implement

From: Heiko Stübner <heiko@sntech.de>
Date: 2011-05-17 16:25:47
Also in: linux-i2c, linux-spi, lkml

Am Dienstag 17 Mai 2011, 13:59:40 schrieb Heiko Stübner:
I'm trying to find the best way on implementing an i80 interface
(especially the command mode) between a s3c2416 and an AUO-K1900 (epaper
controller).

On the host side it is usable at least in all Samsung SoCs following the
S3C2443 and on the device side I've found, apart from the K1900, for
example the ili9320 and STM32F10xxx displays controllers using this
interface.

It looks a bit like a cross between SPI and I2C but fits neither category -
at least for my understanding.
after some more thoughts while cycling home, would it be sane to implement it 
as spi devices like:

lcd-ctrl <->i80_device (spi_device) <->spi-layer <-> i80_spi_master

i80_device would implement the message logic as described below
i80_spi_master would control the registers 

the write-enable/read-enable bit settings can be determined by the direction 
of the transfer, but how do I determine the value to set for RS?

The idea I had was to set bits_per_word to n+1, i.e. the register has 18 data 
bits and I would use the 19th bit do transmit the required RS setting.

Does this look at least halfway plausible?

Thanks
Heiko

[rest of this mail included as I have just added spi-devel to the recipients]
pins/pins consist of:
CS ... chip-select
RS ... control or data register select
WE ... write enable
RE ... read enable
D0-Dn ... data 0-n for variing values of n
(I've seen up to 18 data bits)


commands can look like:
(* set command mode)
* set chip-select

* set RS to control (mostly low)
* set WE to high
* write command to D
* unset WE
* set RS to data

* set WE
* write data to D
* unset WE
* set WE
* write data to D
* unset WE
...
* set RE
* read data from D
* unset RE
...
* unset chip-select
(* unset command mode)

the fourth possible state (read-control) is also used by the ili9320.

looks a lot like an i2c-transfer, i.e. something like
{
  { WC, 6001 }, //for write-control
  { WD, 576 }, //for write-data
  { WD, 12 }, //for write-data
  { RD, *buf } //for read-data
}
could represent the above command-sequence.


So, is this a new bus type or does it fit somehow into spi or i2c or some
other bus-type I don't know yet? Or, does code for i80 exist somewhere I
haven't looked yet?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help