I'm trying to add support for F@st3864 in the BMIPS target and found that "gpio-leds" didnt work on the BCM63168 SOC.
"gpio-leds" or GPIOs with ID>32 dont work on the BMIPS target. These were working on the soon deprecated BCM63xx target.
Here is the relevant dts:
/ {
< omitted >
leds {
compatible = "gpio-leds";
led@36 {
gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
label = "green:wlan";
};
led@37 {
gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
label = "green:wlan_pull_up";
default-state = "on";
};
led@38 {
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
label = "amber:wan";
};
led@39 {
gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
label = "green:wan";
};
};
};
This wiki page said that:
When having more than 32 GPIOs they are splitted between 2 gpiochips. The labels in the Linux kernel are:
bcm63xx-gpio.0
bcm63xx-gpio.1
On my OpenWrt build, I get
root@OpenWrt:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 460-511, parent: platform/100000d0.pinctrl, 100000d0.pinctrl, can sleep:
gpio-492 ( |reset ) in hi ACTIVE LOW
gpio-493 ( |wps ) in hi ACTIVE LOW
gpio-494 ( |wlan ) in hi ACTIVE LOW
gpio-496 ( |green:wlan ) out lo ACTIVE LOW
gpio-497 ( |green:wlan_pull_up ) out lo
gpio-498 ( |amber:wan ) out lo ACTIVE LOW
gpio-499 ( |green:wan ) out lo ACTIVE LOW
root@OpenWrt:~# cat /sys/kernel/debug/pinctrl/100000d0.pinctrl/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner|gpio_owner (strict) hog?
pin 0 (gpio0): device 10001900.led-controller function serial_led_clk group gpio0
pin 1 (gpio1): device 10001900.led-controller function serial_led_data group gpio1
pin 2 (gpio2): UNCLAIMED
pin 3 (gpio3): UNCLAIMED
pin 4 (gpio4): UNCLAIMED
pin 5 (gpio5): UNCLAIMED
pin 6 (gpio6): UNCLAIMED
pin 7 (gpio7): UNCLAIMED
pin 8 (gpio8): device 10001900.led-controller function led group gpio8
pin 9 (gpio9): device 10001900.led-controller function led group gpio9
pin 10 (gpio10): UNCLAIMED
pin 11 (gpio11): UNCLAIMED
pin 12 (gpio12): UNCLAIMED
pin 13 (gpio13): UNCLAIMED
pin 14 (gpio14): UNCLAIMED
pin 15 (gpio15): device 10001900.led-controller function led group gpio15
pin 16 (gpio16): UNCLAIMED
pin 17 (gpio17): UNCLAIMED
pin 18 (gpio18): UNCLAIMED
pin 19 (gpio19): UNCLAIMED
pin 20 (gpio20): device 10001900.led-controller function led group gpio20
pin 21 (gpio21): UNCLAIMED
pin 22 (gpio22): UNCLAIMED
pin 23 (gpio23): UNCLAIMED
pin 24 (gpio24): UNCLAIMED
pin 25 (gpio25): UNCLAIMED
pin 26 (gpio26): UNCLAIMED
pin 27 (gpio27): UNCLAIMED
pin 28 (gpio28): UNCLAIMED
pin 29 (gpio29): UNCLAIMED
pin 30 (gpio30): UNCLAIMED
pin 31 (gpio31): UNCLAIMED
pin 32 (gpio32): UNCLAIMED
pin 33 (gpio33): UNCLAIMED
pin 34 (gpio34): UNCLAIMED
pin 35 (gpio35): UNCLAIMED
pin 36 (gpio36): UNCLAIMED
pin 37 (gpio37): UNCLAIMED
pin 38 (gpio38): UNCLAIMED
pin 39 (gpio39): UNCLAIMED
pin 40 (gpio40): UNCLAIMED
pin 41 (gpio41): UNCLAIMED
pin 42 (gpio42): UNCLAIMED
pin 43 (gpio43): UNCLAIMED
pin 44 (gpio44): UNCLAIMED
pin 45 (gpio45): UNCLAIMED
pin 46 (gpio46): UNCLAIMED
pin 47 (gpio47): UNCLAIMED
pin 48 (gpio48): UNCLAIMED
pin 49 (gpio49): UNCLAIMED
pin 50 (gpio50): UNCLAIMED
pin 51 (gpio51): UNCLAIMED
There is only one gpiochip, which is not consistent with the wiki.