From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 23 Mar 2015 09:46:58 +0100 Subject: [U-Boot] [PATCH 3/3] Kconfig: i2c: add entry for driver-model software i2c In-Reply-To: <1425983444-18565-4-git-send-email-p.marczak@samsung.com> References: <1425983444-18565-1-git-send-email-p.marczak@samsung.com> <1425983444-18565-4-git-send-email-p.marczak@samsung.com> Message-ID: <20150323094658.17ed6edf@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Przemyslaw, > 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 Reviewed-by: Lukasz Majewski -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group