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	vcc_3v3: regulator-vcc3v3 {
49		compatible = "regulator-fixed";
50		regulator-name = "VCC3V3";
51		regulator-min-microvolt = <3300000>;
52		regulator-max-microvolt = <3300000>;
53	};
54};
55
56&cpu0 {
57	cpu-supply = <&vcck>;
58};
59
60&ethmac {
61	status = "okay";
62
63	pinctrl-0 = <&eth_rgmii_pins>;
64	pinctrl-names = "default";
65
66	phy-handle = <&eth_phy0>;
67	phy-mode = "rgmii-id";
68
69	mdio {
70		compatible = "snps,dwmac-mdio";
71		#address-cells = <1>;
72		#size-cells = <0>;
73
74		eth_phy0: ethernet-phy@0 {
75			/* Realtek RTL8211F (0x001cc916) */
76			reg = <0>;
77
78			reset-assert-us = <10000>;
79			reset-deassert-us = <80000>;
80			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
81		};
82	};
83};
84
85&ir_receiver {
86	status = "okay";
87	pinctrl-0 = <&ir_recv_pins>;
88	pinctrl-names = "default";
89};
90
91&i2c_AO {
92	status = "okay";
93	pinctrl-0 = <&i2c_ao_pins>;
94	pinctrl-names = "default";
95
96	pmic@32 {
97		compatible = "ricoh,rn5t618";
98		reg = <0x32>;
99		system-power-controller;
100
101		regulators {
102			vcck: DCDC1 {
103				regulator-name = "VCCK";
104				regulator-min-microvolt = <825000>;
105				regulator-max-microvolt = <1150000>;
106				regulator-boot-on;
107				regulator-always-on;
108			};
109
110			vddee: DCDC2 {
111				/* the output is also used as VDDAO */
112				regulator-name = "VDD_EE";
113				regulator-min-microvolt = <950000>;
114				regulator-max-microvolt = <1150000>;
115				regulator-boot-on;
116				regulator-always-on;
117			};
118
119			DCDC3 {
120				regulator-name = "VDD_DDR";
121				regulator-min-microvolt = <1500000>;
122				regulator-max-microvolt = <1500000>;
123				regulator-boot-on;
124				regulator-always-on;
125			};
126
127			LDO1 {
128				regulator-name = "VDDIO_AO28";
129				regulator-min-microvolt = <2900000>;
130				regulator-max-microvolt = <2900000>;
131				regulator-boot-on;
132				regulator-always-on;
133			};
134
135			vddio_ao1v8: LDO2 {
136				regulator-name = "VDDIO_AO18";
137				regulator-min-microvolt = <1800000>;
138				regulator-max-microvolt = <1800000>;
139				regulator-boot-on;
140				regulator-always-on;
141			};
142
143			LDO3 {
144				regulator-name = "VCC1V8";
145				regulator-min-microvolt = <1800000>;
146				regulator-max-microvolt = <1800000>;
147				regulator-boot-on;
148				regulator-always-on;
149			};
150
151			LDO4 {
152				regulator-name = "VCC2V8";
153				regulator-min-microvolt = <2850000>;
154				regulator-max-microvolt = <2850000>;
155				regulator-boot-on;
156				regulator-always-on;
157			};
158
159			LDO5 {
160				regulator-name = "AVDD1V8";
161				regulator-min-microvolt = <1800000>;
162				regulator-max-microvolt = <1800000>;
163				regulator-boot-on;
164				regulator-always-on;
165			};
166
167			LDORTC1 {
168				regulator-name = "VDD_LDO";
169				regulator-min-microvolt = <2700000>;
170				regulator-max-microvolt = <2700000>;
171				regulator-boot-on;
172				regulator-always-on;
173			};
174
175			LDORTC2 {
176				regulator-name = "RTC_0V9";
177				regulator-min-microvolt = <900000>;
178				regulator-max-microvolt = <900000>;
179				regulator-boot-on;
180				regulator-always-on;
181			};
182		};
183	};
184};
185
186&mali {
187	mali-supply = <&vddee>;
188};
189
190&saradc {
191	status = "okay";
192	vref-supply = <&vddio_ao1v8>;
193};
194
195&sdio {
196	status = "okay";
197
198	pinctrl-0 = <&sd_b_pins>;
199	pinctrl-names = "default";
200
201	/* SD card */
202	sd_card_slot: slot@1 {
203		compatible = "mmc-slot";
204		reg = <1>;
205		status = "okay";
206
207		bus-width = <4>;
208		no-sdio;
209		cap-mmc-highspeed;
210		cap-sd-highspeed;
211		disable-wp;
212
213		cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
214
215		vmmc-supply = <&vcc_3v3>;
216	};
217};
218
219/* connected to the Bluetooth module */
220&uart_A {
221	status = "okay";
222	pinctrl-0 = <&uart_a1_pins>, <&uart_a1_cts_rts_pins>;
223	pinctrl-names = "default";
224	uart-has-rtscts;
225};
226
227&uart_AO {
228	status = "okay";
229	pinctrl-0 = <&uart_ao_a_pins>;
230	pinctrl-names = "default";
231};
232
233&usb0 {
234	status = "okay";
235};
236
237&usb1 {
238	status = "okay";
239};
240
241&usb0_phy {
242	status = "okay";
243};
244
245&usb1_phy {
246	status = "okay";
247};
248