File Index
Files and directories
Sign in
FILE

meson-sm1-odroid.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi DEVICETREE
  1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2/*
  3 * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
  4 */
  5
  6#include "meson-sm1.dtsi"
  7#include <dt-bindings/gpio/meson-g12a-gpio.h>
  8#include <dt-bindings/leds/common.h>
  9#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
 10
 11/ {
 12	aliases {
 13		serial0 = &uart_AO;
 14		ethernet0 = &ethmac;
 15	};
 16
 17	chosen {
 18		stdout-path = "serial0:115200n8";
 19	};
 20
 21	memory@0 {
 22		device_type = "memory";
 23		reg = <0x0 0x0 0x0 0x40000000>;
 24	};
 25
 26	emmc_pwrseq: emmc-pwrseq {
 27		compatible = "mmc-pwrseq-emmc";
 28		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 29	};
 30
 31	tflash_vdd: regulator-tflash-vdd {
 32		compatible = "regulator-fixed";
 33
 34		regulator-name = "TFLASH_VDD";
 35		regulator-min-microvolt = <3300000>;
 36		regulator-max-microvolt = <3300000>;
 37
 38		gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
 39		enable-active-high;
 40		regulator-boot-on;
 41		regulator-always-on;
 42	};
 43
 44	tf_io: gpio-regulator-tf-io {
 45		compatible = "regulator-gpio";
 46
 47		regulator-name = "TF_IO";
 48		regulator-min-microvolt = <1800000>;
 49		regulator-max-microvolt = <3300000>;
 50		vin-supply = <&vcc_5v>;
 51
 52		enable-gpios = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
 53		enable-active-high;
 54		regulator-boot-on;
 55		regulator-always-on;
 56
 57		gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_SOURCE>;
 58		gpios-states = <0>;
 59
 60		states = <3300000 0>,
 61			 <1800000 1>;
 62	};
 63
 64	flash_1v8: regulator-flash-1v8 {
 65		compatible = "regulator-fixed";
 66		regulator-name = "FLASH_1V8";
 67		regulator-min-microvolt = <1800000>;
 68		regulator-max-microvolt = <1800000>;
 69		vin-supply = <&vcc_3v3>;
 70		regulator-always-on;
 71	};
 72
 73	main_12v: regulator-main-12v {
 74		compatible = "regulator-fixed";
 75		regulator-name = "12V";
 76		regulator-min-microvolt = <12000000>;
 77		regulator-max-microvolt = <12000000>;
 78		regulator-always-on;
 79	};
 80
 81	vcc_5v: regulator-vcc-5v {
 82		compatible = "regulator-fixed";
 83		regulator-name = "5V";
 84		regulator-min-microvolt = <5000000>;
 85		regulator-max-microvolt = <5000000>;
 86		regulator-boot-on;
 87		regulator-always-on;
 88		vin-supply = <&main_12v>;
 89		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
 90		enable-active-high;
 91	};
 92
 93	vcc_1v8: regulator-vcc-1v8 {
 94		compatible = "regulator-fixed";
 95		regulator-name = "VCC_1V8";
 96		regulator-min-microvolt = <1800000>;
 97		regulator-max-microvolt = <1800000>;
 98		vin-supply = <&vcc_3v3>;
 99		regulator-always-on;
100	};
101
102	vcc_3v3: regulator-vcc-3v3 {
103		compatible = "regulator-fixed";
104		regulator-name = "VCC_3V3";
105		regulator-min-microvolt = <3300000>;
106		regulator-max-microvolt = <3300000>;
107		vin-supply = <&vddao_3v3>;
108		regulator-always-on;
109		/* FIXME: actually controlled by VDDCPU_B_EN */
110	};
111
112	vddcpu: regulator-vddcpu {
113		/*
114		 * MP8756GD Regulator.
115		 */
116		compatible = "pwm-regulator";
117
118		regulator-name = "VDDCPU";
119		regulator-min-microvolt = <721000>;
120		regulator-max-microvolt = <1022000>;
121
122		pwm-supply = <&main_12v>;
123
124		pwms = <&pwm_AO_cd 1 1250 0>;
125		pwm-dutycycle-range = <100 0>;
126
127		regulator-boot-on;
128		regulator-always-on;
129	};
130
131	usb_pwr_en: regulator-usb-pwr-en {
132		compatible = "regulator-fixed";
133		regulator-name = "USB_PWR_EN";
134		regulator-min-microvolt = <5000000>;
135		regulator-max-microvolt = <5000000>;
136		vin-supply = <&vcc_5v>;
137
138		/* Connected to the microUSB port power enable */
139		gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
140		enable-active-high;
141	};
142
143	vddao_1v8: regulator-vddao-1v8 {
144		compatible = "regulator-fixed";
145		regulator-name = "VDDAO_1V8";
146		regulator-min-microvolt = <1800000>;
147		regulator-max-microvolt = <1800000>;
148		vin-supply = <&vddao_3v3>;
149		regulator-always-on;
150	};
151
152	vddao_3v3: regulator-vddao-3v3 {
153		compatible = "regulator-fixed";
154		regulator-name = "VDDAO_3V3";
155		regulator-min-microvolt = <3300000>;
156		regulator-max-microvolt = <3300000>;
157		vin-supply = <&main_12v>;
158		regulator-always-on;
159	};
160
161	hdmi-connector {
162		compatible = "hdmi-connector";
163		type = "a";
164
165		port {
166			hdmi_connector_in: endpoint {
167				remote-endpoint = <&hdmi_tx_tmds_out>;
168			};
169		};
170	};
171
172	sound {
173		compatible = "amlogic,axg-sound-card";
174		audio-aux-devs = <&tdmout_b>;
175		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
176				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
177				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
178				"TDM_B Playback", "TDMOUT_B OUT";
179
180		clocks = <&clkc CLKID_MPLL2>,
181			 <&clkc CLKID_MPLL0>,
182			 <&clkc CLKID_MPLL1>;
183
184		assigned-clocks = <&clkc CLKID_MPLL2>,
185				  <&clkc CLKID_MPLL0>,
186				  <&clkc CLKID_MPLL1>;
187		assigned-clock-parents = <0>, <0>, <0>;
188		assigned-clock-rates = <294912000>,
189				       <270950400>,
190				       <393216000>;
191
192		dai-link-0 {
193			sound-dai = <&frddr_a>;
194		};
195
196		dai-link-1 {
197			sound-dai = <&frddr_b>;
198		};
199
200		dai-link-2 {
201			sound-dai = <&frddr_c>;
202		};
203
204		/* 8ch hdmi interface */
205		dai-link-3 {
206			sound-dai = <&tdmif_b>;
207			dai-format = "i2s";
208			dai-tdm-slot-tx-mask-0 = <1 1>;
209			dai-tdm-slot-tx-mask-1 = <1 1>;
210			dai-tdm-slot-tx-mask-2 = <1 1>;
211			dai-tdm-slot-tx-mask-3 = <1 1>;
212			mclk-fs = <256>;
213
214			codec {
215				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
216			};
217		};
218
219		/* hdmi glue */
220		dai-link-4 {
221			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
222
223			codec {
224				sound-dai = <&hdmi_tx>;
225			};
226		};
227	};
228};
229
230&arb {
231	status = "okay";
232};
233
234&cec_AO {
235	pinctrl-0 = <&cec_ao_a_h_pins>;
236	pinctrl-names = "default";
237	status = "disabled";
238	hdmi-phandle = <&hdmi_tx>;
239};
240
241&cecb_AO {
242	pinctrl-0 = <&cec_ao_b_h_pins>;
243	pinctrl-names = "default";
244	status = "okay";
245	hdmi-phandle = <&hdmi_tx>;
246};
247
248&clkc_audio {
249	status = "okay";
250};
251
252&cpu0 {
253	cpu-supply = <&vddcpu>;
254	operating-points-v2 = <&cpu_opp_table>;
255	clocks = <&clkc CLKID_CPU_CLK>;
256};
257
258&cpu1 {
259	cpu-supply = <&vddcpu>;
260	operating-points-v2 = <&cpu_opp_table>;
261	clocks = <&clkc CLKID_CPU1_CLK>;
262};
263
264&cpu2 {
265	cpu-supply = <&vddcpu>;
266	operating-points-v2 = <&cpu_opp_table>;
267	clocks = <&clkc CLKID_CPU2_CLK>;
268};
269
270&cpu3 {
271	cpu-supply = <&vddcpu>;
272	operating-points-v2 = <&cpu_opp_table>;
273	clocks = <&clkc CLKID_CPU3_CLK>;
274};
275
276&ext_mdio {
277	external_phy: ethernet-phy@0 {
278		/* Realtek RTL8211F (0x001cc916) */
279		reg = <0>;
280		max-speed = <1000>;
281
282		reset-assert-us = <10000>;
283		reset-deassert-us = <80000>;
284		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
285
286		interrupt-parent = <&gpio_intc>;
287		/* MAC_INTR on GPIOZ_14 */
288		interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>;
289	};
290};
291
292&ethmac {
293	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
294	pinctrl-names = "default";
295	status = "okay";
296	phy-mode = "rgmii";
297	phy-handle = <&external_phy>;
298	amlogic,tx-delay-ns = <2>;
299};
300
301&frddr_a {
302	status = "okay";
303};
304
305&frddr_b {
306	status = "okay";
307};
308
309&frddr_c {
310	status = "okay";
311};
312
313&gpio {
314	gpio-line-names =
315		/* GPIOZ */
316		"", "", "", "", "", "", "", "",
317		"", "", "", "", "", "", "", "",
318		/* GPIOH */
319		"", "", "", "", "",
320		"PIN_36", /* GPIOH_5 */
321		"PIN_26", /* GPIOH_6 */
322		"PIN_32", /* GPIOH_7 */
323		"",
324		/* BOOT */
325		"", "", "", "", "", "", "", "",
326		"", "", "", "", "", "", "", "",
327		/* GPIOC */
328		"", "", "", "", "", "", "", "",
329		/* GPIOA */
330		"", "", "", "", "", "", "", "",
331		"", "", "", "", "", "",
332		"PIN_27", /* GPIOA_14 */
333		"PIN_28", /* GPIOA_15 */
334		/* GPIOX */
335		"PIN_16", /* GPIOX_0 */
336		"PIN_18", /* GPIOX_1 */
337		"PIN_22", /* GPIOX_2 */
338		"PIN_11", /* GPIOX_3 */
339		"PIN_13", /* GPIOX_4 */
340		"PIN_7",  /* GPIOX_5 */
341		"PIN_33", /* GPIOX_6 */
342		"PIN_15", /* GPIOX_7 */
343		"PIN_19", /* GPIOX_8 */
344		"PIN_21", /* GPIOX_9 */
345		"PIN_24", /* GPIOX_10 */
346		"PIN_23", /* GPIOX_11 */
347		"PIN_8",  /* GPIOX_12 */
348		"PIN_10", /* GPIOX_13 */
349		"PIN_29", /* GPIOX_14 */
350		"PIN_31", /* GPIOX_15 */
351		"PIN_12", /* GPIOX_16 */
352		"PIN_3",  /* GPIOX_17 */
353		"PIN_5",  /* GPIOX_18 */
354		"PIN_35"; /* GPIOX_19 */
355};
356
357&gpio_ao {
358	gpio-line-names =
359		/* GPIOAO */
360		"", "", "", "",
361		"PIN_47", /* GPIOAO_4 */
362		"", "",
363		"PIN_45", /* GPIOAO_7 */
364		"PIN_46", /* GPIOAO_8 */
365		"PIN_44", /* GPIOAO_9 */
366		"PIN_42", /* GPIOAO_10 */
367		"",
368		/* GPIOE */
369		"", "", "";
370};
371
372&hdmi_tx {
373	status = "okay";
374	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
375	pinctrl-names = "default";
376	hdmi-supply = <&vcc_5v>;
377};
378
379&hdmi_tx_tmds_port {
380	hdmi_tx_tmds_out: endpoint {
381		remote-endpoint = <&hdmi_connector_in>;
382	};
383};
384
385&ir {
386	status = "okay";
387	pinctrl-0 = <&remote_input_ao_pins>;
388	pinctrl-names = "default";
389};
390
391&pwm_AO_cd {
392	pinctrl-0 = <&pwm_ao_d_e_pins>;
393	pinctrl-names = "default";
394	status = "okay";
395};
396
397&saradc {
398	status = "okay";
399};
400
401/* SD card */
402&sd_emmc_b {
403	status = "okay";
404	pinctrl-0 = <&sdcard_c_pins>;
405	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
406	pinctrl-names = "default", "clk-gate";
407
408	bus-width = <4>;
409	cap-sd-highspeed;
410	max-frequency = <200000000>;
411	sd-uhs-sdr12;
412	sd-uhs-sdr25;
413	sd-uhs-sdr50;
414	sd-uhs-sdr104;
415	disable-wp;
416
417	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
418	vmmc-supply = <&tflash_vdd>;
419	vqmmc-supply = <&tf_io>;
420};
421
422/* eMMC */
423&sd_emmc_c {
424	status = "okay";
425	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
426	pinctrl-1 = <&emmc_clk_gate_pins>;
427	pinctrl-names = "default", "clk-gate";
428
429	bus-width = <8>;
430	cap-mmc-highspeed;
431	mmc-ddr-1_8v;
432	mmc-hs200-1_8v;
433	max-frequency = <200000000>;
434	disable-wp;
435
436	mmc-pwrseq = <&emmc_pwrseq>;
437	vmmc-supply = <&vcc_3v3>;
438	vqmmc-supply = <&flash_1v8>;
439};
440
441&tdmif_b {
442	status = "okay";
443};
444
445&tdmout_b {
446	status = "okay";
447};
448
449&tohdmitx {
450	status = "okay";
451};
452
453&uart_AO {
454	status = "okay";
455	pinctrl-0 = <&uart_ao_a_pins>;
456	pinctrl-names = "default";
457};
458
459&usb {
460	status = "okay";
461	vbus-supply = <&usb_pwr_en>;
462};
463
464&usb2_phy0 {
465	phy-supply = <&vcc_5v>;
466};
467
~/ Read-only file preview.