1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Oleg Ivanov <balbes-150@yandex.ru>
4 * Copyright (c) 2018 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
5 */
6
7/dts-v1/;
8
9#include "meson8m2.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h>
13
14/ {
15	model = "Tronsmart MXIII Plus";
16	compatible = "tronsmart,mxiii-plus", "amlogic,meson8m2";
17
18	aliases {
19		ethernet0 = &ethmac;
20		i2c0 = &i2c_AO;
21		serial0 = &uart_AO;
22		serial1 = &uart_A;
23		mmc0 = &sd_card_slot;
24	};
25
26	chosen {
27		stdout-path = "serial0:115200n8";
28	};
29
30	memory {
31		device_type = "memory";
32		reg = <0x40000000 0x80000000>;
33	};
34
35	adc-keys {
36		compatible = "adc-keys";
37		io-channels = <&saradc 0>;
38		io-channel-names = "buttons";
39		keyup-threshold-microvolt = <1710000>;
40
41		button-function {
42			label = "Function";
43			linux,code = <KEY_FN>;
44			press-threshold-microvolt = <10000>;
45		};
46	};
47
48	iio-hwmon {
49		compatible = "iio-hwmon";
50		io-channels = <&saradc 8>;
51	};
52
53	vcc_3v3: regulator-vcc3v3 {
54		compatible = "regulator-fixed";
55		regulator-name = "VCC3V3";
56		regulator-min-microvolt = <3300000>;
57		regulator-max-microvolt = <3300000>;
58	};
59};
60
61&cpu0 {
62	cpu-supply = <&vcck>;
63};
64
65&ethmac {
66	status = "okay";
67
68	pinctrl-0 = <&eth_rgmii_pins>;
69	pinctrl-names = "default";
70
71	phy-handle = <&eth_phy0>;
72	phy-mode = "rgmii-id";
73
74	mdio {
75		compatible = "snps,dwmac-mdio";
76		#address-cells = <1>;
77		#size-cells = <0>;
78
79		eth_phy0: ethernet-phy@0 {
80			/* Realtek RTL8211F (0x001cc916) */
81			reg = <0>;
82
83			reset-assert-us = <10000>;
84			reset-deassert-us = <30000>;
85			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
86		};
87	};
88};
89
90&ir_receiver {
91	status = "okay";
92	pinctrl-0 = <&ir_recv_pins>;
93	pinctrl-names = "default";
94};
95
96&i2c_AO {
97	status = "okay";
98	pinctrl-0 = <&i2c_ao_pins>;
99	pinctrl-names = "default";
100
101	pmic@32 {
102		compatible = "ricoh,rn5t618";
103		reg = <0x32>;
104		system-power-controller;
105
106		regulators {
107			vcck: DCDC1 {
108				regulator-name = "VCCK";
109				regulator-min-microvolt = <825000>;
110				regulator-max-microvolt = <1150000>;
111				regulator-boot-on;
112				regulator-always-on;
113			};
114
115			vddee: DCDC2 {
116				/* the output is also used as VDDAO */
117				regulator-name = "VDD_EE";
118				regulator-min-microvolt = <950000>;
119				regulator-max-microvolt = <1150000>;
120				regulator-boot-on;
121				regulator-always-on;
122			};
123
124			DCDC3 {
125				regulator-name = "VDD_DDR";
126				regulator-min-microvolt = <1500000>;
127				regulator-max-microvolt = <1500000>;
128				regulator-boot-on;
129				regulator-always-on;
130			};
131
132			LDO1 {
133				regulator-name = "VDDIO_AO28";
134				regulator-min-microvolt = <2900000>;
135				regulator-max-microvolt = <2900000>;
136				regulator-boot-on;
137				regulator-always-on;
138			};
139
140			vddio_ao1v8: LDO2 {
141				regulator-name = "VDDIO_AO18";
142				regulator-min-microvolt = <1800000>;
143				regulator-max-microvolt = <1800000>;
144				regulator-boot-on;
145				regulator-always-on;
146			};
147
148			LDO3 {
149				regulator-name = "VCC1V8";
150				regulator-min-microvolt = <1800000>;
151				regulator-max-microvolt = <1800000>;
152				regulator-boot-on;
153				regulator-always-on;
154			};
155
156			LDO4 {
157				regulator-name = "VCC2V8";
158				regulator-min-microvolt = <2850000>;
159				regulator-max-microvolt = <2850000>;
160				regulator-boot-on;
161				regulator-always-on;
162			};
163
164			LDO5 {
165				regulator-name = "AVDD1V8";
166				regulator-min-microvolt = <1800000>;
167				regulator-max-microvolt = <1800000>;
168				regulator-boot-on;
169				regulator-always-on;
170			};
171
172			LDORTC1 {
173				regulator-name = "VDD_LDO";
174				regulator-min-microvolt = <2700000>;
175				regulator-max-microvolt = <2700000>;
176				regulator-boot-on;
177				regulator-always-on;
178			};
179
180			LDORTC2 {
181				regulator-name = "RTC_0V9";
182				regulator-min-microvolt = <900000>;
183				regulator-max-microvolt = <900000>;
184				regulator-boot-on;
185				regulator-always-on;
186			};
187		};
188	};
189};
190
191&mali {
192	mali-supply = <&vddee>;
193};
194
195&saradc {
196	status = "okay";
197	vref-supply = <&vddio_ao1v8>;
198};
199
200&sdio {
201	status = "okay";
202
203	pinctrl-0 = <&sd_b_pins>;
204	pinctrl-names = "default";
205
206	/* SD card */
207	sd_card_slot: slot@1 {
208		compatible = "mmc-slot";
209		reg = <1>;
210		status = "okay";
211
212		bus-width = <4>;
213		no-sdio;
214		cap-mmc-highspeed;
215		cap-sd-highspeed;
216		disable-wp;
217
218		cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
219
220		vmmc-supply = <&vcc_3v3>;
221	};
222};
223
224/* connected to the Bluetooth module */
225&uart_A {
226	status = "okay";
227	pinctrl-0 = <&uart_a1_pins>, <&uart_a1_cts_rts_pins>;
228	pinctrl-names = "default";
229	uart-has-rtscts;
230};
231
232&uart_AO {
233	status = "okay";
234	pinctrl-0 = <&uart_ao_a_pins>;
235	pinctrl-names = "default";
236};
237
238&usb0 {
239	status = "okay";
240};
241
242&usb1 {
243	status = "okay";
244};
245
246&usb0_phy {
247	status = "okay";
248};
249
250&usb1_phy {
251	status = "okay";
252};
253