Signed-off-by: Przemyslaw Marczak <p.marc...@samsung.com> Cc: Masahiro Yamada <yamad...@jp.panasonic.com> Cc: Mike Frysinger <vap...@gentoo.org> Cc: Simon Glass <s...@chromium.org> Cc: Heiko Schocher <h...@denx.de> --- drivers/i2c/Kconfig | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 0a52ed9..dd7eb3c 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -13,6 +13,49 @@ config DM_I2C_COMPAT to convert all code for a board in a single commit. It should not be enabled for any board in an official release. +config DM_I2C_SOFT + bool "Enable Driver Model for Software I2C Driver" + depends on DM_I2C + help + Enable the i2c bus driver emulation by using GPIO. + The bus configuration is given by the device-tree, like below. + + /* First, define the alias number to have continuous bus numbering */ + aliases { + [...] + i2c5 = "/i2c@13500000"; + i2c6 = "/soft-i2c@1"; + [...] + } + + /* And next define the basic bus attributes */ + soft-i2c@1 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "soft-i2c"; + clock-frequency = <50000>; + /* Define the proper GPIO pins */ + clock-pin = <&gpa0 0 GPIO_ACTIVE_HIGH>; + data-pin = <&gpa0 1 GPIO_ACTIVE_HIGH>; + + /* Optionally, define some driver node (bus child) */ + somedev@0x44 { + compatible = "somedev"; + reg = <0x44>; + [...] + }; + } + + The device can be accessed by the i2c command: + # i2c dev 8 (bus number set by alias) + # i2c probe <0x44> (address is optionally) + # i2c md 0x44 0x0 (dump dev registers at address 0x0) + # Valid chip addresses: 0x44 (success!) + ... + + Driving the bus lines is done by dm gpio calls in the preprocessor + macros. Each, can be redefined by the user. + config SYS_I2C_UNIPHIER bool "UniPhier I2C driver" depends on ARCH_UNIPHIER && DM_I2C -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot