mirror of https://github.com/hak5/openwrt.git
260 lines
4.5 KiB
Diff
260 lines
4.5 KiB
Diff
|
--- a/arch/arm/boot/dts/Makefile
|
||
|
+++ b/arch/arm/boot/dts/Makefile
|
||
|
@@ -269,6 +269,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
|
||
|
kirkwood-linkstation-lswsxl.dtb \
|
||
|
kirkwood-linkstation-lswvl.dtb \
|
||
|
kirkwood-linkstation-lswxl.dtb \
|
||
|
+ kirkwood-linksys-audi.dtb \
|
||
|
kirkwood-linksys-viper.dtb \
|
||
|
kirkwood-lschlv2.dtb \
|
||
|
kirkwood-lsxhl.dtb \
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
|
||
|
@@ -0,0 +1,246 @@
|
||
|
+// SPDX-License-Identifier: GPL-2.0
|
||
|
+/*
|
||
|
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
|
||
|
+ *
|
||
|
+ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
|
||
|
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
|
||
|
+ * (c) 2014 Luka Perkov <luka@openwrt.org>
|
||
|
+ * (c) 2014 Dan Walters <dan@walters.io>
|
||
|
+ *
|
||
|
+ */
|
||
|
+
|
||
|
+/dts-v1/;
|
||
|
+
|
||
|
+#include "kirkwood.dtsi"
|
||
|
+#include "kirkwood-6282.dtsi"
|
||
|
+
|
||
|
+/ {
|
||
|
+ model = "Linksys Audi (EA3500)";
|
||
|
+ compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood";
|
||
|
+
|
||
|
+ memory@0 {
|
||
|
+ device_type = "memory";
|
||
|
+ reg = <0x00000000 0x4000000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ aliases {
|
||
|
+ serial0 = &uart0;
|
||
|
+ };
|
||
|
+
|
||
|
+ chosen {
|
||
|
+ stdout-path = "serial0:115200n8";
|
||
|
+ };
|
||
|
+
|
||
|
+ gpio_keys {
|
||
|
+ compatible = "gpio-keys";
|
||
|
+ pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
|
||
|
+ pinctrl-names = "default";
|
||
|
+
|
||
|
+ wps {
|
||
|
+ label = "WPS Button";
|
||
|
+ linux,code = <KEY_WPS_BUTTON>;
|
||
|
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||
|
+ };
|
||
|
+
|
||
|
+ reset {
|
||
|
+ label = "Reset Button";
|
||
|
+ linux,code = <KEY_RESTART>;
|
||
|
+ gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ gpio-leds {
|
||
|
+ compatible = "gpio-leds";
|
||
|
+ pinctrl-0 = < &pmx_led_green_power >;
|
||
|
+ pinctrl-names = "default";
|
||
|
+
|
||
|
+ green-power {
|
||
|
+ label = "audi:green:power";
|
||
|
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ switches {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ mvsw61xx@10 {
|
||
|
+ compatible = "marvell,88e6171";
|
||
|
+ status = "okay";
|
||
|
+ reg = <0x10>;
|
||
|
+
|
||
|
+ mii-bus = <&mdio>;
|
||
|
+ cpu-port-0 = <5>;
|
||
|
+ cpu-port-1 = <6>;
|
||
|
+ is-indirect;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ dsa {
|
||
|
+ compatible = "marvell,dsa";
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ dsa,ethernet = <ð0port>;
|
||
|
+ dsa,mii-bus = <&mdio>;
|
||
|
+
|
||
|
+ switch@16,0 {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ reg = <16 0>; /* MDIO address 16, switch 0 in tree */
|
||
|
+
|
||
|
+ port@0 {
|
||
|
+ reg = <0>;
|
||
|
+ label = "ethernet1";
|
||
|
+ };
|
||
|
+
|
||
|
+ port@1 {
|
||
|
+ reg = <1>;
|
||
|
+ label = "ethernet2";
|
||
|
+ };
|
||
|
+
|
||
|
+ port@2 {
|
||
|
+ reg = <2>;
|
||
|
+ label = "ethernet3";
|
||
|
+ };
|
||
|
+
|
||
|
+ port@3 {
|
||
|
+ reg = <3>;
|
||
|
+ label = "ethernet4";
|
||
|
+ };
|
||
|
+
|
||
|
+ port@4 {
|
||
|
+ reg = <4>;
|
||
|
+ label = "internet";
|
||
|
+ };
|
||
|
+
|
||
|
+ port@5 {
|
||
|
+ reg = <5>;
|
||
|
+ label = "cpu";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&pinctrl {
|
||
|
+ pmx_led_green_power: pmx-led-green-power {
|
||
|
+ marvell,pins = "mpp7";
|
||
|
+ marvell,function = "gpo";
|
||
|
+ };
|
||
|
+ pmx_btn_wps: pmx-btn-wps {
|
||
|
+ marvell,pins = "mpp47";
|
||
|
+ marvell,function = "gpio";
|
||
|
+ };
|
||
|
+ pmx_btn_reset: pmx-btn-reset {
|
||
|
+ marvell,pins = "mpp48";
|
||
|
+ marvell,function = "gpio";
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&nand {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-0 = <&pmx_nand>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+
|
||
|
+ partitions {
|
||
|
+ compatible = "fixed-partitions";
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <1>;
|
||
|
+
|
||
|
+ partition@0 {
|
||
|
+ label = "u-boot";
|
||
|
+ reg = <0x0 0x80000>;
|
||
|
+ read-only;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@80000 {
|
||
|
+ label = "u_env";
|
||
|
+ reg = <0x80000 0x4000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@84000 {
|
||
|
+ label = "s_env";
|
||
|
+ reg = <0x84000 0x4000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@200000 {
|
||
|
+ label = "kernel1";
|
||
|
+ reg = <0x200000 0x290000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@490000 {
|
||
|
+ label = "rootfs1";
|
||
|
+ reg = <0x490000 0x1170000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1600000 {
|
||
|
+ label = "kernel2";
|
||
|
+ reg = <0x1600000 0x290000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1890000 {
|
||
|
+ label = "rootfs2";
|
||
|
+ reg = <0x1890000 0x1170000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@2a00000 {
|
||
|
+ label = "syscfg";
|
||
|
+ reg = <0x2a00000 0x1600000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@88000 {
|
||
|
+ label = "unused";
|
||
|
+ reg = <0x88000 0x178000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&pciec {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&pcie0 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&pcie1 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&mdio {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&uart0 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
|
||
|
+ * fixed speed and duplex.
|
||
|
+ */
|
||
|
+ð0 {
|
||
|
+ status = "okay";
|
||
|
+ ethernet0-port@0 {
|
||
|
+ speed = <1000>;
|
||
|
+ duplex = <1>;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+/* eth1 is connected to the switch at port 6. However DSA only supports a
|
||
|
+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion.
|
||
|
+ */
|
||
|
+ð1 {
|
||
|
+ status = "okay";
|
||
|
+ ethernet1-port@0 {
|
||
|
+ speed = <1000>;
|
||
|
+ duplex = <1>;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+/* There is no battery on the board, so the RTC does not keep
|
||
|
+ * time when there is no power, making it useless.
|
||
|
+ */
|
||
|
+&rtc {
|
||
|
+ status = "disabled";
|
||
|
+};
|