[U-Boot] soft-i2c and i2c-gpio issues with at91

Simon Glass sjg at chromium.org
Tue May 26 15:47:01 CEST 2015


(adding Przemyslaw who uses the I2C GPIO driver)

Hi,

On 25 May 2015 at 22:30, Heiko Schocher <hs at denx.de> wrote:
> Hello Matt,
>
> Am 22.05.2015 16:35, schrieb Matt Wood:
>>
>> Hi all, I am trying to get a bitbanged i2c port working with u-boot on an
>> Atmel SAMA5D3 platform.  I have added DT bindings to support the I2C
>> drivers however when I try to select the bus on the u-boot command line I
>> consistently get an error in gpio-uclass:
>
>
> I am not sure, if DM is supported on this plattform yet, I added
> Andreas Biesmann (AT91) and Simon Glass (DM) to Cc, maybe one of them
> can help you here ...
>
> bye,
> Heiko
>
>>
>> _gpio_request_by_name_nodev: uclass_get_device_by_of_offset failed
>>
>> _gpio_request_by_name_nodev: Node 'soft-i2c at 1', property 'gpios', failed
>> to
>> request GPIO index 0: -19
>>
>> Each driver always fails at the get_dev_by_offset routine.
>>
>> I suspect some issue with the way the GPIO is defined or is not setup
>> correctly.  Has anyone seen this or have any advice on where to look?
>>
>> This is the relevant part of the device tree:
>>
>> aliases {
>>
>>                  i2c0 = "/soft-i2c at 1";
>>
>> };
>>
>>
>> soft-i2c at 1 {
>>
>>                  #address-cells = <1>;
>>
>>                  #size-cells = <0>;
>>
>> /*              compatible = "soft-i2c"; */
>>
>>                  compatible = "i2c-gpio";
>>
>> /*              clock-frequency = <100000>; */
>>
>> /*              pinctrl-names = "default";
>>
>>                  pinctrl-0 = <&pinctrl_soft_i2c>; */
>>
>>                  /* Define the proper GPIO pins */
>>
>>
>> /*
>>
>>
>>                  clock-pin = <&pioA 31 0>;
>>
>>                  data-pin = <&pioA 30 0>; */
>>
>>                  gpios = <&pioA 30 0     /* SDA */
>>
>>                           &pioA 31 0>;   /* SCL */
>>
>>
>>                  i2c-gpio,sda-open-drain;
>>
>>                  i2c-gpio,scl-open-drain;
>>
>>                  i2c-gpio,delay-us =<3>;
>>
>>
>>          };
>>
>> };

Can you post the output of 'dm tree' and 'dm uclass'? I wonder if your
GPIO driver is not connected up properly?

Are you using i2c-gpio.c? That driver should work as is on any
platform with only device tree additions.

Regards,
Simon


More information about the U-Boot mailing list