1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring// Copyright (C) 2019 Chen-Yu Tsai <wens@csie.org>
3*724ba675SRob Herring
4*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
5*724ba675SRob Herring#include <dt-bindings/input/input.h>
6*724ba675SRob Herring
7*724ba675SRob Herring/ {
8*724ba675SRob Herring	aliases {
9*724ba675SRob Herring		serial0 = &uart0;
10*724ba675SRob Herring		spi0 = &spi0;
11*724ba675SRob Herring	};
12*724ba675SRob Herring
13*724ba675SRob Herring	chosen {
14*724ba675SRob Herring		stdout-path = "serial0:115200n8";
15*724ba675SRob Herring	};
16*724ba675SRob Herring
17*724ba675SRob Herring	connector {
18*724ba675SRob Herring		compatible = "hdmi-connector";
19*724ba675SRob Herring		type = "d";
20*724ba675SRob Herring
21*724ba675SRob Herring		port {
22*724ba675SRob Herring			hdmi_con_in: endpoint {
23*724ba675SRob Herring				remote-endpoint = <&hdmi_out_con>;
24*724ba675SRob Herring			};
25*724ba675SRob Herring		};
26*724ba675SRob Herring	};
27*724ba675SRob Herring
28*724ba675SRob Herring	leds {
29*724ba675SRob Herring		compatible = "gpio-leds";
30*724ba675SRob Herring
31*724ba675SRob Herring		status_led {
32*724ba675SRob Herring			label = "librecomputer:blue:status";
33*724ba675SRob Herring			gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */
34*724ba675SRob Herring		};
35*724ba675SRob Herring	};
36*724ba675SRob Herring
37*724ba675SRob Herring	reg_vcc3v3: vcc3v3 {
38*724ba675SRob Herring		compatible = "regulator-fixed";
39*724ba675SRob Herring		regulator-name = "vcc3v3";
40*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
41*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
42*724ba675SRob Herring		regulator-always-on;
43*724ba675SRob Herring		regulator-boot-on;
44*724ba675SRob Herring		vin-supply = <&reg_vcc5v0>;
45*724ba675SRob Herring	};
46*724ba675SRob Herring
47*724ba675SRob Herring	/* This represents the board's 5V input */
48*724ba675SRob Herring	reg_vcc5v0: vcc5v0 {
49*724ba675SRob Herring		compatible = "regulator-fixed";
50*724ba675SRob Herring		regulator-name = "vcc5v0";
51*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
52*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
53*724ba675SRob Herring		regulator-always-on;
54*724ba675SRob Herring		regulator-boot-on;
55*724ba675SRob Herring	};
56*724ba675SRob Herring
57*724ba675SRob Herring	reg_vcc_dram: vcc-dram {
58*724ba675SRob Herring		compatible = "regulator-fixed";
59*724ba675SRob Herring		regulator-name = "vcc-dram";
60*724ba675SRob Herring		regulator-min-microvolt = <1500000>;
61*724ba675SRob Herring		regulator-max-microvolt = <1500000>;
62*724ba675SRob Herring		regulator-always-on;
63*724ba675SRob Herring		regulator-boot-on;
64*724ba675SRob Herring		vin-supply = <&reg_vcc5v0>;
65*724ba675SRob Herring		gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
66*724ba675SRob Herring		enable-active-high;
67*724ba675SRob Herring	};
68*724ba675SRob Herring
69*724ba675SRob Herring	reg_vcc_io: vcc-io {
70*724ba675SRob Herring		compatible = "regulator-fixed";
71*724ba675SRob Herring		regulator-name = "vcc-io";
72*724ba675SRob Herring		/* This is simply a MOSFET switch */
73*724ba675SRob Herring		regulator-always-on;
74*724ba675SRob Herring		regulator-boot-on;
75*724ba675SRob Herring		vin-supply = <&reg_vcc3v3>;
76*724ba675SRob Herring		gpio = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
77*724ba675SRob Herring	};
78*724ba675SRob Herring
79*724ba675SRob Herring	reg_vcc_usbwifi: vcc-usbwifi {
80*724ba675SRob Herring		compatible = "regulator-fixed";
81*724ba675SRob Herring		regulator-name = "vcc-usbwifi";
82*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
83*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
84*724ba675SRob Herring		vin-supply = <&reg_vcc5v0>;
85*724ba675SRob Herring		gpio = <&pio 6 4 GPIO_ACTIVE_HIGH>; /* PG4 */
86*724ba675SRob Herring		enable-active-high;
87*724ba675SRob Herring	};
88*724ba675SRob Herring
89*724ba675SRob Herring	reg_vdd_cpux: vdd-cpux {
90*724ba675SRob Herring		compatible = "regulator-fixed";
91*724ba675SRob Herring		regulator-name = "vdd-cpux";
92*724ba675SRob Herring		regulator-min-microvolt = <1100000>;
93*724ba675SRob Herring		regulator-max-microvolt = <1100000>;
94*724ba675SRob Herring		regulator-always-on;
95*724ba675SRob Herring		regulator-boot-on;
96*724ba675SRob Herring		vin-supply = <&reg_vcc5v0>;
97*724ba675SRob Herring		gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
98*724ba675SRob Herring		enable-active-high;
99*724ba675SRob Herring	};
100*724ba675SRob Herring};
101*724ba675SRob Herring
102*724ba675SRob Herring&cpu0 {
103*724ba675SRob Herring	cpu-supply = <&reg_vdd_cpux>;
104*724ba675SRob Herring};
105*724ba675SRob Herring
106*724ba675SRob Herring&cpu1 {
107*724ba675SRob Herring	cpu-supply = <&reg_vdd_cpux>;
108*724ba675SRob Herring};
109*724ba675SRob Herring
110*724ba675SRob Herring&cpu2 {
111*724ba675SRob Herring	cpu-supply = <&reg_vdd_cpux>;
112*724ba675SRob Herring};
113*724ba675SRob Herring
114*724ba675SRob Herring&cpu3 {
115*724ba675SRob Herring	cpu-supply = <&reg_vdd_cpux>;
116*724ba675SRob Herring};
117*724ba675SRob Herring
118*724ba675SRob Herring&de {
119*724ba675SRob Herring	status = "okay";
120*724ba675SRob Herring};
121*724ba675SRob Herring
122*724ba675SRob Herring&ehci1 {
123*724ba675SRob Herring	status = "okay";
124*724ba675SRob Herring};
125*724ba675SRob Herring
126*724ba675SRob Herring&hdmi {
127*724ba675SRob Herring	status = "okay";
128*724ba675SRob Herring};
129*724ba675SRob Herring
130*724ba675SRob Herring&hdmi_out {
131*724ba675SRob Herring	hdmi_out_con: endpoint {
132*724ba675SRob Herring		remote-endpoint = <&hdmi_con_in>;
133*724ba675SRob Herring	};
134*724ba675SRob Herring};
135*724ba675SRob Herring
136*724ba675SRob Herring&mmc0 {
137*724ba675SRob Herring	vmmc-supply = <&reg_vcc_io>;
138*724ba675SRob Herring	bus-width = <4>;
139*724ba675SRob Herring	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
140*724ba675SRob Herring	status = "okay";
141*724ba675SRob Herring};
142*724ba675SRob Herring
143*724ba675SRob Herring&pio {
144*724ba675SRob Herring	vcc-pa-supply = <&reg_vcc_io>;
145*724ba675SRob Herring	vcc-pc-supply = <&reg_vcc_io>;
146*724ba675SRob Herring	vcc-pd-supply = <&reg_vcc_io>;
147*724ba675SRob Herring	vcc-pe-supply = <&reg_vcc_io>;
148*724ba675SRob Herring	vcc-pf-supply = <&reg_vcc_io>;
149*724ba675SRob Herring	vcc-pg-supply = <&reg_vcc_io>;
150*724ba675SRob Herring};
151*724ba675SRob Herring
152*724ba675SRob Herring&r_pio {
153*724ba675SRob Herring	vcc-pl-supply = <&reg_vcc3v3>;
154*724ba675SRob Herring};
155*724ba675SRob Herring
156*724ba675SRob Herring&spi0 {
157*724ba675SRob Herring	status = "okay";
158*724ba675SRob Herring
159*724ba675SRob Herring	flash@0 {
160*724ba675SRob Herring		compatible = "jedec,spi-nor";
161*724ba675SRob Herring		reg = <0>;
162*724ba675SRob Herring		spi-max-frequency = <50000000>;
163*724ba675SRob Herring	};
164*724ba675SRob Herring};
165*724ba675SRob Herring
166*724ba675SRob Herring&uart0 {
167*724ba675SRob Herring	pinctrl-names = "default";
168*724ba675SRob Herring	pinctrl-0 = <&uart0_pa_pins>;
169*724ba675SRob Herring	status = "okay";
170*724ba675SRob Herring};
171*724ba675SRob Herring
172*724ba675SRob Herring&usb_otg {
173*724ba675SRob Herring	dr_mode = "peripheral";
174*724ba675SRob Herring	status = "okay";
175*724ba675SRob Herring};
176*724ba675SRob Herring
177*724ba675SRob Herring&usbphy {
178*724ba675SRob Herring	usb1_vbus-supply = <&reg_vcc_usbwifi>;
179*724ba675SRob Herring	status = "okay";
180*724ba675SRob Herring};
181