1/* 2 * Device Tree file for Buffalo Linkstation LS-WXL/WSXL 3 * 4 * Copyright (C) 2015, rogershimizu@gmail.com 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 9 * 2 of the License, or (at your option) any later version. 10 */ 11 12/dts-v1/; 13 14#include "kirkwood.dtsi" 15#include "kirkwood-6281.dtsi" 16 17/ { 18 model = "Buffalo Linkstation LS-WXL/WSXL"; 19 compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood"; 20 21 memory { /* 128 MB */ 22 device_type = "memory"; 23 reg = <0x00000000 0x8000000>; 24 }; 25 26 chosen { 27 bootargs = "console=ttyS0,115200n8 earlyprintk"; 28 stdout-path = &uart0; 29 }; 30 31 mbus { 32 pcie-controller { 33 status = "okay"; 34 pcie@1,0 { 35 status = "okay"; 36 }; 37 }; 38 }; 39 40 ocp@f1000000 { 41 pinctrl: pin-controller@10000 { 42 pmx_power_hdd0: pmx-power-hdd0 { 43 marvell,pins = "mpp28"; 44 marvell,function = "gpio"; 45 }; 46 pmx_power_hdd1: pmx-power-hdd1 { 47 marvell,pins = "mpp29"; 48 marvell,function = "gpio"; 49 }; 50 pmx_usb_vbus: pmx-usb-vbus { 51 marvell,pins = "mpp37"; 52 marvell,function = "gpio"; 53 }; 54 pmx_fan_high: pmx-fan-high { 55 marvell,pins = "mpp47"; 56 marvell,function = "gpio"; 57 }; 58 pmx_fan_low: pmx-fan-low { 59 marvell,pins = "mpp48"; 60 marvell,function = "gpio"; 61 }; 62 pmx_led_hdderr0: pmx-led-hdderr0 { 63 marvell,pins = "mpp8"; 64 marvell,function = "gpio"; 65 }; 66 pmx_led_hdderr1: pmx-led-hdderr1 { 67 marvell,pins = "mpp46"; 68 marvell,function = "gpio"; 69 }; 70 pmx_led_alarm: pmx-led-alarm { 71 marvell,pins = "mpp49"; 72 marvell,function = "gpio"; 73 }; 74 pmx_led_function_red: pmx-led-function-red { 75 marvell,pins = "mpp34"; 76 marvell,function = "gpio"; 77 }; 78 pmx_led_function_blue: pmx-led-function-blue { 79 marvell,pins = "mpp36"; 80 marvell,function = "gpio"; 81 }; 82 pmx_led_info: pmx-led-info { 83 marvell,pins = "mpp38"; 84 marvell,function = "gpio"; 85 }; 86 pmx_led_power: pmx-led-power { 87 marvell,pins = "mpp39"; 88 marvell,function = "gpio"; 89 }; 90 pmx_fan_lock: pmx-fan-lock { 91 marvell,pins = "mpp40"; 92 marvell,function = "gpio"; 93 }; 94 pmx_button_function: pmx-button-function { 95 marvell,pins = "mpp41"; 96 marvell,function = "gpio"; 97 }; 98 pmx_power_switch: pmx-power-switch { 99 marvell,pins = "mpp42"; 100 marvell,function = "gpio"; 101 }; 102 pmx_power_auto_switch: pmx-power-auto-switch { 103 marvell,pins = "mpp43"; 104 marvell,function = "gpio"; 105 }; 106 }; 107 108 serial@12000 { 109 status = "okay"; 110 }; 111 112 sata@80000 { 113 status = "okay"; 114 nr-ports = <2>; 115 }; 116 117 spi@10600 { 118 status = "okay"; 119 120 m25p40@0 { 121 #address-cells = <1>; 122 #size-cells = <1>; 123 compatible = "st,m25p40", "jedec,spi-nor"; 124 reg = <0>; 125 spi-max-frequency = <25000000>; 126 mode = <0>; 127 128 partition@0 { 129 reg = <0x0 0x60000>; 130 label = "uboot"; 131 read-only; 132 }; 133 134 partition@60000 { 135 reg = <0x60000 0x10000>; 136 label = "dtb"; 137 read-only; 138 }; 139 140 partition@70000 { 141 reg = <0x70000 0x10000>; 142 label = "uboot_env"; 143 }; 144 }; 145 }; 146 }; 147 148 gpio_keys { 149 compatible = "gpio-keys"; 150 #address-cells = <1>; 151 #size-cells = <0>; 152 pinctrl-0 = <&pmx_button_function &pmx_power_switch 153 &pmx_power_auto_switch>; 154 pinctrl-names = "default"; 155 156 button@1 { 157 label = "Function Button"; 158 linux,code = <KEY_OPTION>; 159 gpios = <&gpio1 41 GPIO_ACTIVE_LOW>; 160 }; 161 162 button@2 { 163 label = "Power-on Switch"; 164 linux,code = <KEY_RESERVED>; 165 linux,input-type = <5>; 166 gpios = <&gpio1 42 GPIO_ACTIVE_LOW>; 167 }; 168 169 button@3 { 170 label = "Power-auto Switch"; 171 linux,code = <KEY_ESC>; 172 linux,input-type = <5>; 173 gpios = <&gpio1 43 GPIO_ACTIVE_LOW>; 174 }; 175 }; 176 177 gpio_leds { 178 compatible = "gpio-leds"; 179 pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm 180 &pmx_led_info &pmx_led_power 181 &pmx_led_function_blue 182 &pmx_led_hdderr0 183 &pmx_led_hdderr1>; 184 pinctrl-names = "default"; 185 186 led@1 { 187 label = "lswxl:blue:func"; 188 gpios = <&gpio1 36 GPIO_ACTIVE_LOW>; 189 }; 190 191 led@2 { 192 label = "lswxl:red:alarm"; 193 gpios = <&gpio1 49 GPIO_ACTIVE_LOW>; 194 }; 195 196 led@3 { 197 label = "lswxl:amber:info"; 198 gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; 199 }; 200 201 led@4 { 202 label = "lswxl:blue:power"; 203 gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; 204 }; 205 206 led@5 { 207 label = "lswxl:red:func"; 208 gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; 209 default-state = "keep"; 210 }; 211 212 led@6 { 213 label = "lswxl:red:hdderr0"; 214 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; 215 }; 216 217 led@7 { 218 label = "lswxl:red:hdderr1"; 219 gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 220 }; 221 }; 222 223 gpio_fan { 224 compatible = "gpio-fan"; 225 pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>; 226 pinctrl-names = "default"; 227 228 gpios = <&gpio0 47 GPIO_ACTIVE_LOW 229 &gpio0 48 GPIO_ACTIVE_LOW>; 230 231 gpio-fan,speed-map = <0 3 232 1500 2 233 3250 1 234 5000 0>; 235 236 alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>; 237 }; 238 239 restart_poweroff { 240 compatible = "restart-poweroff"; 241 }; 242 243 regulators { 244 compatible = "simple-bus"; 245 #address-cells = <1>; 246 #size-cells = <0>; 247 pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>; 248 pinctrl-names = "default"; 249 250 usb_power: regulator@1 { 251 compatible = "regulator-fixed"; 252 reg = <1>; 253 regulator-name = "USB Power"; 254 regulator-min-microvolt = <5000000>; 255 regulator-max-microvolt = <5000000>; 256 enable-active-high; 257 regulator-always-on; 258 regulator-boot-on; 259 gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>; 260 }; 261 hdd_power0: regulator@2 { 262 compatible = "regulator-fixed"; 263 reg = <2>; 264 regulator-name = "HDD0 Power"; 265 regulator-min-microvolt = <5000000>; 266 regulator-max-microvolt = <5000000>; 267 enable-active-high; 268 regulator-always-on; 269 regulator-boot-on; 270 gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>; 271 }; 272 hdd_power1: regulator@3 { 273 compatible = "regulator-fixed"; 274 reg = <3>; 275 regulator-name = "HDD1 Power"; 276 regulator-min-microvolt = <5000000>; 277 regulator-max-microvolt = <5000000>; 278 enable-active-high; 279 regulator-always-on; 280 regulator-boot-on; 281 gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; 282 }; 283 }; 284}; 285 286&mdio { 287 status = "okay"; 288 289 ethphy1: ethernet-phy@8 { 290 device_type = "ethernet-phy"; 291 reg = <8>; 292 }; 293}; 294 295ð1 { 296 status = "okay"; 297 298 ethernet1-port@0 { 299 phy-handle = <ðphy1>; 300 }; 301}; 302