xref: /openbmc/u-boot/arch/arm/dts/rk3288-phycore-som.dtsi (revision c03635c3d14c5402229fcfacedbbdff48f3de221)
1bafcf2dbSWadim Egorov/*
2bafcf2dbSWadim Egorov * Device tree file for Phytec phyCORE-RK3288 SoM
3bafcf2dbSWadim Egorov * Copyright (C) 2017 PHYTEC Messtechnik GmbH
4bafcf2dbSWadim Egorov * Author: Wadim Egorov <w.egorov@phytec.de>
5bafcf2dbSWadim Egorov *
6bafcf2dbSWadim Egorov * This file is dual-licensed: you can use it either under the terms
7bafcf2dbSWadim Egorov * of the GPL or the X11 license, at your option. Note that this dual
8bafcf2dbSWadim Egorov * licensing only applies to this file, and not this project as a
9bafcf2dbSWadim Egorov * whole.
10bafcf2dbSWadim Egorov *
11bafcf2dbSWadim Egorov *  a) This file is free software; you can redistribute it and/or
12bafcf2dbSWadim Egorov *     modify it under the terms of the GNU General Public License as
13bafcf2dbSWadim Egorov *     published by the Free Software Foundation; either version 2 of the
14bafcf2dbSWadim Egorov *     License, or (at your option) any later version.
15bafcf2dbSWadim Egorov *
16bafcf2dbSWadim Egorov *     This file is distributed in the hope that it will be useful,
17bafcf2dbSWadim Egorov *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18bafcf2dbSWadim Egorov *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19bafcf2dbSWadim Egorov *     GNU General Public License for more details.
20bafcf2dbSWadim Egorov *
21bafcf2dbSWadim Egorov * Or, alternatively,
22bafcf2dbSWadim Egorov *
23bafcf2dbSWadim Egorov *  b) Permission is hereby granted, free of charge, to any person
24bafcf2dbSWadim Egorov *     obtaining a copy of this software and associated documentation
25bafcf2dbSWadim Egorov *     files (the "Software"), to deal in the Software without
26bafcf2dbSWadim Egorov *     restriction, including without limitation the rights to use,
27bafcf2dbSWadim Egorov *     copy, modify, merge, publish, distribute, sublicense, and/or
28bafcf2dbSWadim Egorov *     sell copies of the Software, and to permit persons to whom the
29bafcf2dbSWadim Egorov *     Software is furnished to do so, subject to the following
30bafcf2dbSWadim Egorov *     conditions:
31bafcf2dbSWadim Egorov *
32bafcf2dbSWadim Egorov *     The above copyright notice and this permission notice shall be
33bafcf2dbSWadim Egorov *     included in all copies or substantial portions of the Software.
34bafcf2dbSWadim Egorov *
35bafcf2dbSWadim Egorov *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36bafcf2dbSWadim Egorov *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37bafcf2dbSWadim Egorov *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38bafcf2dbSWadim Egorov *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39bafcf2dbSWadim Egorov *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40bafcf2dbSWadim Egorov *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41bafcf2dbSWadim Egorov *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42bafcf2dbSWadim Egorov *     OTHER DEALINGS IN THE SOFTWARE.
43bafcf2dbSWadim Egorov */
44bafcf2dbSWadim Egorov
45bafcf2dbSWadim Egorov#include <dt-bindings/net/ti-dp83867.h>
46bafcf2dbSWadim Egorov#include "rk3288.dtsi"
47bafcf2dbSWadim Egorov
48bafcf2dbSWadim Egorov/ {
49bafcf2dbSWadim Egorov	model = "Phytec RK3288 phyCORE";
50bafcf2dbSWadim Egorov	compatible = "phytec,rk3288-phycore-som", "rockchip,rk3288";
51bafcf2dbSWadim Egorov
52bafcf2dbSWadim Egorov	/*
53bafcf2dbSWadim Egorov	 * Set the minimum memory size here and
54bafcf2dbSWadim Egorov	 * let the bootloader set the real size.
55bafcf2dbSWadim Egorov	 */
56bafcf2dbSWadim Egorov	memory {
57bafcf2dbSWadim Egorov		device_type = "memory";
58bafcf2dbSWadim Egorov		reg = <0 0x8000000>;
59bafcf2dbSWadim Egorov	};
60bafcf2dbSWadim Egorov
61bafcf2dbSWadim Egorov	aliases {
62bafcf2dbSWadim Egorov		rtc0 = &i2c_rtc;
63bafcf2dbSWadim Egorov		rtc1 = &rk818;
64*c03635c3SWadim Egorov		eeprom0 = &i2c_eeprom_id;
65bafcf2dbSWadim Egorov	};
66bafcf2dbSWadim Egorov
67bafcf2dbSWadim Egorov	ext_gmac: external-gmac-clock {
68bafcf2dbSWadim Egorov		compatible = "fixed-clock";
69bafcf2dbSWadim Egorov		#clock-cells = <0>;
70bafcf2dbSWadim Egorov		clock-frequency = <125000000>;
71bafcf2dbSWadim Egorov		clock-output-names = "ext_gmac";
72bafcf2dbSWadim Egorov	};
73bafcf2dbSWadim Egorov
74bafcf2dbSWadim Egorov	io_domains: io_domains {
75bafcf2dbSWadim Egorov		compatible = "rockchip,rk3288-io-voltage-domain";
76bafcf2dbSWadim Egorov
77bafcf2dbSWadim Egorov		status = "okay";
78bafcf2dbSWadim Egorov		sdcard-supply = <&vdd_io_sd>;
79bafcf2dbSWadim Egorov		flash0-supply = <&vdd_emmc_io>;
80bafcf2dbSWadim Egorov		flash1-supply = <&vdd_misc_1v8>;
81bafcf2dbSWadim Egorov		gpio1830-supply = <&vdd_3v3_io>;
82bafcf2dbSWadim Egorov		gpio30-supply = <&vdd_3v3_io>;
83bafcf2dbSWadim Egorov		bb-supply = <&vdd_3v3_io>;
84bafcf2dbSWadim Egorov		dvp-supply = <&vdd_3v3_io>;
85bafcf2dbSWadim Egorov		lcdc-supply = <&vdd_3v3_io>;
86bafcf2dbSWadim Egorov		wifi-supply = <&vdd_3v3_io>;
87bafcf2dbSWadim Egorov		audio-supply = <&vdd_3v3_io>;
88bafcf2dbSWadim Egorov	};
89bafcf2dbSWadim Egorov
90bafcf2dbSWadim Egorov	leds: user-leds {
91bafcf2dbSWadim Egorov		compatible = "gpio-leds";
92bafcf2dbSWadim Egorov		pinctrl-names = "default";
93bafcf2dbSWadim Egorov		pinctrl-0 = <&user_led>;
94bafcf2dbSWadim Egorov
95bafcf2dbSWadim Egorov		user {
96bafcf2dbSWadim Egorov			label = "green_led";
97bafcf2dbSWadim Egorov			gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
98bafcf2dbSWadim Egorov			linux,default-trigger = "heartbeat";
99bafcf2dbSWadim Egorov			default-state = "keep";
100bafcf2dbSWadim Egorov		};
101bafcf2dbSWadim Egorov	};
102bafcf2dbSWadim Egorov
103bafcf2dbSWadim Egorov	vdd_emmc_io: vdd-emmc-io {
104bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
105bafcf2dbSWadim Egorov		regulator-name = "vdd_emmc_io";
106bafcf2dbSWadim Egorov		regulator-min-microvolt = <1800000>;
107bafcf2dbSWadim Egorov		regulator-max-microvolt = <1800000>;
108bafcf2dbSWadim Egorov		vin-supply = <&vdd_3v3_io>;
109bafcf2dbSWadim Egorov	};
110bafcf2dbSWadim Egorov
111bafcf2dbSWadim Egorov	vdd_in_otg_out: vdd-in-otg-out {
112bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
113bafcf2dbSWadim Egorov		regulator-name = "vdd_in_otg_out";
114bafcf2dbSWadim Egorov		regulator-always-on;
115bafcf2dbSWadim Egorov		regulator-boot-on;
116bafcf2dbSWadim Egorov		regulator-min-microvolt = <5000000>;
117bafcf2dbSWadim Egorov		regulator-max-microvolt = <5000000>;
118bafcf2dbSWadim Egorov	};
119bafcf2dbSWadim Egorov
120bafcf2dbSWadim Egorov	vdd_misc_1v8: vdd-misc-1v8 {
121bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
122bafcf2dbSWadim Egorov		regulator-name = "vdd_misc_1v8";
123bafcf2dbSWadim Egorov		regulator-always-on;
124bafcf2dbSWadim Egorov		regulator-boot-on;
125bafcf2dbSWadim Egorov		regulator-min-microvolt = <1800000>;
126bafcf2dbSWadim Egorov		regulator-max-microvolt = <1800000>;
127bafcf2dbSWadim Egorov	};
128bafcf2dbSWadim Egorov};
129bafcf2dbSWadim Egorov
130bafcf2dbSWadim Egorov&cpu0 {
131bafcf2dbSWadim Egorov	cpu0-supply = <&vdd_cpu>;
132bafcf2dbSWadim Egorov	operating-points = <
133bafcf2dbSWadim Egorov		/* KHz    uV */
134bafcf2dbSWadim Egorov		1800000	1400000
135bafcf2dbSWadim Egorov		1608000	1350000
136bafcf2dbSWadim Egorov		1512000 1300000
137bafcf2dbSWadim Egorov		1416000 1200000
138bafcf2dbSWadim Egorov		1200000 1100000
139bafcf2dbSWadim Egorov		1008000 1050000
140bafcf2dbSWadim Egorov		 816000 1000000
141bafcf2dbSWadim Egorov		 696000  950000
142bafcf2dbSWadim Egorov		 600000  900000
143bafcf2dbSWadim Egorov		 408000  900000
144bafcf2dbSWadim Egorov		 312000  900000
145bafcf2dbSWadim Egorov		 216000  900000
146bafcf2dbSWadim Egorov		 126000  900000
147bafcf2dbSWadim Egorov	>;
148bafcf2dbSWadim Egorov};
149bafcf2dbSWadim Egorov
150bafcf2dbSWadim Egorov&emmc {
151bafcf2dbSWadim Egorov	status = "okay";
152bafcf2dbSWadim Egorov	u-boot,dm-pre-reloc;
153bafcf2dbSWadim Egorov
154bafcf2dbSWadim Egorov	bus-width = <8>;
155bafcf2dbSWadim Egorov	cap-mmc-highspeed;
156bafcf2dbSWadim Egorov	disable-wp;
157bafcf2dbSWadim Egorov	non-removable;
158bafcf2dbSWadim Egorov	num-slots = <1>;
159bafcf2dbSWadim Egorov	pinctrl-names = "default";
160bafcf2dbSWadim Egorov	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
161bafcf2dbSWadim Egorov	vmmc-supply = <&vdd_3v3_io>;
162bafcf2dbSWadim Egorov	vqmmc-supply = <&vdd_emmc_io>;
163bafcf2dbSWadim Egorov};
164bafcf2dbSWadim Egorov
165bafcf2dbSWadim Egorov&gmac {
166bafcf2dbSWadim Egorov	assigned-clocks = <&cru SCLK_MAC>;
167bafcf2dbSWadim Egorov	assigned-clock-parents = <&ext_gmac>;
168bafcf2dbSWadim Egorov	clock_in_out = "input";
169bafcf2dbSWadim Egorov	pinctrl-names = "default";
170bafcf2dbSWadim Egorov	pinctrl-0 = <&rgmii_pins &phy_rst &phy_int>;
171bafcf2dbSWadim Egorov	phy-handle = <&phy0>;
172bafcf2dbSWadim Egorov	phy-supply = <&vdd_eth_2v5>;
173bafcf2dbSWadim Egorov	phy-mode = "rgmii-id";
174bafcf2dbSWadim Egorov	snps,reset-active-low;
175bafcf2dbSWadim Egorov	snps,reset-delays-us = <0 10000 1000000>;
176bafcf2dbSWadim Egorov	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
177bafcf2dbSWadim Egorov	tx_delay = <0x0>;
178bafcf2dbSWadim Egorov	rx_delay = <0x0>;
179bafcf2dbSWadim Egorov
180bafcf2dbSWadim Egorov	mdio0 {
181bafcf2dbSWadim Egorov		compatible = "snps,dwmac-mdio";
182bafcf2dbSWadim Egorov		#address-cells = <1>;
183bafcf2dbSWadim Egorov		#size-cells = <0>;
184bafcf2dbSWadim Egorov
185bafcf2dbSWadim Egorov		phy0: ethernet-phy@0 {
186bafcf2dbSWadim Egorov			compatible = "ethernet-phy-ieee802.3-c22";
187bafcf2dbSWadim Egorov			reg = <0>;
188bafcf2dbSWadim Egorov			interrupt-parent = <&gpio4>;
189bafcf2dbSWadim Egorov			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
190bafcf2dbSWadim Egorov			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
191bafcf2dbSWadim Egorov			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
192bafcf2dbSWadim Egorov			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
193bafcf2dbSWadim Egorov			enet-phy-lane-no-swap;
194bafcf2dbSWadim Egorov		};
195bafcf2dbSWadim Egorov	};
196bafcf2dbSWadim Egorov};
197bafcf2dbSWadim Egorov
198bafcf2dbSWadim Egorov&hdmi {
199bafcf2dbSWadim Egorov	ddc-i2c-bus = <&i2c5>;
200bafcf2dbSWadim Egorov};
201bafcf2dbSWadim Egorov
202bafcf2dbSWadim Egorov&i2c0 {
203bafcf2dbSWadim Egorov	status = "okay";
204bafcf2dbSWadim Egorov	u-boot,dm-pre-reloc;
205bafcf2dbSWadim Egorov
206bafcf2dbSWadim Egorov	clock-frequency = <400000>;
207bafcf2dbSWadim Egorov
208bafcf2dbSWadim Egorov	rk818: pmic@1c {
209bafcf2dbSWadim Egorov		status = "okay";
210bafcf2dbSWadim Egorov		compatible = "rockchip,rk818";
211bafcf2dbSWadim Egorov		reg = <0x1c>;
212bafcf2dbSWadim Egorov		interrupt-parent = <&gpio0>;
213bafcf2dbSWadim Egorov		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
214bafcf2dbSWadim Egorov		pinctrl-names = "default";
215bafcf2dbSWadim Egorov		pinctrl-0 = <&pmic_int>;
216bafcf2dbSWadim Egorov		rockchip,system-power-controller;
217bafcf2dbSWadim Egorov		wakeup-source;
218bafcf2dbSWadim Egorov		#clock-cells = <1>;
219bafcf2dbSWadim Egorov		u-boot,dm-pre-reloc;
220bafcf2dbSWadim Egorov
221bafcf2dbSWadim Egorov		vcc1-supply = <&vdd_sys>;
222bafcf2dbSWadim Egorov		vcc2-supply = <&vdd_sys>;
223bafcf2dbSWadim Egorov		vcc3-supply = <&vdd_sys>;
224bafcf2dbSWadim Egorov		vcc4-supply = <&vdd_sys>;
225bafcf2dbSWadim Egorov		boost-supply = <&vdd_in_otg_out>;
226bafcf2dbSWadim Egorov		vcc6-supply = <&vdd_sys>;
227bafcf2dbSWadim Egorov		vcc7-supply = <&vdd_misc_1v8>;
228bafcf2dbSWadim Egorov		vcc8-supply = <&vdd_misc_1v8>;
229bafcf2dbSWadim Egorov		vcc9-supply = <&vdd_3v3_io>;
230bafcf2dbSWadim Egorov		vddio-supply = <&vdd_3v3_io>;
231bafcf2dbSWadim Egorov
232bafcf2dbSWadim Egorov		regulators {
233bafcf2dbSWadim Egorov			u-boot,dm-pre-reloc;
234bafcf2dbSWadim Egorov			vdd_log: DCDC_REG1 {
235bafcf2dbSWadim Egorov				regulator-name = "vdd_log";
236bafcf2dbSWadim Egorov				regulator-always-on;
237bafcf2dbSWadim Egorov				regulator-boot-on;
238bafcf2dbSWadim Egorov				regulator-min-microvolt = <1100000>;
239bafcf2dbSWadim Egorov				regulator-max-microvolt = <1100000>;
240bafcf2dbSWadim Egorov				regulator-state-mem {
241bafcf2dbSWadim Egorov					regulator-off-in-suspend;
242bafcf2dbSWadim Egorov				};
243bafcf2dbSWadim Egorov			};
244bafcf2dbSWadim Egorov
245bafcf2dbSWadim Egorov			vdd_gpu: DCDC_REG2 {
246bafcf2dbSWadim Egorov				regulator-name = "vdd_gpu";
247bafcf2dbSWadim Egorov				regulator-always-on;
248bafcf2dbSWadim Egorov				regulator-boot-on;
249bafcf2dbSWadim Egorov				regulator-min-microvolt = <800000>;
250bafcf2dbSWadim Egorov				regulator-max-microvolt = <1250000>;
251bafcf2dbSWadim Egorov				regulator-state-mem {
252bafcf2dbSWadim Egorov					regulator-on-in-suspend;
253bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <1000000>;
254bafcf2dbSWadim Egorov				};
255bafcf2dbSWadim Egorov			};
256bafcf2dbSWadim Egorov
257bafcf2dbSWadim Egorov			vcc_ddr: DCDC_REG3 {
258bafcf2dbSWadim Egorov				regulator-name = "vcc_ddr";
259bafcf2dbSWadim Egorov				regulator-always-on;
260bafcf2dbSWadim Egorov				regulator-boot-on;
261bafcf2dbSWadim Egorov				regulator-state-mem {
262bafcf2dbSWadim Egorov					regulator-on-in-suspend;
263bafcf2dbSWadim Egorov				};
264bafcf2dbSWadim Egorov			};
265bafcf2dbSWadim Egorov
266bafcf2dbSWadim Egorov			vdd_3v3_io: DCDC_REG4 {
267bafcf2dbSWadim Egorov				regulator-name = "vdd_3v3_io";
268bafcf2dbSWadim Egorov				regulator-always-on;
269bafcf2dbSWadim Egorov				regulator-boot-on;
270bafcf2dbSWadim Egorov				regulator-min-microvolt = <3300000>;
271bafcf2dbSWadim Egorov				regulator-max-microvolt = <3300000>;
272bafcf2dbSWadim Egorov				regulator-state-mem {
273bafcf2dbSWadim Egorov					regulator-on-in-suspend;
274bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <3300000>;
275bafcf2dbSWadim Egorov				};
276bafcf2dbSWadim Egorov			};
277bafcf2dbSWadim Egorov
278bafcf2dbSWadim Egorov			vdd_sys: DCDC_BOOST {
279bafcf2dbSWadim Egorov				regulator-name = "vdd_sys";
280bafcf2dbSWadim Egorov				regulator-always-on;
281bafcf2dbSWadim Egorov				regulator-boot-on;
282bafcf2dbSWadim Egorov				regulator-min-microvolt = <5000000>;
283bafcf2dbSWadim Egorov				regulator-max-microvolt = <5000000>;
284bafcf2dbSWadim Egorov				regulator-state-mem {
285bafcf2dbSWadim Egorov					regulator-on-in-suspend;
286bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <5000000>;
287bafcf2dbSWadim Egorov				};
288bafcf2dbSWadim Egorov			};
289bafcf2dbSWadim Egorov
290bafcf2dbSWadim Egorov			/* vcc9 */
291bafcf2dbSWadim Egorov			vdd_sd: SWITCH_REG {
292bafcf2dbSWadim Egorov				regulator-name = "vdd_sd";
293bafcf2dbSWadim Egorov				regulator-always-on;
294bafcf2dbSWadim Egorov				regulator-boot-on;
295bafcf2dbSWadim Egorov				regulator-state-mem {
296bafcf2dbSWadim Egorov					regulator-off-in-suspend;
297bafcf2dbSWadim Egorov				};
298bafcf2dbSWadim Egorov			};
299bafcf2dbSWadim Egorov
300bafcf2dbSWadim Egorov			/* vcc6 */
301bafcf2dbSWadim Egorov			vdd_eth_2v5: LDO_REG2 {
302bafcf2dbSWadim Egorov				regulator-name = "vdd_eth_2v5";
303bafcf2dbSWadim Egorov				regulator-always-on;
304bafcf2dbSWadim Egorov				regulator-boot-on;
305bafcf2dbSWadim Egorov				regulator-min-microvolt = <2500000>;
306bafcf2dbSWadim Egorov				regulator-max-microvolt = <2500000>;
307bafcf2dbSWadim Egorov				regulator-state-mem {
308bafcf2dbSWadim Egorov					regulator-on-in-suspend;
309bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <2500000>;
310bafcf2dbSWadim Egorov				};
311bafcf2dbSWadim Egorov			};
312bafcf2dbSWadim Egorov
313bafcf2dbSWadim Egorov			/* vcc7 */
314bafcf2dbSWadim Egorov			vdd_1v0: LDO_REG3 {
315bafcf2dbSWadim Egorov				regulator-name = "vdd_1v0";
316bafcf2dbSWadim Egorov				regulator-always-on;
317bafcf2dbSWadim Egorov				regulator-boot-on;
318bafcf2dbSWadim Egorov				regulator-min-microvolt = <1000000>;
319bafcf2dbSWadim Egorov				regulator-max-microvolt = <1000000>;
320bafcf2dbSWadim Egorov				regulator-state-mem {
321bafcf2dbSWadim Egorov					regulator-on-in-suspend;
322bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <1000000>;
323bafcf2dbSWadim Egorov				};
324bafcf2dbSWadim Egorov			};
325bafcf2dbSWadim Egorov
326bafcf2dbSWadim Egorov			/* vcc8 */
327bafcf2dbSWadim Egorov			vdd_1v8_lcd_ldo: LDO_REG4 {
328bafcf2dbSWadim Egorov				regulator-name = "vdd_1v8_lcd_ldo";
329bafcf2dbSWadim Egorov				regulator-always-on;
330bafcf2dbSWadim Egorov				regulator-boot-on;
331bafcf2dbSWadim Egorov				regulator-min-microvolt = <1800000>;
332bafcf2dbSWadim Egorov				regulator-max-microvolt = <1800000>;
333bafcf2dbSWadim Egorov				regulator-state-mem {
334bafcf2dbSWadim Egorov					regulator-on-in-suspend;
335bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <1800000>;
336bafcf2dbSWadim Egorov				};
337bafcf2dbSWadim Egorov			};
338bafcf2dbSWadim Egorov
339bafcf2dbSWadim Egorov			/* vcc8 */
340bafcf2dbSWadim Egorov			vdd_1v0_lcd: LDO_REG6 {
341bafcf2dbSWadim Egorov				regulator-name = "vdd_1v0_lcd";
342bafcf2dbSWadim Egorov				regulator-always-on;
343bafcf2dbSWadim Egorov				regulator-boot-on;
344bafcf2dbSWadim Egorov				regulator-min-microvolt = <1000000>;
345bafcf2dbSWadim Egorov				regulator-max-microvolt = <1000000>;
346bafcf2dbSWadim Egorov				regulator-state-mem {
347bafcf2dbSWadim Egorov					regulator-on-in-suspend;
348bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <1000000>;
349bafcf2dbSWadim Egorov				};
350bafcf2dbSWadim Egorov			};
351bafcf2dbSWadim Egorov
352bafcf2dbSWadim Egorov			/* vcc7 */
353bafcf2dbSWadim Egorov			vdd_1v8_ldo: LDO_REG7 {
354bafcf2dbSWadim Egorov				regulator-name = "vdd_1v8_ldo";
355bafcf2dbSWadim Egorov				regulator-always-on;
356bafcf2dbSWadim Egorov				regulator-boot-on;
357bafcf2dbSWadim Egorov				regulator-min-microvolt = <1800000>;
358bafcf2dbSWadim Egorov				regulator-max-microvolt = <1800000>;
359bafcf2dbSWadim Egorov				regulator-state-mem {
360bafcf2dbSWadim Egorov					regulator-off-in-suspend;
361bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <1800000>;
362bafcf2dbSWadim Egorov				};
363bafcf2dbSWadim Egorov			};
364bafcf2dbSWadim Egorov
365bafcf2dbSWadim Egorov			/* vcc9 */
366bafcf2dbSWadim Egorov			vdd_io_sd: LDO_REG9 {
367bafcf2dbSWadim Egorov				regulator-name = "vdd_io_sd";
368bafcf2dbSWadim Egorov				regulator-always-on;
369bafcf2dbSWadim Egorov				regulator-boot-on;
370bafcf2dbSWadim Egorov				regulator-min-microvolt = <3300000>;
371bafcf2dbSWadim Egorov				regulator-max-microvolt = <3300000>;
372bafcf2dbSWadim Egorov				regulator-state-mem {
373bafcf2dbSWadim Egorov					regulator-on-in-suspend;
374bafcf2dbSWadim Egorov					regulator-suspend-microvolt = <3300000>;
375bafcf2dbSWadim Egorov				};
376bafcf2dbSWadim Egorov			};
377bafcf2dbSWadim Egorov		};
378bafcf2dbSWadim Egorov	};
379bafcf2dbSWadim Egorov
380bafcf2dbSWadim Egorov	/* M24C32-D */
381bafcf2dbSWadim Egorov	i2c_eeprom: eeprom@50 {
382bafcf2dbSWadim Egorov		compatible = "atmel,24c32";
383bafcf2dbSWadim Egorov		reg = <0x50>;
384bafcf2dbSWadim Egorov		pagesize = <32>;
385bafcf2dbSWadim Egorov	};
386bafcf2dbSWadim Egorov
387*c03635c3SWadim Egorov	/* M24C32-D Identification page */
388*c03635c3SWadim Egorov	i2c_eeprom_id: eeprom@58 {
389*c03635c3SWadim Egorov		compatible = "atmel,24c32";
390*c03635c3SWadim Egorov		reg = <0x58>;
391*c03635c3SWadim Egorov		pagesize = <32>;
392*c03635c3SWadim Egorov	};
393*c03635c3SWadim Egorov
394bafcf2dbSWadim Egorov	vdd_cpu: regulator@60 {
395bafcf2dbSWadim Egorov		compatible = "fcs,fan53555";
396bafcf2dbSWadim Egorov		reg = <0x60>;
397bafcf2dbSWadim Egorov		fcs,suspend-voltage-selector = <1>;
398bafcf2dbSWadim Egorov		regulator-always-on;
399bafcf2dbSWadim Egorov		regulator-boot-on;
400bafcf2dbSWadim Egorov		regulator-enable-ramp-delay = <300>;
401bafcf2dbSWadim Egorov		regulator-name = "vdd_cpu";
402bafcf2dbSWadim Egorov		regulator-min-microvolt = <800000>;
403bafcf2dbSWadim Egorov		regulator-max-microvolt = <1430000>;
404bafcf2dbSWadim Egorov		regulator-ramp-delay = <8000>;
405bafcf2dbSWadim Egorov		vin-supply = <&vdd_sys>;
406bafcf2dbSWadim Egorov	};
407bafcf2dbSWadim Egorov};
408bafcf2dbSWadim Egorov
409bafcf2dbSWadim Egorov&pinctrl {
410bafcf2dbSWadim Egorov	pcfg_output_high: pcfg-output-high {
411bafcf2dbSWadim Egorov		output-high;
412bafcf2dbSWadim Egorov	};
413bafcf2dbSWadim Egorov
414bafcf2dbSWadim Egorov	emmc {
415bafcf2dbSWadim Egorov		/*
416bafcf2dbSWadim Egorov		 * We run eMMC at max speed; bump up drive strength.
417bafcf2dbSWadim Egorov		 * We also have external pulls, so disable the internal ones.
418bafcf2dbSWadim Egorov		 */
419bafcf2dbSWadim Egorov		emmc_clk: emmc-clk {
420bafcf2dbSWadim Egorov			rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_12ma>;
421bafcf2dbSWadim Egorov		};
422bafcf2dbSWadim Egorov
423bafcf2dbSWadim Egorov		emmc_cmd: emmc-cmd {
424bafcf2dbSWadim Egorov			rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_12ma>;
425bafcf2dbSWadim Egorov		};
426bafcf2dbSWadim Egorov
427bafcf2dbSWadim Egorov		emmc_bus8: emmc-bus8 {
428bafcf2dbSWadim Egorov			rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_12ma>,
429bafcf2dbSWadim Egorov					<3 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
430bafcf2dbSWadim Egorov					<3 2 RK_FUNC_2 &pcfg_pull_none_12ma>,
431bafcf2dbSWadim Egorov					<3 3 RK_FUNC_2 &pcfg_pull_none_12ma>,
432bafcf2dbSWadim Egorov					<3 4 RK_FUNC_2 &pcfg_pull_none_12ma>,
433bafcf2dbSWadim Egorov					<3 5 RK_FUNC_2 &pcfg_pull_none_12ma>,
434bafcf2dbSWadim Egorov					<3 6 RK_FUNC_2 &pcfg_pull_none_12ma>,
435bafcf2dbSWadim Egorov					<3 7 RK_FUNC_2 &pcfg_pull_none_12ma>;
436bafcf2dbSWadim Egorov		};
437bafcf2dbSWadim Egorov	};
438bafcf2dbSWadim Egorov
439bafcf2dbSWadim Egorov	gmac {
440bafcf2dbSWadim Egorov		phy_int: phy-int {
441bafcf2dbSWadim Egorov			rockchip,pins = <4 2 RK_FUNC_GPIO &pcfg_pull_up>;
442bafcf2dbSWadim Egorov		};
443bafcf2dbSWadim Egorov
444bafcf2dbSWadim Egorov		phy_rst: phy-rst {
445bafcf2dbSWadim Egorov			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
446bafcf2dbSWadim Egorov		};
447bafcf2dbSWadim Egorov	};
448bafcf2dbSWadim Egorov
449bafcf2dbSWadim Egorov	leds {
450bafcf2dbSWadim Egorov		user_led: user-led {
451bafcf2dbSWadim Egorov			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_output_high>;
452bafcf2dbSWadim Egorov		};
453bafcf2dbSWadim Egorov	};
454bafcf2dbSWadim Egorov
455bafcf2dbSWadim Egorov	pmic {
456bafcf2dbSWadim Egorov		pmic_int: pmic-int {
457bafcf2dbSWadim Egorov			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
458bafcf2dbSWadim Egorov		};
459bafcf2dbSWadim Egorov
460bafcf2dbSWadim Egorov		/* Pin for switching state between sleep and non-sleep state */
461bafcf2dbSWadim Egorov		pmic_sleep: pmic-sleep {
462bafcf2dbSWadim Egorov			rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
463bafcf2dbSWadim Egorov		};
464bafcf2dbSWadim Egorov	};
465bafcf2dbSWadim Egorov};
466bafcf2dbSWadim Egorov
467bafcf2dbSWadim Egorov&pwm1 {
468bafcf2dbSWadim Egorov	status = "okay";
469bafcf2dbSWadim Egorov};
470bafcf2dbSWadim Egorov
471bafcf2dbSWadim Egorov&saradc {
472bafcf2dbSWadim Egorov	status = "okay";
473bafcf2dbSWadim Egorov	vref-supply = <&vdd_1v8_ldo>;
474bafcf2dbSWadim Egorov};
475bafcf2dbSWadim Egorov
476bafcf2dbSWadim Egorov&spi2 {
477bafcf2dbSWadim Egorov	status = "okay";
478bafcf2dbSWadim Egorov
479bafcf2dbSWadim Egorov	serial_flash: flash@0 {
480bafcf2dbSWadim Egorov		compatible = "micron,n25q128a13", "jedec,spi-nor";
481bafcf2dbSWadim Egorov		reg = <0x0>;
482bafcf2dbSWadim Egorov		spi-max-frequency = <50000000>;
483bafcf2dbSWadim Egorov		m25p,fast-read;
484bafcf2dbSWadim Egorov		#address-cells = <1>;
485bafcf2dbSWadim Egorov		#size-cells = <1>;
486bafcf2dbSWadim Egorov		status = "okay";
487bafcf2dbSWadim Egorov	};
488bafcf2dbSWadim Egorov};
489bafcf2dbSWadim Egorov
490bafcf2dbSWadim Egorov&tsadc {
491bafcf2dbSWadim Egorov	status = "okay";
492bafcf2dbSWadim Egorov	rockchip,hw-tshut-mode = <0>;
493bafcf2dbSWadim Egorov	rockchip,hw-tshut-polarity = <0>;
494bafcf2dbSWadim Egorov};
495bafcf2dbSWadim Egorov
496bafcf2dbSWadim Egorov&vopb {
497bafcf2dbSWadim Egorov	status = "okay";
498bafcf2dbSWadim Egorov};
499bafcf2dbSWadim Egorov
500bafcf2dbSWadim Egorov&vopb_mmu {
501bafcf2dbSWadim Egorov	status = "okay";
502bafcf2dbSWadim Egorov};
503bafcf2dbSWadim Egorov
504bafcf2dbSWadim Egorov&vopl {
505bafcf2dbSWadim Egorov	status = "okay";
506bafcf2dbSWadim Egorov};
507bafcf2dbSWadim Egorov
508bafcf2dbSWadim Egorov&vopl_mmu {
509bafcf2dbSWadim Egorov	status = "okay";
510bafcf2dbSWadim Egorov};
511bafcf2dbSWadim Egorov
512bafcf2dbSWadim Egorov&wdt {
513bafcf2dbSWadim Egorov	status = "okay";
514bafcf2dbSWadim Egorov};
515