1/* 2 * Device Tree common file for the Seagate Personal Cloud NAS 1 and 2-Bay 3 * (Armada 370 SoC). 4 * 5 * Copyright (C) 2015 Seagate 6 * 7 * Author: Simon Guinot <simon.guinot@sequanux.org> 8 * 9 * This file is licensed under the terms of the GNU General Public 10 * License version 2. This program is licensed "as is" without any 11 * warranty of any kind, whether express or implied. 12 */ 13 14/* 15 * TODO: add support for the white SATA LED. 16 */ 17 18#include "armada-370.dtsi" 19#include <dt-bindings/gpio/gpio.h> 20#include <dt-bindings/input/input.h> 21 22/ { 23 chosen { 24 stdout-path = "serial0:115200n8"; 25 }; 26 27 memory { 28 device_type = "memory"; 29 reg = <0x00000000 0x20000000>; /* 512 MB */ 30 }; 31 32 soc { 33 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 34 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; 35 36 pcie-controller { 37 status = "okay"; 38 39 /* USB 3.0 Bridge ASM1042A */ 40 pcie@1,0 { 41 status = "okay"; 42 }; 43 }; 44 45 internal-regs { 46 coherency-fabric@20200 { 47 broken-idle; 48 }; 49 50 serial@12000 { 51 status = "okay"; 52 }; 53 54 mdio { 55 pinctrl-0 = <&mdio_pins>; 56 pinctrl-names = "default"; 57 58 phy0: ethernet-phy@0 { 59 reg = <0>; 60 }; 61 }; 62 63 ethernet@74000 { 64 status = "okay"; 65 pinctrl-0 = <&ge1_rgmii_pins>; 66 pinctrl-names = "default"; 67 phy = <&phy0>; 68 phy-mode = "rgmii-id"; 69 }; 70 71 spi@10600 { 72 status = "okay"; 73 pinctrl-0 = <&spi0_pins2>; 74 pinctrl-names = "default"; 75 76 spi-flash@0 { 77 #address-cells = <1>; 78 #size-cells = <1>; 79 /* MX25L8006E */ 80 compatible = "mxicy,mx25l8005", "jedec,spi-nor"; 81 reg = <0>; /* Chip select 0 */ 82 spi-max-frequency = <50000000>; 83 84 partition@0 { 85 label = "u-boot"; 86 reg = <0x0 0x100000>; 87 }; 88 }; 89 }; 90 91 usb@50000 { 92 status = "okay"; 93 }; 94 }; 95 }; 96 97 regulators { 98 compatible = "simple-bus"; 99 #address-cells = <1>; 100 #size-cells = <0>; 101 102 regulator@0 { 103 compatible = "regulator-fixed"; 104 reg = <0>; 105 regulator-name = "USB Power"; 106 regulator-min-microvolt = <5000000>; 107 regulator-max-microvolt = <5000000>; 108 regulator-always-on; 109 regulator-boot-on; 110 gpio = <&gpio1 27 GPIO_ACTIVE_LOW>; 111 }; 112 regulator@1 { 113 compatible = "regulator-fixed"; 114 reg = <1>; 115 regulator-name = "SATA0 power"; 116 regulator-min-microvolt = <5000000>; 117 regulator-max-microvolt = <5000000>; 118 enable-active-high; 119 regulator-always-on; 120 regulator-boot-on; 121 gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; 122 }; 123 }; 124 125 gpio-keys { 126 compatible = "gpio-keys"; 127 #address-cells = <1>; 128 #size-cells = <0>; 129 130 button@1 { 131 label = "Power button"; 132 linux,code = <KEY_POWER>; 133 gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; 134 debounce-interval = <100>; 135 }; 136 button@2 { 137 label = "Reset Button"; 138 linux,code = <KEY_RESTART>; 139 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; 140 debounce-interval = <100>; 141 }; 142 button@3 { 143 label = "USB VBUS error"; 144 linux,code = <KEY_UNKNOWN>; 145 gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; 146 debounce-interval = <100>; 147 }; 148 }; 149 150 gpio-leds { 151 compatible = "gpio-leds"; 152 153 red-sata0 { 154 label = "cumulus:red:sata0"; 155 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>; 156 default-state = "off"; 157 }; 158 }; 159 160 gpio_poweroff { 161 compatible = "gpio-poweroff"; 162 gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; 163 }; 164}; 165 166&pinctrl { 167 pinctrl-0 = <&sata_led_pin>; 168 pinctrl-names = "default"; 169 170 sata_led_pin: sata-led-pin { 171 marvell,pins = "mpp60"; 172 marvell,function = "sata0"; 173 }; 174 gpio_led_pin: gpio-led-pin { 175 marvell,pins = "mpp60"; 176 marvell,function = "gpio"; 177 }; 178}; 179