Skip to contentSkip to conversation

Meson8b: fix requesting GPIOs greater than GPIOZ_3

PATCH New Martin Blumenstingl 2 participants 3 messages Mar 12, 2018 – Mar 19, 2018

Subsystems (2)
lore
Share & tools
lore

Martin Blumenstingl

author reviewer
#0 lore raw

v3 cover Meson8b: fix requesting GPIOs greater than GPIOZ_3

GPIOs greater GPIOZ_3 (whose ID is 83 - as a reminder: this is exactly the number of actual GPIO lines on Meson8b) could not be requested. Using CARD_6 (ID 100, "base of the GPIO controller is 382) as an example:

$ echo 482 > /sys/class/gpio/export
export_store: invalid GPIO 482

This was discovered by Linus L?ssing when he was adding SD card support on the Odroid-C1.

changes since v2 at [1]
- added Jerome's Reviewed-by and Linus' Acked-by (thanks to both of you!)
- dropped patch #1 since Linus already applied it to the for-next branch of his linux-pinctrl tree (this leaves only patch #2 which should go through Kevin's linux-amlogic tree)

changes since RFC v1 at [0]:
- dropped RFC prefix
- instead of adding a hack to override the "ngpio" field this now splits the register definitions as suggested by Jerome (and based on the discussion of RFC v1). see the description of PATCH #1 for a more detailed explanation

[0] http://lists.infradead.org/pipermail/linux-amlogic/2018-January/006259.html
[1] http://lists.infradead.org/pipermail/linux-amlogic/2018-February/006546.html

Martin Blumenstingl (1):
ARM: dts: meson8b: the CBUS GPIO controller only has 83 GPIOs

 arch/arm/boot/dts/meson8b.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Signature · 1 line
2.16.2
author reviewer
#1 lore raw

PATCH v3 1/1 ARM: dts: meson8b: the CBUS GPIO controller only has 83 GPIOs

Update the "gpio-ranges" property of the CBUS GPIO controller on Meson8b because it only provides 83 GPIOs.
The GPIO definitions in include/dt-bindings/gpio/meson8b-gpio.h inherited all GPIOs from Meson8 until recently. However, Meson8b does not support all GPIOs which are supported by Meson8 (Meson8b doesn't have a GPIOZ bank, most of the pins from the GPIODV bank are missing on Meson8b - just to name a few differences).

The actual number of GPIOs is only 83, instead of 120 from Meson8 plus the 10 GPIOs from the DIF bank on Meson8b.

---
 arch/arm/boot/dts/meson8b.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/meson8b.dtsi +1 -1
index 5f7841b2d163..9fa77975354b 100644
@@ -183,7 +183,7 @@
 			reg-names = "mux", "pull", "pull-enable", "gpio";
 			gpio-controller;
 			#gpio-cells = <2>;
-			gpio-ranges = <&pinctrl_cbus 0 0 130>;
+			gpio-ranges = <&pinctrl_cbus 0 0 83>;
 		};
 
 		eth_rgmii_pins: eth-rgmii {
Signature · 1 line
2.16.2
maintainer Applied
#2 lore raw

PATCH v3 1/1 ARM: dts: meson8b: the CBUS GPIO controller only has 83 GPIOs

Quoted 8 lines · Martin Blumenstingl

Update the "gpio-ranges" property of the CBUS GPIO controller on Meson8b because it only provides 83 GPIOs.
The GPIO definitions in include/dt-bindings/gpio/meson8b-gpio.h inherited all GPIOs from Meson8 until recently. However, Meson8b does not support all GPIOs which are supported by Meson8 (Meson8b doesn't have a GPIOZ bank, most of the pins from the GPIODV bank are missing on Meson8b - just to name a few differences).

Quoted 6 lines

The actual number of GPIOs is only 83, instead of 120 from Meson8 plus the 10 GPIOs from the DIF bank on Meson8b.

Applied to v4.17/dt,

Thanks,

Kevin