ipq40xx: add LED functions for Google WiFi
[openwrt/staging/dedeckeh.git] / target / linux / ipq40xx / files / arch / arm / boot / dts / qcom-ipq4019-wifi.dts
index 643449f8e4c8946cd623e6e1d7d4384543068add..f92c28973810a56a87f256e0ab171b9c0575ea6e 100644 (file)
        model = "Google WiFi (Gale)";
        compatible = "google,wifi", "google,gale-v2", "qcom,ipq4019";
 
+       aliases {
+               label-mac-device = &gmac0;
+               led-boot = &led0_blue;
+               led-failsafe = &led0_red;
+               led-running = &led0_blue;
+               led-upgrade = &led0_red;
+       };
+
        chosen {
                /*
                 * rootwait: in case we're booting from slow/async USB storage.
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512MB */
        };
+
+       soc {
+               edma@c080000 {
+                       /*
+                        * Factory bootloader (depthcharge) will fail to boot
+                        * if this exact path (soc/edma@c080000/gmac0) doesn't
+                        * exist.
+                        */
+                       gmac0: gmac0 {
+                       };
+
+                       /*
+                        * Factory bootloader (depthcharge) will fail to boot
+                        * if this exact path (soc/edma@c080000/gmac1) doesn't
+                        * exist.
+                        */
+                       gmac1 {
+                       };
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&fw_pinmux>;
+               pinctrl-names = "default";
+
+               reset {
+                       label = "reset";
+                       gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
 };
 
 &tlmm {
-       fw_pinmux {
+       fw_pinmux: fw_pinmux {
                wp {
                        pins = "gpio53";
                        output-low;
                };
                recovery {
                        pins = "gpio57";
+                       function = "gpio";
                        bias-none;
                };
                developer {
                clock-mode = /bits/ 8 <1>;
 
 #if 1
-               led@0 {
+               led0_red: led@0 {
                        reg = <0>;
                        chan-name = "LED0_Red";
                        led-cur = /bits/ 8 <0x64>;
                        max-cur = /bits/ 8 <0x78>;
                        color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
                };
 
                led@1 {
                        color = <LED_COLOR_ID_GREEN>;
                };
 
-               led@2 {
+               led0_blue: led@2 {
                        reg = <2>;
                        chan-name = "LED0_Blue";
                        led-cur = /bits/ 8 <0x64>;
                        max-cur = /bits/ 8 <0x78>;
                        color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_POWER;
                };
 #else
                /*
                 * # echo 255 > /sys/class/leds/tricolor/brightness
                 */
                multi-led@2 {
+                       function = LED_FUNCTION_POWER;
                        reg = <2>;
                        color = <LED_COLOR_ID_RGB>;
                        #address-cells = <1>;
        status = "okay";
 };
 
+&gmac {
+       status = "okay";
+};
+
 &mdio {
        status = "okay";
        pinctrl-0 = <&mdio_pins>;
        non-removable;
 };
 
+&switch {
+       status = "okay";
+};
+
+&swport4 {
+       status = "okay";
+
+       label = "lan";
+};
+
+&swport5 {
+       status = "okay";
+};
+
 &usb2 {
        status = "okay";
 };