Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0
      2 /*
      3  * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
      4  *
      5  * (c) 2013 Jonas Gorski <jogo (a] openwrt.org>
      6  * (c) 2013 Deutsche Telekom Innovation Laboratories
      7  * (c) 2014 Luka Perkov <luka (a] openwrt.org>
      8  * (c) 2014 Randy C. Will <randall.will (a] gmail.com>
      9  *
     10  */
     11 
     12 /dts-v1/;
     13 
     14 #include "kirkwood.dtsi"
     15 #include "kirkwood-6282.dtsi"
     16 
     17 / {
     18 	model = "Linksys Viper (E4200v2 / EA4500)";
     19 	compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
     20 
     21 	memory {
     22 		device_type = "memory";
     23 		reg = <0x00000000 0x8000000>;
     24 	};
     25 
     26 	aliases {
     27 		serial0 = &uart0;
     28 	};
     29 
     30 	chosen {
     31 		stdout-path = "serial0:115200n8";
     32 	};
     33 
     34 	gpio_keys {
     35 		compatible = "gpio-keys";
     36 		#address-cells = <1>;
     37 		#size-cells = <0>;
     38 		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
     39 		pinctrl-names = "default";
     40 
     41 		wps {
     42 			label = "WPS Button";
     43 			linux,code = <KEY_WPS_BUTTON>;
     44 			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
     45 		};
     46 
     47 		reset {
     48 			label = "Reset Button";
     49 			linux,code = <KEY_RESTART>;
     50 			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
     51 		};
     52 	};
     53 
     54 	gpio-leds {
     55 		compatible = "gpio-leds";
     56 		pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
     57 		pinctrl-names = "default";
     58 
     59 		white-health {
     60 			label = "viper:white:health";
     61 			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
     62 		};
     63 
     64 		white-pulse {
     65 			label = "viper:white:pulse";
     66 			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
     67 		};
     68 	};
     69 };
     70 
     71 &pinctrl {
     72 	pmx_led_white_health: pmx-led-white-health {
     73 		marvell,pins = "mpp7";
     74 		marvell,function = "gpo";
     75 	};
     76 	pmx_led_white_pulse: pmx-led-white-pulse {
     77 		marvell,pins = "mpp14";
     78 		marvell,function = "gpio";
     79 	};
     80 	pmx_btn_wps: pmx-btn-wps {
     81 		marvell,pins = "mpp47";
     82 		marvell,function = "gpio";
     83 	};
     84 	pmx_btn_reset: pmx-btn-reset {
     85 		marvell,pins = "mpp48";
     86 		marvell,function = "gpio";
     87 	};
     88 };
     89 
     90 &nand {
     91 	status = "okay";
     92 	pinctrl-0 = <&pmx_nand>;
     93 	pinctrl-names = "default";
     94 
     95 	partitions {
     96 		compatible = "fixed-partitions";
     97 		#address-cells = <1>;
     98 		#size-cells = <1>;
     99 
    100 		partition@0 {
    101 			label = "u-boot";
    102 			reg = <0x0 0x80000>;
    103 			read-only;
    104 		};
    105 
    106 		partition@80000 {
    107 			label = "u_env";
    108 			reg = <0x80000 0x20000>;
    109 		};
    110 
    111 		partition@a0000 {
    112 			label = "s_env";
    113 			reg = <0xA0000 0x20000>;
    114 		};
    115 
    116 		partition@200000 {
    117 			label = "kernel";
    118 			reg = <0x200000 0x2A0000>;
    119 		};
    120 
    121 		partition@4a0000 {
    122 			label = "rootfs";
    123 			reg = <0x4A0000 0x1760000>;
    124 		};
    125 
    126 		partition@1c00000 {
    127 			label = "alt_kernel";
    128 			reg = <0x1C00000 0x2A0000>;
    129 		};
    130 
    131 		partition@1ea0000 {
    132 			label = "alt_rootfs";
    133 			reg = <0x1EA0000 0x1760000>;
    134 		};
    135 
    136 		partition@3600000 {
    137 			label = "syscfg";
    138 			reg = <0x3600000 0x4A00000>;
    139 		};
    140 
    141 		partition@c0000 {
    142 			label = "unused";
    143 			reg = <0xC0000 0x140000>;
    144 		};
    145 
    146 	};
    147 };
    148 
    149 &pciec {
    150 	status = "okay";
    151 };
    152 
    153 &pcie0 {
    154 	status = "okay";
    155 };
    156 
    157 &pcie1 {
    158 	status = "okay";
    159 };
    160 
    161 &mdio {
    162 	status = "okay";
    163 
    164 	switch@10 {
    165 		compatible = "marvell,mv88e6085";
    166 		#address-cells = <1>;
    167 		#size-cells = <0>;
    168 		reg = <16>;
    169 
    170 		ports {
    171 			#address-cells = <1>;
    172 			#size-cells = <0>;
    173 
    174 			port@0 {
    175 				reg = <0>;
    176 				label = "ethernet1";
    177 			};
    178 
    179 			port@1 {
    180 				reg = <1>;
    181 				label = "ethernet2";
    182 			};
    183 
    184 			port@2 {
    185 				reg = <2>;
    186 				label = "ethernet3";
    187 			};
    188 
    189 			port@3 {
    190 				reg = <3>;
    191 				label = "ethernet4";
    192 			};
    193 
    194 			port@4 {
    195 				reg = <4>;
    196 				label = "internet";
    197 			};
    198 
    199 			port@5 {
    200 				reg = <5>;
    201 				label = "cpu";
    202 				ethernet = <&eth0port>;
    203 				fixed-link {
    204 					speed = <1000>;
    205 					full-duplex;
    206 				};
    207 			};
    208 		};
    209 	};
    210 };
    211 
    212 &uart0 {
    213 	status = "okay";
    214 };
    215 
    216 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
    217  * fixed speed and duplex.
    218  */
    219 &eth0 {
    220 	status = "okay";
    221 	ethernet0-port@0 {
    222 		speed = <1000>;
    223 		duplex = <1>;
    224 	};
    225 };
    226 
    227 /* eth1 is connected to the switch at port 6. However DSA only supports a
    228  * single CPU port. So leave this port disabled to avoid confusion.
    229  */
    230 &eth1 {
    231 	status = "disabled";
    232 };
    233 
    234 /* There is no battery on the board, so the RTC does not keep
    235  * time when there is no power, making it useless.
    236  */
    237 &rtc {
    238 	status = "disabled";
    239 };
    240 
    241