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 {
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>;
};
};