From b99aee5080c05edd1681018c95f4ebdd762c8bae Mon Sep 17 00:00:00 2001 From: Mauri Sandberg Date: Sun, 6 Feb 2022 01:07:10 +0200 Subject: [PATCH] ath79: use gpio-cascade for Buffalo WZR-HP-G300NH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch to a generic GPIO cascade driver. Signed-off-by: Mauri Sandberg Signed-off-by: Petr Štetiar [missing commit description] --- .../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 ca1eeab4494f8..7b0c09f68e030 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 = ; - gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; + gpios = <&gpio3 1 GPIO_ACTIVE_LOW>; debounce-interval = <60>; }; router_auto { label = "router_auto"; linux,code = ; - gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; + gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>; debounce-interval = <60>; }; movie_on { label = "movie_on"; linux,code = ; - 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 3b23267b700b7..8988ac7a5e93c 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -496,7 +496,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