1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring/*
3724ba675SRob Herring * Device Tree common file for the Seagate NAS 2 and 4-bay (Armada 370 SoC).
4724ba675SRob Herring *
5724ba675SRob Herring * Copyright (C) 2015 Seagate
6724ba675SRob Herring *
7724ba675SRob Herring * Author: Vincent Donnefort <vdonnefort@gmail.com>
8724ba675SRob Herring */
9724ba675SRob Herring
10724ba675SRob Herring/*
11724ba675SRob Herring * TODO: add support for the white SATA LEDs associated with HDD 0 and 1.
12724ba675SRob Herring */
13724ba675SRob Herring
14724ba675SRob Herring#include "armada-370.dtsi"
15724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
16724ba675SRob Herring#include <dt-bindings/input/input.h>
17724ba675SRob Herring
18724ba675SRob Herring/ {
19724ba675SRob Herring	chosen {
20724ba675SRob Herring		stdout-path = "serial0:115200n8";
21724ba675SRob Herring	};
22724ba675SRob Herring
23724ba675SRob Herring	memory@0 {
24724ba675SRob Herring		device_type = "memory";
25724ba675SRob Herring		reg = <0x00000000 0x20000000>; /* 512 MB */
26724ba675SRob Herring	};
27724ba675SRob Herring
28724ba675SRob Herring	soc {
29724ba675SRob Herring		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
30724ba675SRob Herring			  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
31724ba675SRob Herring
32724ba675SRob Herring		internal-regs {
33724ba675SRob Herring			serial@12000 {
34724ba675SRob Herring				status = "okay";
35724ba675SRob Herring			};
36724ba675SRob Herring
37724ba675SRob Herring			sata@a0000 {
38724ba675SRob Herring				nr-ports = <2>;
39724ba675SRob Herring				status = "okay";
40724ba675SRob Herring			};
41724ba675SRob Herring
42724ba675SRob Herring			ethernet@70000 {
43724ba675SRob Herring				status = "okay";
44724ba675SRob Herring				pinctrl-0 = <&ge0_rgmii_pins>;
45724ba675SRob Herring				pinctrl-names = "default";
46724ba675SRob Herring				phy = <&phy0>;
47724ba675SRob Herring				phy-mode = "rgmii-id";
48724ba675SRob Herring			};
49724ba675SRob Herring
50724ba675SRob Herring			i2c@11000 {
51724ba675SRob Herring				status = "okay";
52724ba675SRob Herring				pinctrl-0 = <&i2c0_pins>;
53724ba675SRob Herring				pinctrl-names = "default";
54724ba675SRob Herring				clock-frequency = <100000>;
55724ba675SRob Herring
56724ba675SRob Herring				/* RTC - NXP 8563T (second source) */
57724ba675SRob Herring				rtc@51 {
58724ba675SRob Herring					compatible = "nxp,pcf8563";
59724ba675SRob Herring					reg = <0x51>;
60724ba675SRob Herring					interrupts = <110>;
61724ba675SRob Herring				};
62724ba675SRob Herring				/* RTC - MCP7940NT */
63724ba675SRob Herring				rtc@6f {
64724ba675SRob Herring					compatible = "microchip,mcp7941x";
65724ba675SRob Herring					reg = <0x6f>;
66724ba675SRob Herring					interrupts = <110>;
67724ba675SRob Herring				};
68724ba675SRob Herring			};
69724ba675SRob Herring		};
70724ba675SRob Herring
71724ba675SRob Herring	};
72724ba675SRob Herring
73*afa6b4f3SKrzysztof Kozlowski	regulator-1 {
74724ba675SRob Herring		compatible = "regulator-fixed";
75724ba675SRob Herring		regulator-name = "SATA0 power";
76724ba675SRob Herring		regulator-min-microvolt = <5000000>;
77724ba675SRob Herring		regulator-max-microvolt = <5000000>;
78724ba675SRob Herring		enable-active-high;
79724ba675SRob Herring		regulator-always-on;
80724ba675SRob Herring		regulator-boot-on;
81724ba675SRob Herring		gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
82724ba675SRob Herring	};
83*afa6b4f3SKrzysztof Kozlowski
84*afa6b4f3SKrzysztof Kozlowski	regulator-2 {
85724ba675SRob Herring		compatible = "regulator-fixed";
86724ba675SRob Herring		regulator-name = "SATA1 power";
87724ba675SRob Herring		regulator-min-microvolt = <5000000>;
88724ba675SRob Herring		regulator-max-microvolt = <5000000>;
89724ba675SRob Herring		enable-active-high;
90724ba675SRob Herring		regulator-always-on;
91724ba675SRob Herring		regulator-boot-on;
92724ba675SRob Herring		gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>;
93724ba675SRob Herring	};
94724ba675SRob Herring
95724ba675SRob Herring	gpio-fan {
96724ba675SRob Herring		compatible = "gpio-fan";
97724ba675SRob Herring		gpios = <&gpio2 0 GPIO_ACTIVE_HIGH
98724ba675SRob Herring			 &gpio2 1 GPIO_ACTIVE_HIGH>;
99724ba675SRob Herring	};
100724ba675SRob Herring
101724ba675SRob Herring	gpio-keys {
102724ba675SRob Herring		compatible = "gpio-keys";
103724ba675SRob Herring
104724ba675SRob Herring		button-power {
105724ba675SRob Herring			label = "Power button";
106724ba675SRob Herring			linux,code = <KEY_POWER>;
107724ba675SRob Herring			gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
108724ba675SRob Herring			debounce-interval = <100>;
109724ba675SRob Herring		};
110724ba675SRob Herring		button-backup {
111724ba675SRob Herring			label = "Backup button";
112724ba675SRob Herring			linux,code = <KEY_OPTION>;
113724ba675SRob Herring			gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
114724ba675SRob Herring			debounce-interval = <100>;
115724ba675SRob Herring		};
116724ba675SRob Herring		button-reset {
117724ba675SRob Herring			label = "Reset Button";
118724ba675SRob Herring			linux,code = <KEY_RESTART>;
119724ba675SRob Herring			gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
120724ba675SRob Herring			debounce-interval = <100>;
121724ba675SRob Herring		};
122724ba675SRob Herring	};
123724ba675SRob Herring
124724ba675SRob Herring	gpio-leds {
125724ba675SRob Herring		compatible = "gpio-leds";
126724ba675SRob Herring
127724ba675SRob Herring		led-white-power {
128724ba675SRob Herring			label = "dart:white:power";
129724ba675SRob Herring			gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
130724ba675SRob Herring			linux,default-trigger = "timer";
131724ba675SRob Herring
132724ba675SRob Herring		};
133724ba675SRob Herring		led-red-power {
134724ba675SRob Herring			label = "dart:red:power";
135724ba675SRob Herring			gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
136724ba675SRob Herring		};
137724ba675SRob Herring		led-red-sata0 {
138724ba675SRob Herring			label = "dart:red:sata0";
139724ba675SRob Herring			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
140724ba675SRob Herring		};
141724ba675SRob Herring		led-red-sata1 {
142724ba675SRob Herring			label = "dart:red:sata1";
143724ba675SRob Herring			gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
144724ba675SRob Herring		};
145724ba675SRob Herring	};
146724ba675SRob Herring
147724ba675SRob Herring	gpio_poweroff {
148724ba675SRob Herring		compatible = "gpio-poweroff";
149724ba675SRob Herring		gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
150724ba675SRob Herring	};
151724ba675SRob Herring};
152724ba675SRob Herring
153724ba675SRob Herring&pciec {
154724ba675SRob Herring	status = "okay";
155724ba675SRob Herring
156724ba675SRob Herring	/* USB 3.0 bridge ASM1042A */
157724ba675SRob Herring	pcie@2,0 {
158724ba675SRob Herring		status = "okay";
159724ba675SRob Herring	};
160724ba675SRob Herring};
161724ba675SRob Herring
162724ba675SRob Herring
163724ba675SRob Herring&mdio {
164724ba675SRob Herring	pinctrl-0 = <&mdio_pins>;
165724ba675SRob Herring	pinctrl-names = "default";
166724ba675SRob Herring
167724ba675SRob Herring	phy0: ethernet-phy@0 {
168724ba675SRob Herring		reg = <0>;
169724ba675SRob Herring	};
170724ba675SRob Herring};
171724ba675SRob Herring
172724ba675SRob Herring&pinctrl {
173724ba675SRob Herring	pinctrl-0 = <&hdd0_led_sata_pin>, <&hdd1_led_sata_pin>;
174724ba675SRob Herring	pinctrl-names = "default";
175724ba675SRob Herring
176724ba675SRob Herring	hdd0_led_sata_pin: hdd0-led-sata-pin {
177724ba675SRob Herring		marvell,pins = "mpp48";
178724ba675SRob Herring		marvell,function = "sata1";
179724ba675SRob Herring	};
180724ba675SRob Herring	hdd0_led_gpio_pin: hdd0-led-gpio-pin {
181724ba675SRob Herring		marvell,pins = "mpp48";
182724ba675SRob Herring		marvell,function = "gpio";
183724ba675SRob Herring	};
184724ba675SRob Herring	hdd1_led_sata_pin: hdd1-led-sata-pin {
185724ba675SRob Herring		marvell,pins = "mpp57";
186724ba675SRob Herring		marvell,function = "sata0";
187724ba675SRob Herring	};
188724ba675SRob Herring	hdd1_led_gpio_pin: hdd1-led-gpio-pin {
189724ba675SRob Herring		marvell,pins = "mpp57";
190724ba675SRob Herring		marvell,function = "gpio";
191724ba675SRob Herring	};
192724ba675SRob Herring};
193724ba675SRob Herring
194724ba675SRob Herring&nand_controller {
195724ba675SRob Herring	status = "okay";
196724ba675SRob Herring
197724ba675SRob Herring	nand@0 {
198724ba675SRob Herring		reg = <0>;
199724ba675SRob Herring		label = "pxa3xx_nand-0";
200724ba675SRob Herring		nand-rb = <0>;
201724ba675SRob Herring		marvell,nand-keep-config;
202724ba675SRob Herring		nand-on-flash-bbt;
203724ba675SRob Herring		nand-ecc-strength = <4>;
204724ba675SRob Herring		nand-ecc-step-size = <512>;
205724ba675SRob Herring
206724ba675SRob Herring		partitions {
207724ba675SRob Herring			compatible = "fixed-partitions";
208724ba675SRob Herring			#address-cells = <1>;
209724ba675SRob Herring			#size-cells = <1>;
210724ba675SRob Herring
211724ba675SRob Herring			partition@0 {
212724ba675SRob Herring				label = "u-boot";
213724ba675SRob Herring				reg = <0x0 0x300000>;
214724ba675SRob Herring			};
215724ba675SRob Herring			partition@300000 {
216724ba675SRob Herring				label = "device-tree";
217724ba675SRob Herring				reg = <0x300000 0x20000>;
218724ba675SRob Herring			};
219724ba675SRob Herring			partition@320000 {
220724ba675SRob Herring				label = "linux";
221724ba675SRob Herring				reg = <0x320000 0x2000000>;
222724ba675SRob Herring			};
223724ba675SRob Herring			partition@2320000 {
224724ba675SRob Herring				label = "rootfs";
225724ba675SRob Herring				reg = <0x2320000 0xdce0000>;
226724ba675SRob Herring			};
227724ba675SRob Herring		};
228724ba675SRob Herring	};
229724ba675SRob Herring};
230