xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-g12a-fbx8am.dts (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
101950c46SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
201950c46SEmmanuel Vadot// Copyright (c) 2024 Freebox SAS
301950c46SEmmanuel Vadot
401950c46SEmmanuel Vadot/*
501950c46SEmmanuel Vadot * SEI codename: SEI530FB (based on SEI510)
601950c46SEmmanuel Vadot * Freebox codename: fbx8am
701950c46SEmmanuel Vadot * Commercial names: Freebox Pop, Player TV Free 4K
801950c46SEmmanuel Vadot */
901950c46SEmmanuel Vadot
1001950c46SEmmanuel Vadot/dts-v1/;
1101950c46SEmmanuel Vadot
1201950c46SEmmanuel Vadot#include "meson-g12a.dtsi"
1301950c46SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
1401950c46SEmmanuel Vadot#include <dt-bindings/input/input.h>
1501950c46SEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h>
1601950c46SEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
1701950c46SEmmanuel Vadot
1801950c46SEmmanuel Vadot/ {
1901950c46SEmmanuel Vadot	compatible = "freebox,fbx8am", "amlogic,g12a";
2001950c46SEmmanuel Vadot	model = "Freebox Player Pop";
2101950c46SEmmanuel Vadot	chassis-type = "embedded";
2201950c46SEmmanuel Vadot
2301950c46SEmmanuel Vadot	firmware {
2401950c46SEmmanuel Vadot		optee {
2501950c46SEmmanuel Vadot			compatible = "linaro,optee-tz";
2601950c46SEmmanuel Vadot			method = "smc";
2701950c46SEmmanuel Vadot		};
2801950c46SEmmanuel Vadot	};
2901950c46SEmmanuel Vadot
3001950c46SEmmanuel Vadot	gpio-keys-polled {
3101950c46SEmmanuel Vadot		compatible = "gpio-keys-polled";
3201950c46SEmmanuel Vadot		poll-interval = <100>;
3301950c46SEmmanuel Vadot
3401950c46SEmmanuel Vadot		/* Physical user-accessible reset button near USB port */
3501950c46SEmmanuel Vadot		power-button {
3601950c46SEmmanuel Vadot			label = "Reset";
3701950c46SEmmanuel Vadot			linux,code = <BTN_MISC>;
3801950c46SEmmanuel Vadot			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
3901950c46SEmmanuel Vadot		};
4001950c46SEmmanuel Vadot	};
4101950c46SEmmanuel Vadot
4201950c46SEmmanuel Vadot	spdif_dit: audio-codec-2 {
4301950c46SEmmanuel Vadot		#sound-dai-cells = <0>;
4401950c46SEmmanuel Vadot		compatible = "linux,spdif-dit";
4501950c46SEmmanuel Vadot		status = "okay";
4601950c46SEmmanuel Vadot		sound-name-prefix = "DIT";
4701950c46SEmmanuel Vadot	};
4801950c46SEmmanuel Vadot
4901950c46SEmmanuel Vadot	aliases {
5001950c46SEmmanuel Vadot		serial0 = &uart_AO;
5101950c46SEmmanuel Vadot		ethernet0 = &ethmac;
5201950c46SEmmanuel Vadot	};
5301950c46SEmmanuel Vadot
5401950c46SEmmanuel Vadot	chosen {
5501950c46SEmmanuel Vadot		stdout-path = "serial0:115200n8";
5601950c46SEmmanuel Vadot	};
5701950c46SEmmanuel Vadot
5801950c46SEmmanuel Vadot	emmc_pwrseq: emmc-pwrseq {
5901950c46SEmmanuel Vadot		compatible = "mmc-pwrseq-emmc";
6001950c46SEmmanuel Vadot		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
6101950c46SEmmanuel Vadot	};
6201950c46SEmmanuel Vadot
6301950c46SEmmanuel Vadot	hdmi-connector {
6401950c46SEmmanuel Vadot		compatible = "hdmi-connector";
6501950c46SEmmanuel Vadot		type = "a";
6601950c46SEmmanuel Vadot
6701950c46SEmmanuel Vadot		port {
6801950c46SEmmanuel Vadot			hdmi_connector_in: endpoint {
6901950c46SEmmanuel Vadot				remote-endpoint = <&hdmi_tx_tmds_out>;
7001950c46SEmmanuel Vadot			};
7101950c46SEmmanuel Vadot		};
7201950c46SEmmanuel Vadot	};
7301950c46SEmmanuel Vadot
7401950c46SEmmanuel Vadot	memory@0 {
7501950c46SEmmanuel Vadot		device_type = "memory";
7601950c46SEmmanuel Vadot		reg = <0x0 0x0 0x0 0x80000000>;
7701950c46SEmmanuel Vadot	};
7801950c46SEmmanuel Vadot
7901950c46SEmmanuel Vadot	ao_5v: regulator-ao-5v {
8001950c46SEmmanuel Vadot		compatible = "regulator-fixed";
8101950c46SEmmanuel Vadot		regulator-name = "AO_5V";
8201950c46SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
8301950c46SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
8401950c46SEmmanuel Vadot		vin-supply = <&dc_in>;
8501950c46SEmmanuel Vadot		regulator-always-on;
8601950c46SEmmanuel Vadot	};
8701950c46SEmmanuel Vadot
8801950c46SEmmanuel Vadot	dc_in: regulator-dc-in {
8901950c46SEmmanuel Vadot		compatible = "regulator-fixed";
9001950c46SEmmanuel Vadot		regulator-name = "DC_IN";
9101950c46SEmmanuel Vadot		regulator-min-microvolt = <12000000>;
9201950c46SEmmanuel Vadot		regulator-max-microvolt = <12000000>;
9301950c46SEmmanuel Vadot		regulator-always-on;
9401950c46SEmmanuel Vadot	};
9501950c46SEmmanuel Vadot
9601950c46SEmmanuel Vadot	emmc_1v8: regulator-emmc-1v8 {
9701950c46SEmmanuel Vadot		compatible = "regulator-fixed";
9801950c46SEmmanuel Vadot		regulator-name = "EMMC_1V8";
9901950c46SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
10001950c46SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
10101950c46SEmmanuel Vadot		vin-supply = <&vddao_3v3>;
10201950c46SEmmanuel Vadot		regulator-always-on;
10301950c46SEmmanuel Vadot	};
10401950c46SEmmanuel Vadot
10501950c46SEmmanuel Vadot	vddao_3v3: regulator-vddao-3v3 {
10601950c46SEmmanuel Vadot		compatible = "regulator-fixed";
10701950c46SEmmanuel Vadot		regulator-name = "VDDAO_3V3";
10801950c46SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
10901950c46SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
11001950c46SEmmanuel Vadot		vin-supply = <&ao_5v>;
11101950c46SEmmanuel Vadot		regulator-always-on;
11201950c46SEmmanuel Vadot	};
11301950c46SEmmanuel Vadot
11401950c46SEmmanuel Vadot	vddao_3v3_t: regulator-vddao-3v3-t {
11501950c46SEmmanuel Vadot		compatible = "regulator-fixed";
11601950c46SEmmanuel Vadot		regulator-name = "VDDAO_3V3_T";
11701950c46SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
11801950c46SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
11901950c46SEmmanuel Vadot		vin-supply = <&vddao_3v3>;
12001950c46SEmmanuel Vadot		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
12101950c46SEmmanuel Vadot		enable-active-high;
12201950c46SEmmanuel Vadot	};
12301950c46SEmmanuel Vadot
12401950c46SEmmanuel Vadot	vddcpu: regulator-vddcpu {
12501950c46SEmmanuel Vadot		/*
12601950c46SEmmanuel Vadot		 * SY8120B1ABC DC/DC Regulator.
12701950c46SEmmanuel Vadot		 */
12801950c46SEmmanuel Vadot		compatible = "pwm-regulator";
12901950c46SEmmanuel Vadot
13001950c46SEmmanuel Vadot		regulator-name = "VDDCPU";
13101950c46SEmmanuel Vadot		regulator-min-microvolt = <721000>;
13201950c46SEmmanuel Vadot		regulator-max-microvolt = <1022000>;
13301950c46SEmmanuel Vadot
13401950c46SEmmanuel Vadot		pwm-supply = <&ao_5v>;
13501950c46SEmmanuel Vadot
13601950c46SEmmanuel Vadot		pwms = <&pwm_AO_cd 1 1250 0>;
13701950c46SEmmanuel Vadot		pwm-dutycycle-range = <100 0>;
13801950c46SEmmanuel Vadot
13901950c46SEmmanuel Vadot		regulator-boot-on;
14001950c46SEmmanuel Vadot		regulator-always-on;
14101950c46SEmmanuel Vadot	};
14201950c46SEmmanuel Vadot
14301950c46SEmmanuel Vadot	vddio_ao1v8: regulator-vddio-ao1v8 {
14401950c46SEmmanuel Vadot		compatible = "regulator-fixed";
14501950c46SEmmanuel Vadot		regulator-name = "VDDIO_AO1V8";
14601950c46SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
14701950c46SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
14801950c46SEmmanuel Vadot		vin-supply = <&vddao_3v3>;
14901950c46SEmmanuel Vadot		regulator-always-on;
15001950c46SEmmanuel Vadot	};
15101950c46SEmmanuel Vadot
15201950c46SEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
15301950c46SEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
15401950c46SEmmanuel Vadot		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
15501950c46SEmmanuel Vadot		post-power-on-delay-ms = <10>; /* required for 43752 */
15601950c46SEmmanuel Vadot		clocks = <&wifi32k>;
15701950c46SEmmanuel Vadot		clock-names = "ext_clock";
15801950c46SEmmanuel Vadot	};
15901950c46SEmmanuel Vadot
16001950c46SEmmanuel Vadot	wifi32k: wifi32k {
16101950c46SEmmanuel Vadot		compatible = "pwm-clock";
16201950c46SEmmanuel Vadot		#clock-cells = <0>;
16301950c46SEmmanuel Vadot		clock-frequency = <32768>;
16401950c46SEmmanuel Vadot		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
16501950c46SEmmanuel Vadot	};
16601950c46SEmmanuel Vadot
16701950c46SEmmanuel Vadot	sound {
16801950c46SEmmanuel Vadot		compatible = "amlogic,axg-sound-card";
16901950c46SEmmanuel Vadot		model = "fbx8am";
17001950c46SEmmanuel Vadot		audio-aux-devs = <&tdmout_b>;
17101950c46SEmmanuel Vadot		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
17201950c46SEmmanuel Vadot				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
17301950c46SEmmanuel Vadot				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
17401950c46SEmmanuel Vadot				"TDM_B Playback", "TDMOUT_B OUT",
17501950c46SEmmanuel Vadot				"SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
17601950c46SEmmanuel Vadot				"SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
17701950c46SEmmanuel Vadot				"SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
17801950c46SEmmanuel Vadot
179*b2d2a78aSEmmanuel Vadot		clocks = <&clkc CLKID_MPLL2>,
180*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL0>,
181*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL1>;
182*b2d2a78aSEmmanuel Vadot
18301950c46SEmmanuel Vadot		assigned-clocks = <&clkc CLKID_MPLL2>,
18401950c46SEmmanuel Vadot				  <&clkc CLKID_MPLL0>,
18501950c46SEmmanuel Vadot				  <&clkc CLKID_MPLL1>;
18601950c46SEmmanuel Vadot		assigned-clock-parents = <0>, <0>, <0>;
18701950c46SEmmanuel Vadot		assigned-clock-rates = <294912000>,
18801950c46SEmmanuel Vadot				       <270950400>,
18901950c46SEmmanuel Vadot				       <393216000>;
19001950c46SEmmanuel Vadot
19101950c46SEmmanuel Vadot		dai-link-0 {
19201950c46SEmmanuel Vadot			sound-dai = <&frddr_a>;
19301950c46SEmmanuel Vadot		};
19401950c46SEmmanuel Vadot
19501950c46SEmmanuel Vadot		dai-link-1 {
19601950c46SEmmanuel Vadot			sound-dai = <&frddr_b>;
19701950c46SEmmanuel Vadot		};
19801950c46SEmmanuel Vadot
19901950c46SEmmanuel Vadot		dai-link-2 {
20001950c46SEmmanuel Vadot			sound-dai = <&frddr_c>;
20101950c46SEmmanuel Vadot		};
20201950c46SEmmanuel Vadot
20301950c46SEmmanuel Vadot		/* 8ch hdmi interface */
20401950c46SEmmanuel Vadot		dai-link-3 {
20501950c46SEmmanuel Vadot			sound-dai = <&tdmif_b>;
20601950c46SEmmanuel Vadot			dai-format = "i2s";
20701950c46SEmmanuel Vadot			dai-tdm-slot-tx-mask-0 = <1 1>;
20801950c46SEmmanuel Vadot			dai-tdm-slot-tx-mask-1 = <1 1>;
20901950c46SEmmanuel Vadot			dai-tdm-slot-tx-mask-2 = <1 1>;
21001950c46SEmmanuel Vadot			dai-tdm-slot-tx-mask-3 = <1 1>;
21101950c46SEmmanuel Vadot			mclk-fs = <256>;
21201950c46SEmmanuel Vadot
21301950c46SEmmanuel Vadot			codec {
21401950c46SEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
21501950c46SEmmanuel Vadot			};
21601950c46SEmmanuel Vadot		};
21701950c46SEmmanuel Vadot
21801950c46SEmmanuel Vadot		/* spdif hdmi or toslink interface */
21901950c46SEmmanuel Vadot		dai-link-4 {
22001950c46SEmmanuel Vadot			sound-dai = <&spdifout_a>;
22101950c46SEmmanuel Vadot
22201950c46SEmmanuel Vadot			codec-0 {
22301950c46SEmmanuel Vadot			sound-dai = <&spdif_dit>;
22401950c46SEmmanuel Vadot			};
22501950c46SEmmanuel Vadot
22601950c46SEmmanuel Vadot			codec-1 {
22701950c46SEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
22801950c46SEmmanuel Vadot			};
22901950c46SEmmanuel Vadot		};
23001950c46SEmmanuel Vadot
23101950c46SEmmanuel Vadot		/* spdif hdmi interface */
23201950c46SEmmanuel Vadot		dai-link-5 {
23301950c46SEmmanuel Vadot			sound-dai = <&spdifout_b>;
23401950c46SEmmanuel Vadot
23501950c46SEmmanuel Vadot			codec {
23601950c46SEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
23701950c46SEmmanuel Vadot			};
23801950c46SEmmanuel Vadot		};
23901950c46SEmmanuel Vadot
24001950c46SEmmanuel Vadot		/* hdmi glue */
24101950c46SEmmanuel Vadot		dai-link-6 {
24201950c46SEmmanuel Vadot			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
24301950c46SEmmanuel Vadot
24401950c46SEmmanuel Vadot			codec {
24501950c46SEmmanuel Vadot				sound-dai = <&hdmi_tx>;
24601950c46SEmmanuel Vadot			};
24701950c46SEmmanuel Vadot		};
24801950c46SEmmanuel Vadot	};
24901950c46SEmmanuel Vadot};
25001950c46SEmmanuel Vadot
25101950c46SEmmanuel Vadot&arb {
25201950c46SEmmanuel Vadot	status = "okay";
25301950c46SEmmanuel Vadot};
25401950c46SEmmanuel Vadot
25501950c46SEmmanuel Vadot&cecb_AO {
25601950c46SEmmanuel Vadot	pinctrl-0 = <&cec_ao_b_h_pins>;
25701950c46SEmmanuel Vadot	pinctrl-names = "default";
25801950c46SEmmanuel Vadot	status = "okay";
25901950c46SEmmanuel Vadot	hdmi-phandle = <&hdmi_tx>;
26001950c46SEmmanuel Vadot};
26101950c46SEmmanuel Vadot
26201950c46SEmmanuel Vadot&clkc_audio {
26301950c46SEmmanuel Vadot	status = "okay";
26401950c46SEmmanuel Vadot};
26501950c46SEmmanuel Vadot
26601950c46SEmmanuel Vadot&cpu0 {
26701950c46SEmmanuel Vadot	cpu-supply = <&vddcpu>;
26801950c46SEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
26901950c46SEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
27001950c46SEmmanuel Vadot	clock-latency = <50000>;
27101950c46SEmmanuel Vadot};
27201950c46SEmmanuel Vadot
27301950c46SEmmanuel Vadot&cpu1 {
27401950c46SEmmanuel Vadot	cpu-supply = <&vddcpu>;
27501950c46SEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
27601950c46SEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
27701950c46SEmmanuel Vadot	clock-latency = <50000>;
27801950c46SEmmanuel Vadot};
27901950c46SEmmanuel Vadot
28001950c46SEmmanuel Vadot&cpu2 {
28101950c46SEmmanuel Vadot	cpu-supply = <&vddcpu>;
28201950c46SEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
28301950c46SEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
28401950c46SEmmanuel Vadot	clock-latency = <50000>;
28501950c46SEmmanuel Vadot};
28601950c46SEmmanuel Vadot
28701950c46SEmmanuel Vadot&cpu3 {
28801950c46SEmmanuel Vadot	cpu-supply = <&vddcpu>;
28901950c46SEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
29001950c46SEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
29101950c46SEmmanuel Vadot	clock-latency = <50000>;
29201950c46SEmmanuel Vadot};
29301950c46SEmmanuel Vadot
29401950c46SEmmanuel Vadot&ethmac {
29501950c46SEmmanuel Vadot	status = "okay";
29601950c46SEmmanuel Vadot	phy-handle = <&internal_ephy>;
29701950c46SEmmanuel Vadot	phy-mode = "rmii";
29801950c46SEmmanuel Vadot};
29901950c46SEmmanuel Vadot
30001950c46SEmmanuel Vadot&frddr_a {
30101950c46SEmmanuel Vadot	status = "okay";
30201950c46SEmmanuel Vadot};
30301950c46SEmmanuel Vadot
30401950c46SEmmanuel Vadot&frddr_b {
30501950c46SEmmanuel Vadot	status = "okay";
30601950c46SEmmanuel Vadot};
30701950c46SEmmanuel Vadot
30801950c46SEmmanuel Vadot&frddr_c {
30901950c46SEmmanuel Vadot	status = "okay";
31001950c46SEmmanuel Vadot};
31101950c46SEmmanuel Vadot
31201950c46SEmmanuel Vadot&spdifout_a {
31301950c46SEmmanuel Vadot	pinctrl-0 = <&spdif_out_h_pins>;
31401950c46SEmmanuel Vadot	pinctrl-names = "default";
31501950c46SEmmanuel Vadot	status = "okay";
31601950c46SEmmanuel Vadot};
31701950c46SEmmanuel Vadot
31801950c46SEmmanuel Vadot&spdifout_b {
31901950c46SEmmanuel Vadot	status = "okay";
32001950c46SEmmanuel Vadot};
32101950c46SEmmanuel Vadot
32201950c46SEmmanuel Vadot&hdmi_tx {
32301950c46SEmmanuel Vadot	status = "okay";
32401950c46SEmmanuel Vadot	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
32501950c46SEmmanuel Vadot	pinctrl-names = "default";
32601950c46SEmmanuel Vadot};
32701950c46SEmmanuel Vadot
32801950c46SEmmanuel Vadot&hdmi_tx_tmds_port {
32901950c46SEmmanuel Vadot	hdmi_tx_tmds_out: endpoint {
33001950c46SEmmanuel Vadot		remote-endpoint = <&hdmi_connector_in>;
33101950c46SEmmanuel Vadot	};
33201950c46SEmmanuel Vadot};
33301950c46SEmmanuel Vadot
33401950c46SEmmanuel Vadot&i2c3 {
33501950c46SEmmanuel Vadot	status = "okay";
33601950c46SEmmanuel Vadot	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
33701950c46SEmmanuel Vadot	pinctrl-names = "default";
33801950c46SEmmanuel Vadot};
33901950c46SEmmanuel Vadot
34001950c46SEmmanuel Vadot&ir {
34101950c46SEmmanuel Vadot	status = "okay";
34201950c46SEmmanuel Vadot	pinctrl-0 = <&remote_input_ao_pins>;
34301950c46SEmmanuel Vadot	pinctrl-names = "default";
34401950c46SEmmanuel Vadot};
34501950c46SEmmanuel Vadot
34601950c46SEmmanuel Vadot&pwm_AO_cd {
34701950c46SEmmanuel Vadot	pinctrl-0 = <&pwm_ao_d_e_pins>;
34801950c46SEmmanuel Vadot	pinctrl-names = "default";
34901950c46SEmmanuel Vadot	clocks = <&xtal>;
35001950c46SEmmanuel Vadot	clock-names = "clkin1";
35101950c46SEmmanuel Vadot	status = "okay";
35201950c46SEmmanuel Vadot};
35301950c46SEmmanuel Vadot
35401950c46SEmmanuel Vadot&pwm_ef {
35501950c46SEmmanuel Vadot	status = "okay";
35601950c46SEmmanuel Vadot	pinctrl-0 = <&pwm_e_pins>;
35701950c46SEmmanuel Vadot	pinctrl-names = "default";
35801950c46SEmmanuel Vadot	clocks = <&xtal>;
35901950c46SEmmanuel Vadot	clock-names = "clkin0";
36001950c46SEmmanuel Vadot};
36101950c46SEmmanuel Vadot
36201950c46SEmmanuel Vadot&pdm {
36301950c46SEmmanuel Vadot	pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>,
36401950c46SEmmanuel Vadot		    <&pdm_din2_z_pins>, <&pdm_din3_z_pins>,
36501950c46SEmmanuel Vadot		    <&pdm_dclk_z_pins>;
36601950c46SEmmanuel Vadot	pinctrl-names = "default";
36701950c46SEmmanuel Vadot	status = "okay";
36801950c46SEmmanuel Vadot};
36901950c46SEmmanuel Vadot
37001950c46SEmmanuel Vadot&saradc {
37101950c46SEmmanuel Vadot	status = "okay";
37201950c46SEmmanuel Vadot	vref-supply = <&vddio_ao1v8>;
37301950c46SEmmanuel Vadot};
37401950c46SEmmanuel Vadot
37501950c46SEmmanuel Vadot/* SDIO */
37601950c46SEmmanuel Vadot&sd_emmc_a {
37701950c46SEmmanuel Vadot	status = "okay";
37801950c46SEmmanuel Vadot	pinctrl-0 = <&sdio_pins>;
37901950c46SEmmanuel Vadot	pinctrl-1 = <&sdio_clk_gate_pins>;
38001950c46SEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
38101950c46SEmmanuel Vadot	#address-cells = <1>;
38201950c46SEmmanuel Vadot	#size-cells = <0>;
38301950c46SEmmanuel Vadot
38401950c46SEmmanuel Vadot	bus-width = <4>;
38501950c46SEmmanuel Vadot	cap-sd-highspeed;
38601950c46SEmmanuel Vadot	sd-uhs-sdr50;
38701950c46SEmmanuel Vadot	max-frequency = <100000000>;
38801950c46SEmmanuel Vadot
38901950c46SEmmanuel Vadot	non-removable;
39001950c46SEmmanuel Vadot	disable-wp;
39101950c46SEmmanuel Vadot
39201950c46SEmmanuel Vadot	/* WiFi firmware requires power to be kept while in suspend */
39301950c46SEmmanuel Vadot	keep-power-in-suspend;
39401950c46SEmmanuel Vadot
39501950c46SEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
39601950c46SEmmanuel Vadot
39701950c46SEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
39801950c46SEmmanuel Vadot	vqmmc-supply = <&vddio_ao1v8>;
39901950c46SEmmanuel Vadot};
40001950c46SEmmanuel Vadot
40101950c46SEmmanuel Vadot/* SD card */
40201950c46SEmmanuel Vadot&sd_emmc_b {
40301950c46SEmmanuel Vadot	status = "okay";
40401950c46SEmmanuel Vadot	pinctrl-0 = <&sdcard_c_pins>;
40501950c46SEmmanuel Vadot	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
40601950c46SEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
40701950c46SEmmanuel Vadot
40801950c46SEmmanuel Vadot	bus-width = <4>;
40901950c46SEmmanuel Vadot	cap-sd-highspeed;
41001950c46SEmmanuel Vadot	max-frequency = <50000000>;
41101950c46SEmmanuel Vadot	disable-wp;
41201950c46SEmmanuel Vadot
41301950c46SEmmanuel Vadot	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
41401950c46SEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
41501950c46SEmmanuel Vadot	vqmmc-supply = <&vddao_3v3>;
41601950c46SEmmanuel Vadot};
41701950c46SEmmanuel Vadot
41801950c46SEmmanuel Vadot/* eMMC */
41901950c46SEmmanuel Vadot&sd_emmc_c {
42001950c46SEmmanuel Vadot	status = "okay";
42101950c46SEmmanuel Vadot	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
42201950c46SEmmanuel Vadot	pinctrl-1 = <&emmc_clk_gate_pins>;
42301950c46SEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
42401950c46SEmmanuel Vadot
42501950c46SEmmanuel Vadot	bus-width = <8>;
42601950c46SEmmanuel Vadot	cap-mmc-highspeed;
42701950c46SEmmanuel Vadot	mmc-ddr-1_8v;
42801950c46SEmmanuel Vadot	mmc-hs200-1_8v;
42901950c46SEmmanuel Vadot	max-frequency = <200000000>;
43001950c46SEmmanuel Vadot	non-removable;
43101950c46SEmmanuel Vadot	disable-wp;
43201950c46SEmmanuel Vadot
43301950c46SEmmanuel Vadot	mmc-pwrseq = <&emmc_pwrseq>;
43401950c46SEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
43501950c46SEmmanuel Vadot	vqmmc-supply = <&emmc_1v8>;
43601950c46SEmmanuel Vadot};
43701950c46SEmmanuel Vadot
43801950c46SEmmanuel Vadot&tdmif_b {
43901950c46SEmmanuel Vadot	status = "okay";
44001950c46SEmmanuel Vadot};
44101950c46SEmmanuel Vadot
44201950c46SEmmanuel Vadot&tdmout_b {
44301950c46SEmmanuel Vadot	status = "okay";
44401950c46SEmmanuel Vadot};
44501950c46SEmmanuel Vadot
44601950c46SEmmanuel Vadot&tohdmitx {
44701950c46SEmmanuel Vadot	status = "okay";
44801950c46SEmmanuel Vadot};
44901950c46SEmmanuel Vadot
45001950c46SEmmanuel Vadot&uart_A {
45101950c46SEmmanuel Vadot	status = "okay";
45201950c46SEmmanuel Vadot	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
45301950c46SEmmanuel Vadot	pinctrl-names = "default";
45401950c46SEmmanuel Vadot	uart-has-rtscts;
45501950c46SEmmanuel Vadot};
45601950c46SEmmanuel Vadot
45701950c46SEmmanuel Vadot&uart_AO {
45801950c46SEmmanuel Vadot	status = "okay";
45901950c46SEmmanuel Vadot	pinctrl-0 = <&uart_ao_a_pins>;
46001950c46SEmmanuel Vadot	pinctrl-names = "default";
46101950c46SEmmanuel Vadot};
46201950c46SEmmanuel Vadot
46301950c46SEmmanuel Vadot&usb {
46401950c46SEmmanuel Vadot	status = "okay";
46501950c46SEmmanuel Vadot	dr_mode = "host";
46601950c46SEmmanuel Vadot};
467