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