MIPS: ath79: add initial support for TP-LINK MR3020
authorAntony Pavlov <antonynpavlov@gmail.com>
Thu, 17 Mar 2016 03:34:19 +0000 (06:34 +0300)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 May 2016 12:01:46 +0000 (14:01 +0200)
The following features are supported:

  * UART;
  * SPI-flash;
  * USB host;
  * GPIO keys and LEDs.

Links:

  * http://www.tp-link.com/en/products/details/?model=TL-MR3020
  * http://wiki.openwrt.org/toh/tp-link/tl-mr3020
  * https://wikidevi.com/wiki/TP-LINK_TL-MR3020

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Cc: Gabor Juhos <juhosg@openwrt.org>
Cc: Alban Bedel <albeu@free.fr>
Cc: linux-mips@linux-mips.org
Cc: devicetree@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/12880/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/boot/dts/qca/Makefile
arch/mips/boot/dts/qca/ar9331_tl_mr3020.dts [new file with mode: 0644]

index 14bd225142832f15822fd44513380eaa4b72f2e6..5e2c20d6413809ca4135cc1670ff4a5d91f4d106 100644 (file)
@@ -1,5 +1,6 @@
 # All DTBs
 dtb-$(CONFIG_ATH79)                    += ar9132_tl_wr1043nd_v1.dtb
+dtb-$(CONFIG_ATH79)                    += ar9331_tl_mr3020.dtb
 
 # Force kbuild to make empty built-in.o if necessary
 obj-                           += dummy.o
diff --git a/arch/mips/boot/dts/qca/ar9331_tl_mr3020.dts b/arch/mips/boot/dts/qca/ar9331_tl_mr3020.dts
new file mode 100644 (file)
index 0000000..919cf3b
--- /dev/null
@@ -0,0 +1,118 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9331.dtsi"
+
+/ {
+       model = "TP-Link TL-MR3020";
+       compatible = "tplink,tl-mr3020";
+
+       aliases {
+               serial0 = &uart;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x2000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wlan {
+                       label = "tp-link:green:wlan";
+                       gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               lan {
+                       label = "tp-link:green:lan";
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               wps {
+                       label = "tp-link:green:wps";
+                       gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led3g {
+                       label = "tp-link:green:3g";
+                       gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <100>;
+
+               button@0 {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               button@1 {
+                       label = "sw1";
+                       linux,code = <BTN_0>;
+                       gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
+               };
+
+               button@2 {
+                       label = "sw2";
+                       linux,code = <BTN_1>;
+                       gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       reg_usb_vbus: reg_usb_vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&ref {
+       clock-frequency = <25000000>;
+};
+
+&uart {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+};
+
+&usb {
+       dr_mode = "host";
+       vbus-supply = <&reg_usb_vbus>;
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&spi {
+       num-chipselects = <1>;
+       status = "okay";
+
+       /* Spansion S25FL032PIF SPI flash */
+       spiflash: s25sl032p@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spansion,s25sl032p", "jedec,spi-nor";
+               spi-max-frequency = <104000000>;
+               reg = <0>;
+       };
+};