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