[U-Boot] [PATCH 3/3] Kconfig: i2c: add entry for driver-model software i2c

Przemyslaw Marczak p.marczak at samsung.com
Tue Mar 10 11:30:44 CET 2015


Signed-off-by: Przemyslaw Marczak <p.marczak at samsung.com>
Cc: Masahiro Yamada <yamada.m at jp.panasonic.com>
Cc: Mike Frysinger <vapier at gentoo.org>
Cc: Simon Glass <sjg at chromium.org>
Cc: Heiko Schocher <hs at 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 at 13500000";
+	    i2c6 = "/soft-i2c at 1";
+	    [...]
+	  }
+
+	  /* And next define the basic bus attributes */
+	  soft-i2c at 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 at 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



More information about the U-Boot mailing list