From mboxrd@z Thu Jan 1 00:00:00 1970 From: Masahiro Yamada Date: Wed, 25 Mar 2015 12:35:07 +0900 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: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi. 2015-03-10 19:30 GMT+09:00 Przemyslaw Marczak : > Signed-off-by: Przemyslaw Marczak > Cc: Masahiro Yamada I am no longer working for Panasonic. The old email address will get unavailable at the end of March. Going forward, please use my new address, yamada.masahiro at socionext.com > > 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. Very nice! > + 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"; > + [...] > + } This description is not specific to this CONFIG option. The relation between the aliases node and the sequence number is well-documented in doc/driver-model/README.txt. Should we repeat it here? > + /* 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>; > + [...] > + }; > + } This is binding information, right? Stuff like that is usually documented in a separate text file. In Linux, Documentation/devicetree/bindings/i2c/ In U-boot, doc/device-tree-bindings/i2c/ > + 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!) > + ... This is the usage of "i2c" command. It is not specific to this option, either. > + 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 at lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot -- Best Regards Masahiro Yamada