[U-Boot] [PATCH 3/3] Kconfig: i2c: add entry for driver-model software i2c
Przemyslaw Marczak
p.marczak at samsung.com
Thu Mar 26 14:17:43 CET 2015
Hello Masahiro,
On 03/25/2015 04:35 AM, Masahiro Yamada wrote:
> Hi.
>
>
>
> 2015-03-10 19:30 GMT+09:00 Przemyslaw Marczak <p.marczak at samsung.com>:
>> Signed-off-by: Przemyslaw Marczak <p.marczak at samsung.com>
>> Cc: Masahiro Yamada <yamada.m at jp.panasonic.com>
>
> 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
>
>
>
Ok, will update this.
>>
>> 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?
>
>
Yes, you are right. I wanted to put here all informations, required to
make it working with devices, since I think it could facilitate the
development for the others.
Will remove this.
>> + /* 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/
>
Right, will move into proper path.
>
>
>> + 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.
>
Ok.
>
>
>
>> + 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
>
>
>
Thanks for review!
Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com
More information about the U-Boot
mailing list