
Hi Przemyslaw,
Signed-off-by: Przemyslaw Marczak p.marczak@samsung.com Cc: Masahiro Yamada yamada.m@jp.panasonic.com Cc: Mike Frysinger vapier@gentoo.org Cc: Simon Glass sjg@chromium.org Cc: Heiko Schocher hs@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
Reviewed-by: Lukasz Majewski l.majewski@samsung.com