1/*
2 * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
3 * Based on meson-gx-p23x-q20x.dtsi:
4 * - Copyright (c) 2016 Endless Computers, Inc.
5 *   Author: Carlo Caione <carlo@endlessm.com>
6 * - Copyright (c) 2016 BayLibre, SAS.
7 *   Author: Neil Armstrong <narmstrong@baylibre.com>
8 *
9 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
10 */
11
12/* Common DTSI for devices which are based on the P212 reference board. */
13
14#include "meson-gxl-s905x.dtsi"
15
16/ {
17	aliases {
18		serial0 = &uart_AO;
19		serial1 = &uart_A;
20	};
21
22	chosen {
23		stdout-path = "serial0:115200n8";
24	};
25
26	memory@0 {
27		device_type = "memory";
28		reg = <0x0 0x0 0x0 0x80000000>;
29	};
30
31	vddio_boot: regulator-vddio_boot {
32		compatible = "regulator-fixed";
33		regulator-name = "VDDIO_BOOT";
34		regulator-min-microvolt = <1800000>;
35		regulator-max-microvolt = <1800000>;
36	};
37
38	vddao_3v3: regulator-vddao_3v3 {
39		compatible = "regulator-fixed";
40		regulator-name = "VDDAO_3V3";
41		regulator-min-microvolt = <3300000>;
42		regulator-max-microvolt = <3300000>;
43	};
44
45	vddio_ao18: regulator-vddio_ao18 {
46		compatible = "regulator-fixed";
47		regulator-name = "VDDIO_AO18";
48		regulator-min-microvolt = <1800000>;
49		regulator-max-microvolt = <1800000>;
50	};
51
52	vcc_3v3: regulator-vcc_3v3 {
53		compatible = "regulator-fixed";
54		regulator-name = "VCC_3V3";
55		regulator-min-microvolt = <3300000>;
56		regulator-max-microvolt = <3300000>;
57	};
58
59	emmc_pwrseq: emmc-pwrseq {
60		compatible = "mmc-pwrseq-emmc";
61		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
62	};
63
64	wifi32k: wifi32k {
65		compatible = "pwm-clock";
66		#clock-cells = <0>;
67		clock-frequency = <32768>;
68		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
69	};
70
71	sdio_pwrseq: sdio-pwrseq {
72		compatible = "mmc-pwrseq-simple";
73		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
74		clocks = <&wifi32k>;
75		clock-names = "ext_clock";
76	};
77};
78
79&ethmac {
80	status = "okay";
81};
82
83&ir {
84	status = "okay";
85	pinctrl-0 = <&remote_input_ao_pins>;
86	pinctrl-names = "default";
87};
88
89&saradc {
90	status = "okay";
91	vref-supply = <&vddio_ao18>;
92};
93
94/* Wireless SDIO Module */
95&sd_emmc_a {
96	status = "okay";
97	pinctrl-0 = <&sdio_pins>;
98	pinctrl-1 = <&sdio_clk_gate_pins>;
99	pinctrl-names = "default", "clk-gate";
100	#address-cells = <1>;
101	#size-cells = <0>;
102
103	bus-width = <4>;
104	cap-sd-highspeed;
105	max-frequency = <100000000>;
106
107	non-removable;
108	disable-wp;
109
110	mmc-pwrseq = <&sdio_pwrseq>;
111
112	vmmc-supply = <&vddao_3v3>;
113	vqmmc-supply = <&vddio_boot>;
114};
115
116/* SD card */
117&sd_emmc_b {
118	status = "okay";
119	pinctrl-0 = <&sdcard_pins>;
120	pinctrl-1 = <&sdcard_clk_gate_pins>;
121	pinctrl-names = "default", "clk-gate";
122
123	bus-width = <4>;
124	cap-sd-highspeed;
125	max-frequency = <100000000>;
126	disable-wp;
127
128	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
129	cd-inverted;
130
131	vmmc-supply = <&vddao_3v3>;
132	vqmmc-supply = <&vddio_boot>;
133};
134
135/* eMMC */
136&sd_emmc_c {
137	status = "okay";
138	pinctrl-0 = <&emmc_pins>;
139	pinctrl-1 = <&emmc_clk_gate_pins>;
140	pinctrl-names = "default", "clk-gate";
141
142	bus-width = <8>;
143	cap-mmc-highspeed;
144	max-frequency = <200000000>;
145	non-removable;
146	disable-wp;
147	mmc-ddr-1_8v;
148	mmc-hs200-1_8v;
149
150	mmc-pwrseq = <&emmc_pwrseq>;
151	vmmc-supply = <&vcc_3v3>;
152	vqmmc-supply = <&vddio_boot>;
153};
154
155&pwm_ef {
156	status = "okay";
157	pinctrl-0 = <&pwm_e_pins>;
158	pinctrl-names = "default";
159	clocks = <&clkc CLKID_FCLK_DIV4>;
160	clock-names = "clkin0";
161};
162
163/* This is connected to the Bluetooth module: */
164&uart_A {
165	status = "okay";
166	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
167	pinctrl-names = "default";
168	uart-has-rtscts;
169};
170
171&uart_AO {
172	status = "okay";
173	pinctrl-0 = <&uart_ao_a_pins>;
174	pinctrl-names = "default";
175};
176