1/* 2 * Copyright (C) 2014 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 3 * Copyright (C) 2009 Simon Guinot <sguinot@lacie.com> 4 * 5 * This file is licensed under the terms of the GNU General Public 6 * License version 2. This program is licensed "as is" without any 7 * warranty of any kind, whether express or implied. 8 */ 9 10/dts-v1/; 11 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/input/input.h> 14#include <dt-bindings/interrupt-controller/irq.h> 15#include "orion5x-mv88f5182.dtsi" 16 17/ { 18 model = "LaCie d2 Network"; 19 compatible = "lacie,d2-network", "marvell,orion5x-88f5182", "marvell,orion5x"; 20 21 memory { 22 reg = <0x00000000 0x4000000>; /* 64 MB */ 23 }; 24 25 chosen { 26 bootargs = "console=ttyS0,115200n8 earlyprintk"; 27 linux,stdout-path = &uart0; 28 }; 29 30 soc { 31 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>, 32 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>, 33 <MBUS_ID(0x01, 0x0f) 0 0xfff80000 0x80000>; 34 }; 35 36 gpio-keys { 37 compatible = "gpio-keys"; 38 pinctrl-0 = <&pmx_buttons>; 39 pinctrl-names = "default"; 40 #address-cells = <1>; 41 #size-cells = <0>; 42 front_button { 43 label = "Front Push Button"; 44 linux,code = <KEY_POWER>; 45 gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; 46 }; 47 48 power_rocker_sw_on { 49 label = "Power rocker switch (on|auto)"; 50 linux,input-type = <5>; /* EV_SW */ 51 linux,code = <1>; /* D2NET_SWITCH_POWER_ON */ 52 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; 53 }; 54 55 power_rocker_sw_off { 56 label = "Power rocker switch (auto|off)"; 57 linux,input-type = <5>; /* EV_SW */ 58 linux,code = <2>; /* D2NET_SWITCH_POWER_OFF */ 59 gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>; 60 }; 61 }; 62 63 regulators { 64 compatible = "simple-bus"; 65 #address-cells = <1>; 66 #size-cells = <0>; 67 pinctrl-0 = <&pmx_sata0_power &pmx_sata1_power>; 68 pinctrl-names = "default"; 69 70 sata0_power: regulator@0 { 71 compatible = "regulator-fixed"; 72 reg = <0>; 73 regulator-name = "SATA0 Power"; 74 regulator-min-microvolt = <5000000>; 75 regulator-max-microvolt = <5000000>; 76 enable-active-high; 77 regulator-always-on; 78 regulator-boot-on; 79 gpio = <&gpio0 3 GPIO_ACTIVE_HIGH>; 80 }; 81 82 sata1_power: regulator@1 { 83 compatible = "regulator-fixed"; 84 reg = <1>; 85 regulator-name = "SATA1 Power"; 86 regulator-min-microvolt = <5000000>; 87 regulator-max-microvolt = <5000000>; 88 enable-active-high; 89 regulator-always-on; 90 regulator-boot-on; 91 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 92 }; 93 }; 94}; 95 96&devbus_bootcs { 97 status = "okay"; 98 99 devbus,keep-config; 100 101 /* 102 * Currently the MTD code does not recognize the MX29LV400CBCT 103 * as a bottom-type device. This could cause risks of 104 * accidentally erasing critical flash sectors. We thus define 105 * a single, write-protected partition covering the whole 106 * flash. TODO: once the flash part TOP/BOTTOM detection 107 * issue is sorted out in the MTD code, break this into at 108 * least three partitions: 'u-boot code', 'u-boot environment' 109 * and 'whatever is left'. 110 */ 111 flash@0 { 112 compatible = "cfi-flash"; 113 reg = <0 0x80000>; 114 bank-width = <1>; 115 #address-cells = <1>; 116 #size-cells = <1>; 117 118 partition@0 { 119 label = "Full512Kb"; 120 reg = <0 0x80000>; 121 read-only; 122 }; 123 }; 124}; 125 126&mdio { 127 status = "okay"; 128 129 ethphy: ethernet-phy { 130 reg = <8>; 131 }; 132}; 133 134&ehci0 { 135 status = "okay"; 136}; 137 138ð { 139 status = "okay"; 140 141 ethernet-port@0 { 142 phy-handle = <ðphy>; 143 }; 144}; 145 146&i2c { 147 status = "okay"; 148 clock-frequency = <100000>; 149 #address-cells = <1>; 150 151 rtc@32 { 152 compatible = "ricoh,rs5c372b"; 153 reg = <0x32>; 154 }; 155 156 fan@3e { 157 compatible = "gmt,g762"; 158 reg = <0x3e>; 159 160 /* Not enough HW info */ 161 status = "disabled"; 162 }; 163 164 eeprom@50 { 165 compatible = "atmel,24c08"; 166 reg = <0x50>; 167 }; 168}; 169 170&pinctrl { 171 pinctrl-0 = <&pmx_leds &pmx_board_id &pmx_fan_fail>; 172 pinctrl-names = "default"; 173 174 pmx_board_id: pmx-board-id { 175 marvell,pins = "mpp0", "mpp1", "mpp2"; 176 marvell,function = "gpio"; 177 }; 178 179 pmx_buttons: pmx-buttons { 180 marvell,pins = "mpp8", "mpp9", "mpp18"; 181 marvell,function = "gpio"; 182 }; 183 184 pmx_fan_fail: pmx-fan-fail { 185 marvell,pins = "mpp5"; 186 marvell,function = "gpio"; 187 }; 188 189 /* 190 * MPP6: Red front LED 191 * MPP16: Blue front LED blink control 192 */ 193 pmx_leds: pmx-leds { 194 marvell,pins = "mpp6", "mpp16"; 195 marvell,function = "gpio"; 196 }; 197 198 pmx_sata0_led_active: pmx-sata0-led-active { 199 marvell,pins = "mpp14"; 200 marvell,function = "sata0"; 201 }; 202 203 pmx_sata0_power: pmx-sata0-power { 204 marvell,pins = "mpp3"; 205 marvell,function = "gpio"; 206 }; 207 208 pmx_sata1_led_active: pmx-sata1-led-active { 209 marvell,pins = "mpp15"; 210 marvell,function = "sata1"; 211 }; 212 213 pmx_sata1_power: pmx-sata1-power { 214 marvell,pins = "mpp12"; 215 marvell,function = "gpio"; 216 }; 217 218 /* 219 * Non MPP GPIOs: 220 * GPIO 22: USB port 1 fuse (0 = Fail, 1 = Ok) 221 * GPIO 23: Blue front LED off 222 * GPIO 24: Inhibit board power off (0 = Disabled, 1 = Enabled) 223 */ 224}; 225 226&sata { 227 pinctrl-0 = <&pmx_sata0_led_active 228 &pmx_sata1_led_active>; 229 pinctrl-names = "default"; 230 status = "okay"; 231 nr-ports = <2>; 232}; 233 234&uart0 { 235 status = "okay"; 236}; 237