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-names = "default";
99	#address-cells = <1>;
100	#size-cells = <0>;
101
102	bus-width = <4>;
103	cap-sd-highspeed;
104	max-frequency = <100000000>;
105
106	non-removable;
107	disable-wp;
108
109	mmc-pwrseq = <&sdio_pwrseq>;
110
111	vmmc-supply = <&vddao_3v3>;
112	vqmmc-supply = <&vddio_boot>;
113};
114
115/* SD card */
116&sd_emmc_b {
117	status = "okay";
118	pinctrl-0 = <&sdcard_pins>;
119	pinctrl-names = "default";
120
121	bus-width = <4>;
122	cap-sd-highspeed;
123	max-frequency = <100000000>;
124	disable-wp;
125
126	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
127	cd-inverted;
128
129	vmmc-supply = <&vddao_3v3>;
130	vqmmc-supply = <&vddio_boot>;
131};
132
133/* eMMC */
134&sd_emmc_c {
135	status = "okay";
136	pinctrl-0 = <&emmc_pins>;
137	pinctrl-names = "default";
138
139	bus-width = <8>;
140	cap-sd-highspeed;
141	cap-mmc-highspeed;
142	max-frequency = <200000000>;
143	non-removable;
144	disable-wp;
145	mmc-ddr-1_8v;
146	mmc-hs200-1_8v;
147
148	mmc-pwrseq = <&emmc_pwrseq>;
149	vmmc-supply = <&vcc_3v3>;
150	vqmmc-supply = <&vddio_boot>;
151};
152
153&pwm_ef {
154	status = "okay";
155	pinctrl-0 = <&pwm_e_pins>;
156	pinctrl-names = "default";
157	clocks = <&clkc CLKID_FCLK_DIV4>;
158	clock-names = "clkin0";
159};
160
161/* This is connected to the Bluetooth module: */
162&uart_A {
163	status = "okay";
164	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
165	pinctrl-names = "default";
166	uart-has-rtscts;
167};
168
169&uart_AO {
170	status = "okay";
171	pinctrl-0 = <&uart_ao_a_pins>;
172	pinctrl-names = "default";
173};
174