From mboxrd@z Thu Jan 1 00:00:00 1970
From: Przemyslaw Marczak
Date: Tue, 10 Mar 2015 11:30:44 +0100
Subject: [U-Boot] [PATCH 3/3] Kconfig: i2c: add entry for driver-model
software i2c
In-Reply-To: <1425983444-18565-1-git-send-email-p.marczak@samsung.com>
References: <1425983444-18565-1-git-send-email-p.marczak@samsung.com>
Message-ID: <1425983444-18565-4-git-send-email-p.marczak@samsung.com>
List-Id:
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
To: u-boot@lists.denx.de
Signed-off-by: Przemyslaw Marczak
Cc: Masahiro Yamada
Cc: Mike Frysinger
Cc: Simon Glass
Cc: Heiko Schocher
---
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