1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2724ba675SRob Herring/* 3724ba675SRob Herring * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500) 4724ba675SRob Herring * 5724ba675SRob Herring * (c) 2013 Jonas Gorski <jogo@openwrt.org> 6724ba675SRob Herring * (c) 2013 Deutsche Telekom Innovation Laboratories 7724ba675SRob Herring * (c) 2014 Luka Perkov <luka@openwrt.org> 8724ba675SRob Herring * (c) 2014 Randy C. Will <randall.will@gmail.com> 9724ba675SRob Herring * 10724ba675SRob Herring */ 11724ba675SRob Herring 12724ba675SRob Herring/dts-v1/; 13724ba675SRob Herring 14724ba675SRob Herring#include "kirkwood.dtsi" 15724ba675SRob Herring#include "kirkwood-6282.dtsi" 16724ba675SRob Herring 17724ba675SRob Herring/ { 18724ba675SRob Herring model = "Linksys Viper (E4200v2 / EA4500)"; 19724ba675SRob Herring compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood"; 20724ba675SRob Herring 21724ba675SRob Herring memory { 22724ba675SRob Herring device_type = "memory"; 23724ba675SRob Herring reg = <0x00000000 0x8000000>; 24724ba675SRob Herring }; 25724ba675SRob Herring 26724ba675SRob Herring aliases { 27724ba675SRob Herring serial0 = &uart0; 28724ba675SRob Herring }; 29724ba675SRob Herring 30724ba675SRob Herring chosen { 31724ba675SRob Herring stdout-path = "serial0:115200n8"; 32724ba675SRob Herring }; 33724ba675SRob Herring 34724ba675SRob Herring gpio_keys { 35724ba675SRob Herring compatible = "gpio-keys"; 36724ba675SRob Herring pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >; 37724ba675SRob Herring pinctrl-names = "default"; 38724ba675SRob Herring 39b98a9191SKrzysztof Kozlowski button-wps { 40724ba675SRob Herring label = "WPS Button"; 41724ba675SRob Herring linux,code = <KEY_WPS_BUTTON>; 42724ba675SRob Herring gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 43724ba675SRob Herring }; 44724ba675SRob Herring 45b98a9191SKrzysztof Kozlowski button-reset { 46724ba675SRob Herring label = "Reset Button"; 47724ba675SRob Herring linux,code = <KEY_RESTART>; 48724ba675SRob Herring gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; 49724ba675SRob Herring }; 50724ba675SRob Herring }; 51724ba675SRob Herring 52724ba675SRob Herring gpio-leds { 53724ba675SRob Herring compatible = "gpio-leds"; 54724ba675SRob Herring pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >; 55724ba675SRob Herring pinctrl-names = "default"; 56724ba675SRob Herring 57*9d0120b7SKrzysztof Kozlowski led-white-health { 58724ba675SRob Herring label = "viper:white:health"; 59724ba675SRob Herring gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; 60724ba675SRob Herring }; 61724ba675SRob Herring 62*9d0120b7SKrzysztof Kozlowski led-white-pulse { 63724ba675SRob Herring label = "viper:white:pulse"; 64724ba675SRob Herring gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 65724ba675SRob Herring }; 66724ba675SRob Herring }; 67724ba675SRob Herring}; 68724ba675SRob Herring 69724ba675SRob Herring&pinctrl { 70724ba675SRob Herring pmx_led_white_health: pmx-led-white-health { 71724ba675SRob Herring marvell,pins = "mpp7"; 72724ba675SRob Herring marvell,function = "gpo"; 73724ba675SRob Herring }; 74724ba675SRob Herring pmx_led_white_pulse: pmx-led-white-pulse { 75724ba675SRob Herring marvell,pins = "mpp14"; 76724ba675SRob Herring marvell,function = "gpio"; 77724ba675SRob Herring }; 78724ba675SRob Herring pmx_btn_wps: pmx-btn-wps { 79724ba675SRob Herring marvell,pins = "mpp47"; 80724ba675SRob Herring marvell,function = "gpio"; 81724ba675SRob Herring }; 82724ba675SRob Herring pmx_btn_reset: pmx-btn-reset { 83724ba675SRob Herring marvell,pins = "mpp48"; 84724ba675SRob Herring marvell,function = "gpio"; 85724ba675SRob Herring }; 86724ba675SRob Herring}; 87724ba675SRob Herring 88724ba675SRob Herring&nand { 89724ba675SRob Herring status = "okay"; 90724ba675SRob Herring pinctrl-0 = <&pmx_nand>; 91724ba675SRob Herring pinctrl-names = "default"; 92724ba675SRob Herring 93724ba675SRob Herring partitions { 94724ba675SRob Herring compatible = "fixed-partitions"; 95724ba675SRob Herring #address-cells = <1>; 96724ba675SRob Herring #size-cells = <1>; 97724ba675SRob Herring 98724ba675SRob Herring partition@0 { 99724ba675SRob Herring label = "u-boot"; 100724ba675SRob Herring reg = <0x0 0x80000>; 101724ba675SRob Herring read-only; 102724ba675SRob Herring }; 103724ba675SRob Herring 104724ba675SRob Herring partition@80000 { 105724ba675SRob Herring label = "u_env"; 106724ba675SRob Herring reg = <0x80000 0x20000>; 107724ba675SRob Herring }; 108724ba675SRob Herring 109724ba675SRob Herring partition@a0000 { 110724ba675SRob Herring label = "s_env"; 111724ba675SRob Herring reg = <0xA0000 0x20000>; 112724ba675SRob Herring }; 113724ba675SRob Herring 114724ba675SRob Herring partition@200000 { 115724ba675SRob Herring label = "kernel"; 116724ba675SRob Herring reg = <0x200000 0x2A0000>; 117724ba675SRob Herring }; 118724ba675SRob Herring 119724ba675SRob Herring partition@4a0000 { 120724ba675SRob Herring label = "rootfs"; 121724ba675SRob Herring reg = <0x4A0000 0x1760000>; 122724ba675SRob Herring }; 123724ba675SRob Herring 124724ba675SRob Herring partition@1c00000 { 125724ba675SRob Herring label = "alt_kernel"; 126724ba675SRob Herring reg = <0x1C00000 0x2A0000>; 127724ba675SRob Herring }; 128724ba675SRob Herring 129724ba675SRob Herring partition@1ea0000 { 130724ba675SRob Herring label = "alt_rootfs"; 131724ba675SRob Herring reg = <0x1EA0000 0x1760000>; 132724ba675SRob Herring }; 133724ba675SRob Herring 134724ba675SRob Herring partition@3600000 { 135724ba675SRob Herring label = "syscfg"; 136724ba675SRob Herring reg = <0x3600000 0x4A00000>; 137724ba675SRob Herring }; 138724ba675SRob Herring 139724ba675SRob Herring partition@c0000 { 140724ba675SRob Herring label = "unused"; 141724ba675SRob Herring reg = <0xC0000 0x140000>; 142724ba675SRob Herring }; 143724ba675SRob Herring 144724ba675SRob Herring }; 145724ba675SRob Herring}; 146724ba675SRob Herring 147724ba675SRob Herring&pciec { 148724ba675SRob Herring status = "okay"; 149724ba675SRob Herring}; 150724ba675SRob Herring 151724ba675SRob Herring&pcie0 { 152724ba675SRob Herring status = "okay"; 153724ba675SRob Herring}; 154724ba675SRob Herring 155724ba675SRob Herring&pcie1 { 156724ba675SRob Herring status = "okay"; 157724ba675SRob Herring}; 158724ba675SRob Herring 159724ba675SRob Herring&mdio { 160724ba675SRob Herring status = "okay"; 161724ba675SRob Herring 162724ba675SRob Herring switch@10 { 163724ba675SRob Herring compatible = "marvell,mv88e6085"; 164724ba675SRob Herring #address-cells = <1>; 165724ba675SRob Herring #size-cells = <0>; 166724ba675SRob Herring reg = <16>; 167724ba675SRob Herring 168724ba675SRob Herring ports { 169724ba675SRob Herring #address-cells = <1>; 170724ba675SRob Herring #size-cells = <0>; 171724ba675SRob Herring 172724ba675SRob Herring port@0 { 173724ba675SRob Herring reg = <0>; 174724ba675SRob Herring label = "ethernet1"; 175724ba675SRob Herring }; 176724ba675SRob Herring 177724ba675SRob Herring port@1 { 178724ba675SRob Herring reg = <1>; 179724ba675SRob Herring label = "ethernet2"; 180724ba675SRob Herring }; 181724ba675SRob Herring 182724ba675SRob Herring port@2 { 183724ba675SRob Herring reg = <2>; 184724ba675SRob Herring label = "ethernet3"; 185724ba675SRob Herring }; 186724ba675SRob Herring 187724ba675SRob Herring port@3 { 188724ba675SRob Herring reg = <3>; 189724ba675SRob Herring label = "ethernet4"; 190724ba675SRob Herring }; 191724ba675SRob Herring 192724ba675SRob Herring port@4 { 193724ba675SRob Herring reg = <4>; 194724ba675SRob Herring label = "internet"; 195724ba675SRob Herring }; 196724ba675SRob Herring 197724ba675SRob Herring port@5 { 198724ba675SRob Herring reg = <5>; 199724ba675SRob Herring phy-mode = "rgmii-id"; 200724ba675SRob Herring ethernet = <ð0port>; 201724ba675SRob Herring fixed-link { 202724ba675SRob Herring speed = <1000>; 203724ba675SRob Herring full-duplex; 204724ba675SRob Herring }; 205724ba675SRob Herring }; 206724ba675SRob Herring }; 207724ba675SRob Herring }; 208724ba675SRob Herring}; 209724ba675SRob Herring 210724ba675SRob Herring&uart0 { 211724ba675SRob Herring status = "okay"; 212724ba675SRob Herring}; 213724ba675SRob Herring 214724ba675SRob Herring/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set 215724ba675SRob Herring * fixed speed and duplex. 216724ba675SRob Herring */ 217724ba675SRob Herringð0 { 218724ba675SRob Herring status = "okay"; 219724ba675SRob Herring ethernet0-port@0 { 220724ba675SRob Herring speed = <1000>; 221724ba675SRob Herring duplex = <1>; 222724ba675SRob Herring phy-mode = "rgmii"; 223724ba675SRob Herring }; 224724ba675SRob Herring}; 225724ba675SRob Herring 226724ba675SRob Herring/* eth1 is connected to the switch at port 6. However DSA only supports a 227724ba675SRob Herring * single CPU port. So leave this port disabled to avoid confusion. 228724ba675SRob Herring */ 229724ba675SRob Herringð1 { 230724ba675SRob Herring status = "disabled"; 231724ba675SRob Herring}; 232724ba675SRob Herring 233724ba675SRob Herring/* There is no battery on the board, so the RTC does not keep 234724ba675SRob Herring * time when there is no power, making it useless. 235724ba675SRob Herring */ 236724ba675SRob Herring&rtc { 237724ba675SRob Herring status = "disabled"; 238724ba675SRob Herring}; 239724ba675SRob Herring 240