cygnus: Implement I2C driver
BUG=chrome-os-partner:35810
BRANCH=purin
TEST=Enable I2C1, reset devboard codec, read a register.
Here is the code that demonstrates how I2C works:
i2c_init(1, 100*KHz);
mdelay(50);
int rc = i2c_writeb(1, 0x18, 1, 0x80); // reset codec
printk(BIOS_INFO, "I2C reset rc=%d\n", rc);
mdelay(50);
uint8_t data = 0;
rc = i2c_readb(1, 0x18, 43, &data);
printk(BIOS_INFO, "I2C read rc=%d data=%x\n", rc, data); // data == 0x80
Signed-off-by: Anatol Pomazau <anatol@google.com>
Reviewed-on: https://chrome-internal-review.googlesource.com/195706
Reviewed-by: Daisuke Nojiri <dnojiri@google.com>
Reviewed-by: Anatol Pomazau <anatol@google.com>
Commit-Queue: Anatol Pomazau <anatol@google.com>
Tested-by: Anatol Pomazau <anatol@google.com>
Change-Id: I178acef9de18fa854983294edcd2c05886795e2a
Reviewed-on: https://chromium-review.googlesource.com/263496
Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Trybot-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
1 file changed