xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm/sunxi-h3-h5-emlid-neutis.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * DTSI for Emlid Neutis SoMs.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2019 Georgii Staroselskii <georgii.staroselskii@emlid.com>
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include "sunxi-common-regulators.dtsi"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	aliases {
14*4882a593Smuzhiyun		serial0 = &uart0;
15*4882a593Smuzhiyun	};
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	chosen {
18*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
19*4882a593Smuzhiyun	};
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	wifi_pwrseq: wifi_pwrseq {
22*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
23*4882a593Smuzhiyun		reset-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>; /* PC7 */
24*4882a593Smuzhiyun		post-power-on-delay-ms = <200>;
25*4882a593Smuzhiyun		clocks = <&rtc 1>;
26*4882a593Smuzhiyun		clock-names = "ext_clock";
27*4882a593Smuzhiyun	};
28*4882a593Smuzhiyun};
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun&cpu0 {
31*4882a593Smuzhiyun	cpu-supply = <&vdd_cpux>;
32*4882a593Smuzhiyun};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun&reg_usb0_vbus {
35*4882a593Smuzhiyun	gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>;   /* PL9 */
36*4882a593Smuzhiyun	status = "okay";
37*4882a593Smuzhiyun};
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun&de {
41*4882a593Smuzhiyun	status = "okay";
42*4882a593Smuzhiyun};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun&ohci0 {
45*4882a593Smuzhiyun	status = "okay";
46*4882a593Smuzhiyun};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun&ohci1 {
49*4882a593Smuzhiyun	status = "okay";
50*4882a593Smuzhiyun};
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun&ohci2 {
53*4882a593Smuzhiyun	status = "okay";
54*4882a593Smuzhiyun};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun&ohci3 {
57*4882a593Smuzhiyun	status = "okay";
58*4882a593Smuzhiyun};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun&ehci0 {
62*4882a593Smuzhiyun	status = "okay";
63*4882a593Smuzhiyun};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun&ehci1 {
66*4882a593Smuzhiyun	status = "okay";
67*4882a593Smuzhiyun};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun&ehci2 {
70*4882a593Smuzhiyun	status = "okay";
71*4882a593Smuzhiyun};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun&ehci3 {
74*4882a593Smuzhiyun	status = "okay";
75*4882a593Smuzhiyun};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun&mmc0 {
78*4882a593Smuzhiyun	vmmc-supply = <&reg_vcc3v3>;
79*4882a593Smuzhiyun	bus-width = <4>;
80*4882a593Smuzhiyun	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
81*4882a593Smuzhiyun	status = "okay";
82*4882a593Smuzhiyun};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun&mmc1 {
86*4882a593Smuzhiyun	vmmc-supply = <&reg_vcc3v3>;
87*4882a593Smuzhiyun	vqmmc-supply = <&reg_vcc3v3>;
88*4882a593Smuzhiyun	mmc-pwrseq = <&wifi_pwrseq>;
89*4882a593Smuzhiyun	bus-width = <4>;
90*4882a593Smuzhiyun	non-removable;
91*4882a593Smuzhiyun	status = "okay";
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	brcmf: wifi@1 {
94*4882a593Smuzhiyun		reg = <1>;
95*4882a593Smuzhiyun		compatible = "brcm,bcm4329-fmac";
96*4882a593Smuzhiyun		interrupt-parent = <&r_pio>;
97*4882a593Smuzhiyun		interrupts = <0 5 IRQ_TYPE_LEVEL_LOW>;	/* PL5 */
98*4882a593Smuzhiyun		interrupt-names = "host-wake";
99*4882a593Smuzhiyun	};
100*4882a593Smuzhiyun};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun&mmc2 {
103*4882a593Smuzhiyun	pinctrl-names = "default";
104*4882a593Smuzhiyun	pinctrl-0 = <&mmc2_8bit_pins>;
105*4882a593Smuzhiyun	vmmc-supply = <&reg_vcc3v3>;
106*4882a593Smuzhiyun	bus-width = <8>;
107*4882a593Smuzhiyun	non-removable;
108*4882a593Smuzhiyun	cap-mmc-hw-reset;
109*4882a593Smuzhiyun	status = "okay";
110*4882a593Smuzhiyun};
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun&uart0 {
113*4882a593Smuzhiyun	pinctrl-names = "default";
114*4882a593Smuzhiyun	pinctrl-0 = <&uart0_pa_pins>;
115*4882a593Smuzhiyun	status = "okay";
116*4882a593Smuzhiyun};
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun&uart1 {
120*4882a593Smuzhiyun	pinctrl-names = "default";
121*4882a593Smuzhiyun	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
122*4882a593Smuzhiyun	uart-has-rtscts;
123*4882a593Smuzhiyun	status = "okay";
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	bluetooth {
126*4882a593Smuzhiyun		compatible = "brcm,bcm43438-bt";
127*4882a593Smuzhiyun		clocks = <&rtc 1>;
128*4882a593Smuzhiyun		clock-names = "lpo";
129*4882a593Smuzhiyun		vbat-supply = <&reg_vcc3v3>;
130*4882a593Smuzhiyun		vddio-supply = <&reg_vcc3v3>;
131*4882a593Smuzhiyun		shutdown-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
132*4882a593Smuzhiyun		device-wakeup-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
133*4882a593Smuzhiyun	};
134*4882a593Smuzhiyun};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun&uart2 {
137*4882a593Smuzhiyun	pinctrl-names = "default";
138*4882a593Smuzhiyun	pinctrl-0 = <&uart2_pins>;
139*4882a593Smuzhiyun	status = "okay";
140*4882a593Smuzhiyun};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun&uart3 {
143*4882a593Smuzhiyun	pinctrl-names = "default";
144*4882a593Smuzhiyun	pinctrl-0 = <&uart3_pins>;
145*4882a593Smuzhiyun	status = "okay";
146*4882a593Smuzhiyun};
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun&usbphy {
149*4882a593Smuzhiyun	usb0_id_det-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
150*4882a593Smuzhiyun	usb0_vbus-supply = <&reg_usb0_vbus>;
151*4882a593Smuzhiyun	status = "okay";
152*4882a593Smuzhiyun};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun&usb_otg {
155*4882a593Smuzhiyun	dr_mode = "otg";
156*4882a593Smuzhiyun	status = "okay";
157*4882a593Smuzhiyun};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun&codec {
160*4882a593Smuzhiyun	allwinner,audio-routing =
161*4882a593Smuzhiyun		"Line Out", "LINEOUT",
162*4882a593Smuzhiyun		"LINEIN", "Line In",
163*4882a593Smuzhiyun		"MIC1", "Mic",
164*4882a593Smuzhiyun		"MIC2", "Mic",
165*4882a593Smuzhiyun		"Mic",  "MBIAS";
166*4882a593Smuzhiyun};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun&i2c0 {
169*4882a593Smuzhiyun	status = "okay";
170*4882a593Smuzhiyun};
171