
Hi Masahiro,
On 19 December 2014 at 11:34, Masahiro Yamada yamada.m@jp.panasonic.com wrote:
Master send to / receive from 10-bit addressed slave devices can be supported by software layer without any hardware change because the LSB 8bit of the slave address is treated as data part.
Master Send to a 10bit-addressed slave chip is performed like this:
DIR Format M->S 11110 + address[9:8] + R/W(0) M->S address[7:0] M->S data0 M->S data1 ...
Master Receive from a 10bit-addressed slave chip is like this:
DIR Format M->S 11110 + address[9:8] + R/W(0) M->S address[7:0] (Restart) M->S 111110 + address[9:8] + R/W(1) S->M data0 S->M data1 ...
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Cc: Heiko Schocher hs@denx.de Cc: Simon Glass sjg@chromium.org
drivers/i2c/i2c-uclass.c | 80 +++++++++++++++++++++++++++++++----------------- include/i2c.h | 4 +++ 2 files changed, 56 insertions(+), 28 deletions(-)
Seems like a good idea if we can make it work...
But this is driver-specific. Some drivers have hardware to send the address and it isn't part of the message. For example see the tegra driver.
So what you have here feels a bit like a hack to me. Can't the driver implement it? If you are trying to avoid driver work to support 10-bit addresses, maybe it should be an option that we can enable for each driver, so we don't break the other drivers?
Regards, Simon