ramips: cleanup the RB750Gr3 support
authorAnton Arapov <arapov@gmail.com>
Sat, 29 Dec 2018 00:28:27 +0000 (01:28 +0100)
committerMathias Kresin <dev@kresin.me>
Sat, 5 Jan 2019 11:28:22 +0000 (12:28 +0100)
Always enable the pwr led and use the usr led for boot status indication.

Rename nodes in the dts, to match what is recommend in the devicetree
specification.

Increase the maximum spi frequency to 20MHz and drop the m25p,chunked-io
which isn't required on mt7621.

Use the BTN_0 keycode for the mode button. This board doesn't have any
wireless.

Use a more descriptive label for the reset button and the GPIO enabling
the usb vcc supply.

Use the beeper kernel module for the buzzer.

Fix the pinmux to switch only pins used as GPIOs to the GPIO function.
Add support for the PoE enable GPIO to the userspace. The PoE power
status can be read via GPIO7. Since OpenWrt doesn't have support for
reading inputs from userspace, prepare only the pinmux for the GPIO.

Signed-off-by: Anton Arapov <arapov@gmail.com>
Signed-off-by: Thibaut VARĂˆNE <hacks@slashdirt.org>
Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/ramips/base-files/etc/board.d/03_gpio_switches
target/linux/ramips/dts/RB750Gr3.dts
target/linux/ramips/image/mt7621.mk

index a847a64d6bb026bb7e7943f8ecec92864eb96ec3..a5f9124d12a57c81781a9a6f87712d267c1bebdd 100755 (executable)
@@ -7,6 +7,9 @@ board_config_update
 board=$(board_name)
 
 case "$board" in
 board=$(board_name)
 
 case "$board" in
+mikrotik,rb750gr3)
+       ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "17"
+       ;;
 ubnt-erx)
        ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "0"
        ;;
 ubnt-erx)
        ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "0"
        ;;
index da9167ad8199246dbf62d7a5caa1f815953f48f2..e0df72d967433a64fde077581b7890aea65baf1f 100644 (file)
@@ -7,13 +7,13 @@
 
 / {
        compatible = "mikrotik,rb750gr3", "mediatek,mt7621-soc";
 
 / {
        compatible = "mikrotik,rb750gr3", "mediatek,mt7621-soc";
-       model = "MikroTik RB750Gr3";
+       model = "MikroTik RouterBOARD 750Gr3";
 
        aliases {
 
        aliases {
-               led-boot = &led_pwr;
-               led-failsafe = &led_pwr;
-               led-running = &led_pwr;
-               led-upgrade = &led_pwr;
+               led-boot = &led_usr;
+               led-failsafe = &led_usr;
+               led-running = &led_usr;
+               led-upgrade = &led_usr;
        };
 
        memory@0 {
        };
 
        memory@0 {
                bootargs = "console=ttyS0,115200";
        };
 
                bootargs = "console=ttyS0,115200";
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                compatible = "gpio-leds";
 
-               led_pwr: pwr {
+               pwr {
                        label = "rb750gr3:blue:pwr";
                        gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
                        label = "rb750gr3:blue:pwr";
                        gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
                };
 
                };
 
-               usr {
+               led_usr: usr {
                        label = "rb750gr3:green:usr";
                        gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
                };
        };
 
                        label = "rb750gr3:green:usr";
                        gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
                };
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
                mode {
                        label = "mode";
                        gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
                mode {
                        label = "mode";
                        gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_RFKILL>;
+                       linux,code = <BTN_0>;
                };
 
                };
 
-               res {
-                       label = "res";
+               reset {
+                       label = "reset";
                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_RESTART>;
                };
        };
 
                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_RESTART>;
                };
        };
 
+       beeper {
+               compatible = "gpio-beeper";
+               gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+       };
+
        gpio_export {
                compatible = "gpio-export";
                #size-cells = <0>;
 
        gpio_export {
                compatible = "gpio-export";
                #size-cells = <0>;
 
-               buzzer {
-                       gpio-export,name = "buzzer";
-                       gpio-export,output = <0>;
-                       gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
-               };
-
-               usb {
-                       gpio-export,name = "usb";
+               usb_power {
+                       gpio-export,name = "usb_power";
                        gpio-export,output = <1>;
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
                        gpio-export,output = <1>;
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
 &spi0 {
        status = "okay";
 
 &spi0 {
        status = "okay";
 
-       m25p80@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                compatible = "jedec,spi-nor";
                reg = <0>;
-               spi-max-frequency = <10000000>;
-               m25p,chunked-io = <32>;
+               spi-max-frequency = <20000000>;
 
                partitions {
                        compatible = "fixed-partitions";
 
                partitions {
                        compatible = "fixed-partitions";
 &pinctrl {
        state_default: pinctrl0 {
                gpio {
 &pinctrl {
        state_default: pinctrl0 {
                gpio {
-                       ralink,group = "i2c", "uart2", "uart3", "pcie", "rgmii2", "jtag";
+                       /* via gpio7 (uart3 group) the PoE status can be read */
+                       ralink,group = "uart2", "uart3", "jtag", "wdt";
                        ralink,function = "gpio";
                };
        };
                        ralink,function = "gpio";
                };
        };
index 3f0c4bb76ee2f2f7643c03a63b118f675421c45f..0e5e48770ca666ecf5c063f2ab7d52b5b458c852 100644 (file)
@@ -339,6 +339,7 @@ define Device/mikrotik_rb750gr3
   $(Device/MikroTik)
   DTS := RB750Gr3
   DEVICE_TITLE := MikroTik RouterBOARD RB750Gr3
   $(Device/MikroTik)
   DTS := RB750Gr3
   DEVICE_TITLE := MikroTik RouterBOARD RB750Gr3
+  DEVICE_PACKAGES += kmod-gpio-beeper
 endef
 TARGET_DEVICES += mikrotik_rb750gr3
 
 endef
 TARGET_DEVICES += mikrotik_rb750gr3