1086a2509Svishnupatekar/*
2086a2509Svishnupatekar * Copyright 2015 Vishnu Patekar
3086a2509Svishnupatekar * Vishnu Patekar <vishnupatekar0510@gmail.com>
4086a2509Svishnupatekar *
5086a2509Svishnupatekar * This file is dual-licensed: you can use it either under the terms
6086a2509Svishnupatekar * of the GPL or the X11 license, at your option. Note that this dual
7086a2509Svishnupatekar * licensing only applies to this file, and not this project as a
8086a2509Svishnupatekar * whole.
9086a2509Svishnupatekar *
10086a2509Svishnupatekar *  a) This file is free software; you can redistribute it and/or
11086a2509Svishnupatekar *     modify it under the terms of the GNU General Public License as
12086a2509Svishnupatekar *     published by the Free Software Foundation; either version 2 of the
13086a2509Svishnupatekar *     License, or (at your option) any later version.
14086a2509Svishnupatekar *
15086a2509Svishnupatekar *     This file is distributed in the hope that it will be useful,
16086a2509Svishnupatekar *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17086a2509Svishnupatekar *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18086a2509Svishnupatekar *     GNU General Public License for more details.
19086a2509Svishnupatekar *
20086a2509Svishnupatekar * Or, alternatively,
21086a2509Svishnupatekar *
22086a2509Svishnupatekar *  b) Permission is hereby granted, free of charge, to any person
23086a2509Svishnupatekar *     obtaining a copy of this software and associated documentation
24086a2509Svishnupatekar *     files (the "Software"), to deal in the Software without
25086a2509Svishnupatekar *     restriction, including without limitation the rights to use,
26086a2509Svishnupatekar *     copy, modify, merge, publish, distribute, sublicense, and/or
27086a2509Svishnupatekar *     sell copies of the Software, and to permit persons to whom the
28086a2509Svishnupatekar *     Software is furnished to do so, subject to the following
29086a2509Svishnupatekar *     conditions:
30086a2509Svishnupatekar *
31086a2509Svishnupatekar *     The above copyright notice and this permission notice shall be
32086a2509Svishnupatekar *     included in all copies or substantial portions of the Software.
33086a2509Svishnupatekar *
34086a2509Svishnupatekar *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35086a2509Svishnupatekar *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36086a2509Svishnupatekar *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37086a2509Svishnupatekar *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38086a2509Svishnupatekar *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39086a2509Svishnupatekar *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40086a2509Svishnupatekar *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41086a2509Svishnupatekar *     OTHER DEALINGS IN THE SOFTWARE.
42086a2509Svishnupatekar */
43086a2509Svishnupatekar
44086a2509Svishnupatekar/dts-v1/;
45086a2509Svishnupatekar#include "sun8i-a83t.dtsi"
46086a2509Svishnupatekar
47*0ca4d40cSJagan Teki#include <dt-bindings/gpio/gpio.h>
48*0ca4d40cSJagan Teki
49086a2509Svishnupatekar/ {
50086a2509Svishnupatekar	model = "Allwinner A83T H8Homlet Proto Dev Board v2.0";
51086a2509Svishnupatekar	compatible = "allwinner,h8homlet-v2", "allwinner,sun8i-a83t";
52086a2509Svishnupatekar
53086a2509Svishnupatekar	aliases {
54086a2509Svishnupatekar		serial0 = &uart0;
55086a2509Svishnupatekar	};
56086a2509Svishnupatekar
57086a2509Svishnupatekar	chosen {
58086a2509Svishnupatekar		stdout-path = "serial0:115200n8";
59086a2509Svishnupatekar	};
60*0ca4d40cSJagan Teki
61*0ca4d40cSJagan Teki	reg_usb0_vbus: reg-usb0-vbus {
62*0ca4d40cSJagan Teki		compatible = "regulator-fixed";
63*0ca4d40cSJagan Teki		regulator-name = "usb0-vbus";
64*0ca4d40cSJagan Teki		regulator-min-microvolt = <5000000>;
65*0ca4d40cSJagan Teki		regulator-max-microvolt = <5000000>;
66*0ca4d40cSJagan Teki		regulator-boot-on;
67*0ca4d40cSJagan Teki		enable-active-high;
68*0ca4d40cSJagan Teki		gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
69*0ca4d40cSJagan Teki	};
70*0ca4d40cSJagan Teki
71*0ca4d40cSJagan Teki	reg_usb1_vbus: reg-usb1-vbus {
72*0ca4d40cSJagan Teki		compatible = "regulator-fixed";
73*0ca4d40cSJagan Teki		regulator-name = "usb1-vbus";
74*0ca4d40cSJagan Teki		regulator-min-microvolt = <5000000>;
75*0ca4d40cSJagan Teki		regulator-max-microvolt = <5000000>;
76*0ca4d40cSJagan Teki		regulator-boot-on;
77*0ca4d40cSJagan Teki		enable-active-high;
78*0ca4d40cSJagan Teki		gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
79*0ca4d40cSJagan Teki	};
80086a2509Svishnupatekar};
81086a2509Svishnupatekar
82fa06f7edSChen-Yu Tsai&ehci0 {
83fa06f7edSChen-Yu Tsai	status = "okay";
84fa06f7edSChen-Yu Tsai};
85fa06f7edSChen-Yu Tsai
86*0ca4d40cSJagan Teki&mmc0 {
87*0ca4d40cSJagan Teki	pinctrl-names = "default";
88*0ca4d40cSJagan Teki	pinctrl-0 = <&mmc0_pins>;
89*0ca4d40cSJagan Teki	vmmc-supply = <&reg_dcdc1>;
90*0ca4d40cSJagan Teki	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
91*0ca4d40cSJagan Teki	bus-width = <4>;
92*0ca4d40cSJagan Teki	status = "okay";
93*0ca4d40cSJagan Teki};
94*0ca4d40cSJagan Teki
95*0ca4d40cSJagan Teki&mmc2 {
96*0ca4d40cSJagan Teki	pinctrl-names = "default";
97*0ca4d40cSJagan Teki	pinctrl-0 = <&mmc2_8bit_emmc_pins>;
98*0ca4d40cSJagan Teki	vmmc-supply = <&reg_dcdc1>;
99*0ca4d40cSJagan Teki	vqmmc-supply = <&reg_dcdc1>;
100*0ca4d40cSJagan Teki	bus-width = <8>;
101*0ca4d40cSJagan Teki	non-removable;
102*0ca4d40cSJagan Teki	cap-mmc-hw-reset;
103*0ca4d40cSJagan Teki	status = "okay";
104*0ca4d40cSJagan Teki};
105*0ca4d40cSJagan Teki
106fa06f7edSChen-Yu Tsai&ohci0 {
107fa06f7edSChen-Yu Tsai	status = "okay";
108fa06f7edSChen-Yu Tsai};
109fa06f7edSChen-Yu Tsai
110*0ca4d40cSJagan Teki&r_rsb {
111*0ca4d40cSJagan Teki	status = "okay";
112*0ca4d40cSJagan Teki
113*0ca4d40cSJagan Teki	axp81x: pmic@3a3 {
114*0ca4d40cSJagan Teki		compatible = "x-powers,axp818", "x-powers,axp813";
115*0ca4d40cSJagan Teki		reg = <0x3a3>;
116*0ca4d40cSJagan Teki		interrupt-parent = <&r_intc>;
117*0ca4d40cSJagan Teki		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
118*0ca4d40cSJagan Teki		eldoin-supply = <&reg_dcdc1>;
119*0ca4d40cSJagan Teki		swin-supply = <&reg_dcdc1>;
120*0ca4d40cSJagan Teki	};
121*0ca4d40cSJagan Teki
122*0ca4d40cSJagan Teki	ac100: codec@e89 {
123*0ca4d40cSJagan Teki		compatible = "x-powers,ac100";
124*0ca4d40cSJagan Teki		reg = <0xe89>;
125*0ca4d40cSJagan Teki
126*0ca4d40cSJagan Teki		ac100_codec: codec {
127*0ca4d40cSJagan Teki			compatible = "x-powers,ac100-codec";
128*0ca4d40cSJagan Teki			interrupt-parent = <&r_pio>;
129*0ca4d40cSJagan Teki			interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
130*0ca4d40cSJagan Teki			#clock-cells = <0>;
131*0ca4d40cSJagan Teki			clock-output-names = "4M_adda";
132*0ca4d40cSJagan Teki		};
133*0ca4d40cSJagan Teki
134*0ca4d40cSJagan Teki		ac100_rtc: rtc {
135*0ca4d40cSJagan Teki			compatible = "x-powers,ac100-rtc";
136*0ca4d40cSJagan Teki			interrupt-parent = <&r_intc>;
137*0ca4d40cSJagan Teki			interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
138*0ca4d40cSJagan Teki			clocks = <&ac100_codec>;
139*0ca4d40cSJagan Teki			#clock-cells = <1>;
140*0ca4d40cSJagan Teki			clock-output-names = "cko1_rtc",
141*0ca4d40cSJagan Teki					     "cko2_rtc",
142*0ca4d40cSJagan Teki					     "cko3_rtc";
143*0ca4d40cSJagan Teki		};
144*0ca4d40cSJagan Teki	};
145*0ca4d40cSJagan Teki};
146*0ca4d40cSJagan Teki
147*0ca4d40cSJagan Teki#include "axp81x.dtsi"
148*0ca4d40cSJagan Teki
149*0ca4d40cSJagan Teki&reg_aldo1 {
150*0ca4d40cSJagan Teki	regulator-always-on;
151*0ca4d40cSJagan Teki	regulator-min-microvolt = <1800000>;
152*0ca4d40cSJagan Teki	regulator-max-microvolt = <1800000>;
153*0ca4d40cSJagan Teki	regulator-name = "vcc-1v8";
154*0ca4d40cSJagan Teki};
155*0ca4d40cSJagan Teki
156*0ca4d40cSJagan Teki&reg_aldo2 {
157*0ca4d40cSJagan Teki	regulator-always-on;
158*0ca4d40cSJagan Teki	regulator-min-microvolt = <1800000>;
159*0ca4d40cSJagan Teki	regulator-max-microvolt = <1800000>;
160*0ca4d40cSJagan Teki	regulator-name = "dram-pll";
161*0ca4d40cSJagan Teki};
162*0ca4d40cSJagan Teki
163*0ca4d40cSJagan Teki&reg_aldo3 {
164*0ca4d40cSJagan Teki	regulator-always-on;
165*0ca4d40cSJagan Teki	regulator-min-microvolt = <3000000>;
166*0ca4d40cSJagan Teki	regulator-max-microvolt = <3000000>;
167*0ca4d40cSJagan Teki	regulator-name = "avcc";
168*0ca4d40cSJagan Teki};
169*0ca4d40cSJagan Teki
170*0ca4d40cSJagan Teki&reg_dcdc1 {
171*0ca4d40cSJagan Teki	regulator-always-on;
172*0ca4d40cSJagan Teki	regulator-min-microvolt = <3300000>;
173*0ca4d40cSJagan Teki	regulator-max-microvolt = <3300000>;
174*0ca4d40cSJagan Teki	regulator-name = "vcc-3v3";
175*0ca4d40cSJagan Teki};
176*0ca4d40cSJagan Teki
177*0ca4d40cSJagan Teki&reg_dcdc2 {
178*0ca4d40cSJagan Teki	regulator-always-on;
179*0ca4d40cSJagan Teki	regulator-min-microvolt = <700000>;
180*0ca4d40cSJagan Teki	regulator-max-microvolt = <1100000>;
181*0ca4d40cSJagan Teki	regulator-name = "vdd-cpua";
182*0ca4d40cSJagan Teki};
183*0ca4d40cSJagan Teki
184*0ca4d40cSJagan Teki&reg_dcdc3 {
185*0ca4d40cSJagan Teki	regulator-always-on;
186*0ca4d40cSJagan Teki	regulator-min-microvolt = <700000>;
187*0ca4d40cSJagan Teki	regulator-max-microvolt = <1100000>;
188*0ca4d40cSJagan Teki	regulator-name = "vdd-cpub";
189*0ca4d40cSJagan Teki};
190*0ca4d40cSJagan Teki
191*0ca4d40cSJagan Teki&reg_dcdc4 {
192*0ca4d40cSJagan Teki	regulator-min-microvolt = <700000>;
193*0ca4d40cSJagan Teki	regulator-max-microvolt = <1100000>;
194*0ca4d40cSJagan Teki	regulator-name = "vdd-gpu";
195*0ca4d40cSJagan Teki};
196*0ca4d40cSJagan Teki
197*0ca4d40cSJagan Teki&reg_dcdc5 {
198*0ca4d40cSJagan Teki	regulator-always-on;
199*0ca4d40cSJagan Teki	regulator-min-microvolt = <1500000>;
200*0ca4d40cSJagan Teki	regulator-max-microvolt = <1500000>;
201*0ca4d40cSJagan Teki	regulator-name = "vcc-dram";
202*0ca4d40cSJagan Teki};
203*0ca4d40cSJagan Teki
204*0ca4d40cSJagan Teki&reg_dcdc6 {
205*0ca4d40cSJagan Teki	regulator-always-on;
206*0ca4d40cSJagan Teki	regulator-min-microvolt = <900000>;
207*0ca4d40cSJagan Teki	regulator-max-microvolt = <900000>;
208*0ca4d40cSJagan Teki	regulator-name = "vdd-sys";
209*0ca4d40cSJagan Teki};
210*0ca4d40cSJagan Teki
211*0ca4d40cSJagan Teki&reg_dldo2 {
212*0ca4d40cSJagan Teki	regulator-min-microvolt = <3300000>;
213*0ca4d40cSJagan Teki	regulator-max-microvolt = <3300000>;
214*0ca4d40cSJagan Teki	regulator-name = "vcc-mipi";
215*0ca4d40cSJagan Teki};
216*0ca4d40cSJagan Teki
217*0ca4d40cSJagan Teki&reg_dldo4 {
218*0ca4d40cSJagan Teki	/*
219*0ca4d40cSJagan Teki	 * The PHY requires 20ms after all voltages are applied until core
220*0ca4d40cSJagan Teki	 * logic is ready and 30ms after the reset pin is de-asserted.
221*0ca4d40cSJagan Teki	 * Set a 100ms delay to account for PMIC ramp time and board traces.
222*0ca4d40cSJagan Teki	 */
223*0ca4d40cSJagan Teki	regulator-enable-ramp-delay = <100000>;
224*0ca4d40cSJagan Teki	regulator-min-microvolt = <3300000>;
225*0ca4d40cSJagan Teki	regulator-max-microvolt = <3300000>;
226*0ca4d40cSJagan Teki	regulator-name = "vcc-ephy";
227*0ca4d40cSJagan Teki};
228*0ca4d40cSJagan Teki
229*0ca4d40cSJagan Teki&reg_fldo1 {
230*0ca4d40cSJagan Teki	regulator-min-microvolt = <1080000>;
231*0ca4d40cSJagan Teki	regulator-max-microvolt = <1320000>;
232*0ca4d40cSJagan Teki	regulator-name = "vdd12-hsic";
233*0ca4d40cSJagan Teki};
234*0ca4d40cSJagan Teki
235*0ca4d40cSJagan Teki&reg_fldo2 {
236*0ca4d40cSJagan Teki	/*
237*0ca4d40cSJagan Teki	 * Despite the embedded CPUs core not being used in any way,
238*0ca4d40cSJagan Teki	 * this must remain on or the system will hang.
239*0ca4d40cSJagan Teki	 */
240*0ca4d40cSJagan Teki	regulator-always-on;
241*0ca4d40cSJagan Teki	regulator-min-microvolt = <700000>;
242*0ca4d40cSJagan Teki	regulator-max-microvolt = <1100000>;
243*0ca4d40cSJagan Teki	regulator-name = "vdd-cpus";
244*0ca4d40cSJagan Teki};
245*0ca4d40cSJagan Teki
246*0ca4d40cSJagan Teki&reg_rtc_ldo {
247*0ca4d40cSJagan Teki	regulator-name = "vcc-rtc";
248*0ca4d40cSJagan Teki};
249*0ca4d40cSJagan Teki
250*0ca4d40cSJagan Teki&reg_sw {
251*0ca4d40cSJagan Teki	regulator-name = "vcc-wifi";
252*0ca4d40cSJagan Teki};
253*0ca4d40cSJagan Teki
254086a2509Svishnupatekar&uart0 {
255086a2509Svishnupatekar	pinctrl-names = "default";
256*0ca4d40cSJagan Teki	pinctrl-0 = <&uart0_pb_pins>;
257*0ca4d40cSJagan Teki	status = "okay";
258*0ca4d40cSJagan Teki};
259*0ca4d40cSJagan Teki
260*0ca4d40cSJagan Teki&usbphy {
261*0ca4d40cSJagan Teki	usb0_vbus-supply = <&reg_usb0_vbus>;
262*0ca4d40cSJagan Teki	usb1_vbus-supply = <&reg_usb1_vbus>;
263086a2509Svishnupatekar	status = "okay";
264086a2509Svishnupatekar};
265fa06f7edSChen-Yu Tsai
266fa06f7edSChen-Yu Tsai&usb_otg {
267*0ca4d40cSJagan Teki	dr_mode = "host";
268fa06f7edSChen-Yu Tsai	status = "okay";
269fa06f7edSChen-Yu Tsai};
270