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