[PATCH 5/6] ath79: use gpio-cascade for Buffalo WZR-HP-G300NH

Mauri Sandberg maukka at ext.kapsi.fi
Thu Nov 18 11:04:27 PST 2021


Signed-off-by: Mauri Sandberg <maukka at ext.kapsi.fi>
---
 .../dts/ar9132_buffalo_wzr-hp-g300nh.dtsi     | 41 ++++++++++++++-----
 target/linux/ath79/image/generic.mk           |  2 +-
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/target/linux/ath79/dts/ar9132_buffalo_wzr-hp-g300nh.dtsi b/target/linux/ath79/dts/ar9132_buffalo_wzr-hp-g300nh.dtsi
index ca1eeab449..7b0c09f68e 100644
--- a/target/linux/ath79/dts/ar9132_buffalo_wzr-hp-g300nh.dtsi
+++ b/target/linux/ath79/dts/ar9132_buffalo_wzr-hp-g300nh.dtsi
@@ -17,16 +17,37 @@
 		clock-frequency = <40000000>;
 	};
 
-	gpio2: gpio-extender {
-		compatible = "nxp,74hc153-gpio";
+	/* There is a GPIO driven NXP 74HC153 dual 4-way multiplexer on board
+	 * used for buttons that are on top of the the device.
+         */
+	mux: mux-controller {
+		compatible = "gpio-mux";
+		#mux-control-cells = <0>;
+
+		mux-gpios = <&gpio 9 GPIO_ACTIVE_HIGH>,		/* s0 */
+			    <&gpio 11 GPIO_ACTIVE_HIGH>;	/* s1 */
+	};
+
+	gpio2: key-mux1 {
+		compatible = "gpio-cascade";
+		mux-controls = <&mux>;
+
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		// GPIOs used by this node, the mux pin
+		upstream-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; /* 1y */
+	};
+
+	gpio3: key-mux2 {
+		compatible = "gpio-cascade";
+		mux-controls = <&mux>;
+
 		gpio-controller;
 		#gpio-cells = <2>;
 
-		// GPIOs used by this node
-		gpio-s0 = <&gpio 9 GPIO_ACTIVE_HIGH>;
-		gpio-s1 = <&gpio 11 GPIO_ACTIVE_HIGH>;
-		gpio-1y = <&gpio 12 GPIO_ACTIVE_HIGH>;
-		gpio-2y = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		// GPIOs used by this node, the mux pin
+		upstream-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; /* 2y */
 	};
 
 	keys {
@@ -64,21 +85,21 @@
 		usb {
 			label = "usb";
 			linux,code = <BTN_2>;
-			gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio3 1 GPIO_ACTIVE_LOW>;
 			debounce-interval = <60>;
 		};
 
 		router_auto {
 			label = "router_auto";
 			linux,code = <BTN_6>;
-			gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>;
 			debounce-interval = <60>;
 		};
 
 		movie_on {
 			label = "movie_on";
 			linux,code = <BTN_4>;
-			gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
 			debounce-interval = <60>;
 		};
 	};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index fb393ba082..de1a1519ff 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -483,7 +483,7 @@ define Device/buffalo_wzr-hp-g300nh
   SOC := ar9132
   BUFFALO_PRODUCT := WZR-HP-G300NH
   BUFFALO_HWVER := 1
-  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-gpio-nxp-74hc153
+  DEVICE_PACKAGES := kmod-gpio-cascade kmod-mux-gpio kmod-usb2 kmod-usb-ledtrig-usbport
   BLOCKSIZE := 128k
   IMAGE_SIZE := 32128k
   SUPPORTED_DEVICES += wzr-hp-g300nh
-- 
2.25.1




More information about the openwrt-devel mailing list