[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#810894: src:linux: GPIO probe failure on Linkstation LS-WXL/WSXL



Roger Shimizu <rogershimizu@gmail.com> writes:

Hi,

> Dear Uwe,
>
> On Thu, Jan 14, 2016 at 11:08 PM, Uwe Kleine-König
> <uwe+debian@kleine-koenig.org> wrote:
>>>>> I need to run the following command to enable USB port on Linkstation
>>>>> LS-WXL/WSXL (armel/kirkwood with DTS [0] ):
>>>>>   echo 37 >/sys/class/gpio/export
>>>>>   echo out > /sys/class/gpio/gpio37/direction
>>>>>   echo 1 > /sys/class/gpio/gpio37/value
>>
>> Can you post the contents of /sys/kernel/debug/gpio when the broken
>> kernel is running?
>
> Thanks for the debugging tool!
> It seems there's clue ...
>
> Here's the log for working & non-working kernel:
>
> # uname -a
> Linux LS-WXL 4.2.0-0.bpo.1-kirkwood #1 Debian 4.2.6-3~bpo8+2
> (2015-12-14) armv5tel GNU/Linux
> # mount -t debugfs none /sys/kernel/debug
> # cat  /sys/kernel/debug/gpio
> GPIOs 0-31, platform/f1010100.gpio, f1010100.gpio:
>  gpio-28  (HDD0 Power          ) out hi
>  gpio-29  (HDD1 Power          ) out hi
>
> GPIOs 32-49, platform/f1010140.gpio, f1010140.gpio:
>  gpio-34  (?                   ) out hi
>  gpio-35  (?                   ) out hi
>  gpio-37  (?                   ) out lo
>  gpio-38  (?                   ) out hi
>  gpio-40  (?                   ) out hi
>
> # uname -a
> Linux LS-WXL 3.16.0-4-kirkwood #1 Debian 3.16.7-ckt7-1 (2015-03-01)
> armv5tel GNU/Linux
> # mount -t debugfs none /sys/kernel/debug
> # cat  /sys/kernel/debug/gpio
> GPIOs 0-31, platform/f1010100.gpio, f1010100.gpio:
>  gpio-28  (HDD0 Power          ) out hi
>  gpio-29  (HDD1 Power          ) out hi
>
> GPIOs 32-49, platform/f1010140.gpio, f1010140.gpio:
>  gpio-34  (lswxl:red:hdderr0   ) out hi
>  gpio-35  (lswxl:red:hdderr1   ) out hi
>  gpio-37  (lswxl:red:func      ) out lo
>  gpio-38  (lswxl:amber:info    ) out hi
>  gpio-40  (lswxl:blue:power    ) out hi

>From a quick look, dts looks broken, if gpio 37 is not for the led:
                       label = "lswxl:red:func";
                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;


btw, this is broken too:
               usb_power: regulator@1 {
...
                       gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;

There's no such a thing as gpio 37 on bank 0 as kirkwood bank have 32
gpios. I'm supprised nobody ever noticed it. Change it to "gpio1 5" and
there are chances that export won't be needed anymore.

imho, you should double check all the gpios entries in your dts.

Arnaud


Reply to: