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