xref: /linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-g12b-bananapi.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
114e14723SChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
214e14723SChristian Hewitt/*
314e14723SChristian Hewitt * Copyright (c) 2019 BayLibre, SAS
414e14723SChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com>
514e14723SChristian Hewitt * Copyright (c) 2023 Christian Hewitt <christianshewitt@gmail.com>
614e14723SChristian Hewitt */
714e14723SChristian Hewitt
814e14723SChristian Hewitt#include <dt-bindings/input/input.h>
914e14723SChristian Hewitt#include <dt-bindings/leds/common.h>
1014e14723SChristian Hewitt#include <dt-bindings/gpio/meson-g12a-gpio.h>
1114e14723SChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
1214e14723SChristian Hewitt
1314e14723SChristian Hewitt/ {
1414e14723SChristian Hewitt	aliases {
1514e14723SChristian Hewitt		serial0 = &uart_AO;
1614e14723SChristian Hewitt		ethernet0 = &ethmac;
1714e14723SChristian Hewitt		rtc1 = &vrtc;
1814e14723SChristian Hewitt	};
1914e14723SChristian Hewitt
2014e14723SChristian Hewitt	chosen {
2114e14723SChristian Hewitt		stdout-path = "serial0:115200n8";
2214e14723SChristian Hewitt	};
2314e14723SChristian Hewitt
2414e14723SChristian Hewitt	memory@0 {
2514e14723SChristian Hewitt		device_type = "memory";
2614e14723SChristian Hewitt		reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 4 GiB */
2714e14723SChristian Hewitt	};
2814e14723SChristian Hewitt
2914e14723SChristian Hewitt	adc-keys {
3014e14723SChristian Hewitt		compatible = "adc-keys";
3114e14723SChristian Hewitt		io-channels = <&saradc 2>;
3214e14723SChristian Hewitt		io-channel-names = "buttons";
3314e14723SChristian Hewitt		keyup-threshold-microvolt = <1710000>;
3414e14723SChristian Hewitt
3514e14723SChristian Hewitt		button-function {
3614e14723SChristian Hewitt			label = "RST";
3714e14723SChristian Hewitt			linux,code = <KEY_POWER>;
3814e14723SChristian Hewitt			press-threshold-microvolt = <10000>;
3914e14723SChristian Hewitt		};
4014e14723SChristian Hewitt	};
4114e14723SChristian Hewitt
4214e14723SChristian Hewitt	emmc_pwrseq: emmc-pwrseq {
4314e14723SChristian Hewitt		compatible = "mmc-pwrseq-emmc";
4414e14723SChristian Hewitt		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
4514e14723SChristian Hewitt	};
4614e14723SChristian Hewitt
4714e14723SChristian Hewitt	hdmi-connector {
4814e14723SChristian Hewitt		compatible = "hdmi-connector";
4914e14723SChristian Hewitt		type = "a";
5014e14723SChristian Hewitt
5114e14723SChristian Hewitt		port {
5214e14723SChristian Hewitt			hdmi_connector_in: endpoint {
5314e14723SChristian Hewitt				remote-endpoint = <&hdmi_tx_tmds_out>;
5414e14723SChristian Hewitt			};
5514e14723SChristian Hewitt		};
5614e14723SChristian Hewitt	};
5714e14723SChristian Hewitt
5814e14723SChristian Hewitt	leds {
5914e14723SChristian Hewitt		compatible = "gpio-leds";
6014e14723SChristian Hewitt
6114e14723SChristian Hewitt		led-0 {
6214e14723SChristian Hewitt			color = <LED_COLOR_ID_BLUE>;
6314e14723SChristian Hewitt			function = LED_FUNCTION_STATUS;
6414e14723SChristian Hewitt			gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_LOW>;
6514e14723SChristian Hewitt			linux,default-trigger = "heartbeat";
6614e14723SChristian Hewitt		};
6714e14723SChristian Hewitt
6814e14723SChristian Hewitt		led-1 {
6914e14723SChristian Hewitt			color = <LED_COLOR_ID_GREEN>;
7014e14723SChristian Hewitt			function = LED_FUNCTION_STATUS;
7114e14723SChristian Hewitt			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
7214e14723SChristian Hewitt		};
7314e14723SChristian Hewitt	};
7414e14723SChristian Hewitt
7514e14723SChristian Hewitt	sdio_pwrseq: sdio-pwrseq {
7614e14723SChristian Hewitt		compatible = "mmc-pwrseq-simple";
7714e14723SChristian Hewitt		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
7814e14723SChristian Hewitt		clocks = <&wifi32k>;
7914e14723SChristian Hewitt		clock-names = "ext_clock";
8014e14723SChristian Hewitt	};
8114e14723SChristian Hewitt
8214e14723SChristian Hewitt	wifi32k: wifi32k {
8314e14723SChristian Hewitt		compatible = "pwm-clock";
8414e14723SChristian Hewitt		#clock-cells = <0>;
8514e14723SChristian Hewitt		clock-frequency = <32768>;
8614e14723SChristian Hewitt		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
8714e14723SChristian Hewitt	};
8814e14723SChristian Hewitt
8914e14723SChristian Hewitt	dc_in: regulator-dc-in {
9014e14723SChristian Hewitt		compatible = "regulator-fixed";
9114e14723SChristian Hewitt		regulator-name = "DC_IN";
9214e14723SChristian Hewitt		regulator-min-microvolt = <5000000>;
9314e14723SChristian Hewitt		regulator-max-microvolt = <5000000>;
9414e14723SChristian Hewitt		regulator-always-on;
9514e14723SChristian Hewitt	};
9614e14723SChristian Hewitt
9714e14723SChristian Hewitt	vcc_5v: regulator-vcc-5v {
9814e14723SChristian Hewitt		compatible = "regulator-fixed";
9914e14723SChristian Hewitt		regulator-name = "VCC_5V";
10014e14723SChristian Hewitt		regulator-min-microvolt = <5000000>;
10114e14723SChristian Hewitt		regulator-max-microvolt = <5000000>;
10214e14723SChristian Hewitt		vin-supply = <&dc_in>;
10314e14723SChristian Hewitt
10414e14723SChristian Hewitt		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
10514e14723SChristian Hewitt		enable-active-high;
10614e14723SChristian Hewitt	};
10714e14723SChristian Hewitt
10814e14723SChristian Hewitt	vcc_3v3: regulator-vcc-3v3 {
10914e14723SChristian Hewitt		compatible = "regulator-fixed";
11014e14723SChristian Hewitt		regulator-name = "VCC_3V3";
11114e14723SChristian Hewitt		regulator-min-microvolt = <3300000>;
11214e14723SChristian Hewitt		regulator-max-microvolt = <3300000>;
11314e14723SChristian Hewitt		vin-supply = <&vsys_3v3>;
11414e14723SChristian Hewitt		regulator-always-on;
11514e14723SChristian Hewitt	};
11614e14723SChristian Hewitt
11714e14723SChristian Hewitt	vcc_1v8: regulator-vcc-1v8 {
11814e14723SChristian Hewitt		compatible = "regulator-fixed";
11914e14723SChristian Hewitt		regulator-name = "VCC_1V8";
12014e14723SChristian Hewitt		regulator-min-microvolt = <1800000>;
12114e14723SChristian Hewitt		regulator-max-microvolt = <1800000>;
12214e14723SChristian Hewitt		vin-supply = <&vcc_3v3>;
12314e14723SChristian Hewitt		regulator-always-on;
12414e14723SChristian Hewitt	};
12514e14723SChristian Hewitt
12614e14723SChristian Hewitt	vddao_1v8: regulator-vddao-1v8 {
12714e14723SChristian Hewitt		compatible = "regulator-fixed";
12814e14723SChristian Hewitt		regulator-name = "VDDIO_AO1V8";
12914e14723SChristian Hewitt		regulator-min-microvolt = <1800000>;
13014e14723SChristian Hewitt		regulator-max-microvolt = <1800000>;
13114e14723SChristian Hewitt		vin-supply = <&vsys_3v3>;
13214e14723SChristian Hewitt		regulator-always-on;
13314e14723SChristian Hewitt	};
13414e14723SChristian Hewitt
13514e14723SChristian Hewitt	vddcpu_a: regulator-vddcpu-a {
13614e14723SChristian Hewitt		compatible = "pwm-regulator";
13714e14723SChristian Hewitt		regulator-name = "VDDCPU_A";
13814e14723SChristian Hewitt		regulator-min-microvolt = <690000>;
13914e14723SChristian Hewitt		regulator-max-microvolt = <1050000>;
14014e14723SChristian Hewitt		pwm-supply = <&dc_in>;
14114e14723SChristian Hewitt		pwms = <&pwm_ab 0 1250 0>;
14214e14723SChristian Hewitt		pwm-dutycycle-range = <100 0>;
14314e14723SChristian Hewitt		regulator-boot-on;
14414e14723SChristian Hewitt		regulator-always-on;
14514e14723SChristian Hewitt	};
14614e14723SChristian Hewitt
14714e14723SChristian Hewitt	vddcpu_b: regulator-vddcpu-b {
14814e14723SChristian Hewitt		compatible = "pwm-regulator";
14914e14723SChristian Hewitt		regulator-name = "VDDCPU_B";
15014e14723SChristian Hewitt		regulator-min-microvolt = <690000>;
15114e14723SChristian Hewitt		regulator-max-microvolt = <1050000>;
15214e14723SChristian Hewitt		pwm-supply = <&vsys_3v3>;
15314e14723SChristian Hewitt		pwms = <&pwm_AO_cd 1 1250 0>;
15414e14723SChristian Hewitt		pwm-dutycycle-range = <100 0>;
15514e14723SChristian Hewitt		regulator-boot-on;
15614e14723SChristian Hewitt		regulator-always-on;
15714e14723SChristian Hewitt	};
15814e14723SChristian Hewitt
15914e14723SChristian Hewitt	vsys_3v3: regulator-vsys-3v3 {
16014e14723SChristian Hewitt		compatible = "regulator-fixed";
16114e14723SChristian Hewitt		regulator-name = "VSYS_3V3";
16214e14723SChristian Hewitt		regulator-min-microvolt = <3300000>;
16314e14723SChristian Hewitt		regulator-max-microvolt = <3300000>;
16414e14723SChristian Hewitt		vin-supply = <&dc_in>;
16514e14723SChristian Hewitt		regulator-always-on;
16614e14723SChristian Hewitt	};
16714e14723SChristian Hewitt
16814e14723SChristian Hewitt	emmc_1v8: regulator-emmc-1v8 {
16914e14723SChristian Hewitt		compatible = "regulator-fixed";
17014e14723SChristian Hewitt		regulator-name = "EMMC_AO1V8";
17114e14723SChristian Hewitt		regulator-min-microvolt = <1800000>;
17214e14723SChristian Hewitt		regulator-max-microvolt = <1800000>;
17314e14723SChristian Hewitt		vin-supply = <&vcc_3v3>;
17414e14723SChristian Hewitt		regulator-always-on;
17514e14723SChristian Hewitt	};
17614e14723SChristian Hewitt
17714e14723SChristian Hewitt	usb_pwr: regulator-usb-pwr {
17814e14723SChristian Hewitt		compatible = "regulator-fixed";
17914e14723SChristian Hewitt		regulator-name = "USB_PWR";
18014e14723SChristian Hewitt		regulator-min-microvolt = <5000000>;
18114e14723SChristian Hewitt		regulator-max-microvolt = <5000000>;
18214e14723SChristian Hewitt		vin-supply = <&vcc_5v>;
18314e14723SChristian Hewitt
18414e14723SChristian Hewitt		gpio = <&gpio GPIOA_6 GPIO_ACTIVE_HIGH>;
18514e14723SChristian Hewitt		enable-active-high;
18614e14723SChristian Hewitt	};
18714e14723SChristian Hewitt
18814e14723SChristian Hewitt	sound {
18914e14723SChristian Hewitt		compatible = "amlogic,axg-sound-card";
19014e14723SChristian Hewitt		model = "BPI-M2S";
19114e14723SChristian Hewitt		audio-aux-devs = <&tdmout_b>;
19214e14723SChristian Hewitt		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
19314e14723SChristian Hewitt				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
19414e14723SChristian Hewitt				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
19514e14723SChristian Hewitt				"TDM_B Playback", "TDMOUT_B OUT";
19614e14723SChristian Hewitt
197*9b5d2511SNeil Armstrong		clocks = <&clkc CLKID_MPLL2>,
198*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL0>,
199*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL1>;
200*9b5d2511SNeil Armstrong
20114e14723SChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL2>,
20214e14723SChristian Hewitt				  <&clkc CLKID_MPLL0>,
20314e14723SChristian Hewitt				  <&clkc CLKID_MPLL1>;
20414e14723SChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
20514e14723SChristian Hewitt		assigned-clock-rates = <294912000>,
20614e14723SChristian Hewitt				       <270950400>,
20714e14723SChristian Hewitt				       <393216000>;
20814e14723SChristian Hewitt
20914e14723SChristian Hewitt		dai-link-0 {
21014e14723SChristian Hewitt			sound-dai = <&frddr_a>;
21114e14723SChristian Hewitt		};
21214e14723SChristian Hewitt
21314e14723SChristian Hewitt		dai-link-1 {
21414e14723SChristian Hewitt			sound-dai = <&frddr_b>;
21514e14723SChristian Hewitt		};
21614e14723SChristian Hewitt
21714e14723SChristian Hewitt		dai-link-2 {
21814e14723SChristian Hewitt			sound-dai = <&frddr_c>;
21914e14723SChristian Hewitt		};
22014e14723SChristian Hewitt
22114e14723SChristian Hewitt		/* 8ch hdmi interface */
22214e14723SChristian Hewitt		dai-link-3 {
22314e14723SChristian Hewitt			sound-dai = <&tdmif_b>;
22414e14723SChristian Hewitt			dai-format = "i2s";
22514e14723SChristian Hewitt			dai-tdm-slot-tx-mask-0 = <1 1>;
22614e14723SChristian Hewitt			dai-tdm-slot-tx-mask-1 = <1 1>;
22714e14723SChristian Hewitt			dai-tdm-slot-tx-mask-2 = <1 1>;
22814e14723SChristian Hewitt			dai-tdm-slot-tx-mask-3 = <1 1>;
22914e14723SChristian Hewitt			mclk-fs = <256>;
23014e14723SChristian Hewitt
23114e14723SChristian Hewitt			codec {
23214e14723SChristian Hewitt				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
23314e14723SChristian Hewitt			};
23414e14723SChristian Hewitt		};
23514e14723SChristian Hewitt
23614e14723SChristian Hewitt		/* hdmi glue */
23714e14723SChristian Hewitt		dai-link-4 {
23814e14723SChristian Hewitt			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
23914e14723SChristian Hewitt
24014e14723SChristian Hewitt			codec {
24114e14723SChristian Hewitt				sound-dai = <&hdmi_tx>;
24214e14723SChristian Hewitt			};
24314e14723SChristian Hewitt		};
24414e14723SChristian Hewitt	};
24514e14723SChristian Hewitt};
24614e14723SChristian Hewitt
24714e14723SChristian Hewitt&arb {
24814e14723SChristian Hewitt	status = "okay";
24914e14723SChristian Hewitt};
25014e14723SChristian Hewitt
25114e14723SChristian Hewitt&clkc_audio {
25214e14723SChristian Hewitt	status = "okay";
25314e14723SChristian Hewitt};
25414e14723SChristian Hewitt
25514e14723SChristian Hewitt&cecb_AO {
25614e14723SChristian Hewitt	pinctrl-0 = <&cec_ao_b_h_pins>;
25714e14723SChristian Hewitt	pinctrl-names = "default";
25814e14723SChristian Hewitt	status = "okay";
25914e14723SChristian Hewitt	hdmi-phandle = <&hdmi_tx>;
26014e14723SChristian Hewitt};
26114e14723SChristian Hewitt
26214e14723SChristian Hewitt&cpu0 {
26314e14723SChristian Hewitt	cpu-supply = <&vddcpu_b>;
26414e14723SChristian Hewitt	operating-points-v2 = <&cpu_opp_table_0>;
26514e14723SChristian Hewitt	clocks = <&clkc CLKID_CPU_CLK>;
26614e14723SChristian Hewitt};
26714e14723SChristian Hewitt
26814e14723SChristian Hewitt&cpu1 {
26914e14723SChristian Hewitt	cpu-supply = <&vddcpu_b>;
27014e14723SChristian Hewitt	operating-points-v2 = <&cpu_opp_table_0>;
27114e14723SChristian Hewitt	clocks = <&clkc CLKID_CPU_CLK>;
27214e14723SChristian Hewitt};
27314e14723SChristian Hewitt
27414e14723SChristian Hewitt&cpu100 {
27514e14723SChristian Hewitt	cpu-supply = <&vddcpu_a>;
27614e14723SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
27714e14723SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
27814e14723SChristian Hewitt};
27914e14723SChristian Hewitt
28014e14723SChristian Hewitt&cpu101 {
28114e14723SChristian Hewitt	cpu-supply = <&vddcpu_a>;
28214e14723SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
28314e14723SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
28414e14723SChristian Hewitt};
28514e14723SChristian Hewitt
28614e14723SChristian Hewitt&cpu102 {
28714e14723SChristian Hewitt	cpu-supply = <&vddcpu_a>;
28814e14723SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
28914e14723SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
29014e14723SChristian Hewitt};
29114e14723SChristian Hewitt
29214e14723SChristian Hewitt&cpu103 {
29314e14723SChristian Hewitt	cpu-supply = <&vddcpu_a>;
29414e14723SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
29514e14723SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
29614e14723SChristian Hewitt};
29714e14723SChristian Hewitt
29814e14723SChristian Hewitt&ethmac {
29914e14723SChristian Hewitt	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
30014e14723SChristian Hewitt	pinctrl-names = "default";
30114e14723SChristian Hewitt	status = "okay";
30214e14723SChristian Hewitt	phy-mode = "rgmii";
30314e14723SChristian Hewitt	phy-handle = <&external_phy>;
30414e14723SChristian Hewitt	amlogic,tx-delay-ns = <2>;
30514e14723SChristian Hewitt};
30614e14723SChristian Hewitt
30714e14723SChristian Hewitt&ext_mdio {
30814e14723SChristian Hewitt	external_phy: ethernet-phy@0 {
30914e14723SChristian Hewitt		/* Realtek RTL8211F (0x001cc916) */
31014e14723SChristian Hewitt		reg = <0>;
31114e14723SChristian Hewitt		max-speed = <1000>;
31214e14723SChristian Hewitt
31314e14723SChristian Hewitt		reset-assert-us = <10000>;
31414e14723SChristian Hewitt		reset-deassert-us = <80000>;
31514e14723SChristian Hewitt		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
31614e14723SChristian Hewitt
31714e14723SChristian Hewitt		interrupt-parent = <&gpio_intc>;
31814e14723SChristian Hewitt		/* MAC_INTR on GPIOZ_14 */
3196387e0aaSHuqiang Qin		interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>;
32014e14723SChristian Hewitt	};
32114e14723SChristian Hewitt};
32214e14723SChristian Hewitt
32314e14723SChristian Hewitt&frddr_a {
32414e14723SChristian Hewitt	status = "okay";
32514e14723SChristian Hewitt};
32614e14723SChristian Hewitt
32714e14723SChristian Hewitt&frddr_b {
32814e14723SChristian Hewitt	status = "okay";
32914e14723SChristian Hewitt};
33014e14723SChristian Hewitt
33114e14723SChristian Hewitt&frddr_c {
33214e14723SChristian Hewitt	status = "okay";
33314e14723SChristian Hewitt};
33414e14723SChristian Hewitt
33514e14723SChristian Hewitt&hdmi_tx {
33614e14723SChristian Hewitt	status = "okay";
33714e14723SChristian Hewitt	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
33814e14723SChristian Hewitt	pinctrl-names = "default";
33914e14723SChristian Hewitt	hdmi-supply = <&vcc_5v>;
34014e14723SChristian Hewitt};
34114e14723SChristian Hewitt
34214e14723SChristian Hewitt&hdmi_tx_tmds_port {
34314e14723SChristian Hewitt	hdmi_tx_tmds_out: endpoint {
34414e14723SChristian Hewitt		remote-endpoint = <&hdmi_connector_in>;
34514e14723SChristian Hewitt	};
34614e14723SChristian Hewitt};
34714e14723SChristian Hewitt
34814e14723SChristian Hewitt/* Main i2c bus */
34914e14723SChristian Hewitt&i2c2 {
35014e14723SChristian Hewitt	status = "okay";
35114e14723SChristian Hewitt	pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
35214e14723SChristian Hewitt	pinctrl-names = "default";
35314e14723SChristian Hewitt};
35414e14723SChristian Hewitt
35514e14723SChristian Hewitt&pcie {
35614e14723SChristian Hewitt	status = "okay";
35714e14723SChristian Hewitt	reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>;
35814e14723SChristian Hewitt};
35914e14723SChristian Hewitt
36014e14723SChristian Hewitt&pwm_ab {
36114e14723SChristian Hewitt	status = "okay";
36214e14723SChristian Hewitt	pinctrl-0 = <&pwm_a_e_pins>;
36314e14723SChristian Hewitt	pinctrl-names = "default";
36414e14723SChristian Hewitt};
36514e14723SChristian Hewitt
36614e14723SChristian Hewitt&pwm_ef {
36714e14723SChristian Hewitt	status = "okay";
36814e14723SChristian Hewitt	pinctrl-0 = <&pwm_e_pins>;
36914e14723SChristian Hewitt	pinctrl-names = "default";
37014e14723SChristian Hewitt};
37114e14723SChristian Hewitt
37214e14723SChristian Hewitt&pwm_AO_cd {
37314e14723SChristian Hewitt	pinctrl-0 = <&pwm_ao_d_e_pins>;
37414e14723SChristian Hewitt	pinctrl-names = "default";
37514e14723SChristian Hewitt	status = "okay";
37614e14723SChristian Hewitt};
37714e14723SChristian Hewitt
37814e14723SChristian Hewitt&saradc {
37914e14723SChristian Hewitt	status = "okay";
38014e14723SChristian Hewitt	vref-supply = <&vddao_1v8>;
38114e14723SChristian Hewitt};
38214e14723SChristian Hewitt
38314e14723SChristian Hewitt/* SDIO */
38414e14723SChristian Hewitt&sd_emmc_a {
38514e14723SChristian Hewitt	/* enable if WiFi/BT board connected */
38614e14723SChristian Hewitt	status = "disabled";
38714e14723SChristian Hewitt	pinctrl-0 = <&sdio_pins>;
38814e14723SChristian Hewitt	pinctrl-1 = <&sdio_clk_gate_pins>;
38914e14723SChristian Hewitt	pinctrl-names = "default", "clk-gate";
39014e14723SChristian Hewitt	#address-cells = <1>;
39114e14723SChristian Hewitt	#size-cells = <0>;
39214e14723SChristian Hewitt
39314e14723SChristian Hewitt	bus-width = <4>;
39414e14723SChristian Hewitt	sd-uhs-sdr104;
39514e14723SChristian Hewitt	max-frequency = <50000000>;
39614e14723SChristian Hewitt
39714e14723SChristian Hewitt	non-removable;
39814e14723SChristian Hewitt	disable-wp;
39914e14723SChristian Hewitt
40014e14723SChristian Hewitt	/* WiFi firmware requires power in suspend */
40114e14723SChristian Hewitt	keep-power-in-suspend;
40214e14723SChristian Hewitt
40314e14723SChristian Hewitt	mmc-pwrseq = <&sdio_pwrseq>;
40414e14723SChristian Hewitt
40514e14723SChristian Hewitt	vmmc-supply = <&vsys_3v3>;
40614e14723SChristian Hewitt	vqmmc-supply = <&vddao_1v8>;
40714e14723SChristian Hewitt
40814e14723SChristian Hewitt	rtl8822cs: wifi@1 {
40914e14723SChristian Hewitt		reg = <1>;
41014e14723SChristian Hewitt	};
41114e14723SChristian Hewitt};
41214e14723SChristian Hewitt
41314e14723SChristian Hewitt/* SD card */
41414e14723SChristian Hewitt&sd_emmc_b {
41514e14723SChristian Hewitt	status = "okay";
41614e14723SChristian Hewitt	pinctrl-0 = <&sdcard_c_pins>;
41714e14723SChristian Hewitt	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
41814e14723SChristian Hewitt	pinctrl-names = "default", "clk-gate";
41914e14723SChristian Hewitt
42014e14723SChristian Hewitt	bus-width = <4>;
42114e14723SChristian Hewitt	cap-sd-highspeed;
42214e14723SChristian Hewitt	max-frequency = <50000000>;
42314e14723SChristian Hewitt	disable-wp;
42414e14723SChristian Hewitt
42514e14723SChristian Hewitt	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
42614e14723SChristian Hewitt	vmmc-supply = <&vsys_3v3>;
42714e14723SChristian Hewitt	vqmmc-supply = <&vsys_3v3>;
42814e14723SChristian Hewitt};
42914e14723SChristian Hewitt
43014e14723SChristian Hewitt/* eMMC */
43114e14723SChristian Hewitt&sd_emmc_c {
43214e14723SChristian Hewitt	status = "okay";
43314e14723SChristian Hewitt	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
43414e14723SChristian Hewitt	pinctrl-1 = <&emmc_clk_gate_pins>;
43514e14723SChristian Hewitt	pinctrl-names = "default", "clk-gate";
43614e14723SChristian Hewitt
43714e14723SChristian Hewitt	bus-width = <8>;
43814e14723SChristian Hewitt	cap-mmc-highspeed;
43914e14723SChristian Hewitt	mmc-ddr-1_8v;
44014e14723SChristian Hewitt	mmc-hs200-1_8v;
44114e14723SChristian Hewitt	max-frequency = <200000000>;
44214e14723SChristian Hewitt	disable-wp;
44314e14723SChristian Hewitt
44414e14723SChristian Hewitt	mmc-pwrseq = <&emmc_pwrseq>;
44514e14723SChristian Hewitt	vmmc-supply = <&vcc_3v3>;
44614e14723SChristian Hewitt	vqmmc-supply = <&emmc_1v8>;
44714e14723SChristian Hewitt};
44814e14723SChristian Hewitt
44914e14723SChristian Hewitt&tdmif_b {
45014e14723SChristian Hewitt	status = "okay";
45114e14723SChristian Hewitt};
45214e14723SChristian Hewitt
45314e14723SChristian Hewitt&tdmout_b {
45414e14723SChristian Hewitt	status = "okay";
45514e14723SChristian Hewitt};
45614e14723SChristian Hewitt
45714e14723SChristian Hewitt&tohdmitx {
45814e14723SChristian Hewitt	status = "okay";
45914e14723SChristian Hewitt};
46014e14723SChristian Hewitt
46114e14723SChristian Hewitt&uart_A {
46214e14723SChristian Hewitt	/* enable if WiFi/BT board connected */
46314e14723SChristian Hewitt	status = "disabled";
46414e14723SChristian Hewitt	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
46514e14723SChristian Hewitt	pinctrl-names = "default";
46614e14723SChristian Hewitt	uart-has-rtscts;
46714e14723SChristian Hewitt
46814e14723SChristian Hewitt	bluetooth {
46914e14723SChristian Hewitt		compatible = "realtek,rtl8822cs-bt";
47014e14723SChristian Hewitt		enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
47114e14723SChristian Hewitt		host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
47214e14723SChristian Hewitt		device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
47314e14723SChristian Hewitt	};
47414e14723SChristian Hewitt};
47514e14723SChristian Hewitt
47614e14723SChristian Hewitt&uart_AO {
47714e14723SChristian Hewitt	status = "okay";
47814e14723SChristian Hewitt	pinctrl-0 = <&uart_ao_a_pins>;
47914e14723SChristian Hewitt	pinctrl-names = "default";
48014e14723SChristian Hewitt};
48114e14723SChristian Hewitt
48214e14723SChristian Hewitt&usb2_phy0 {
48314e14723SChristian Hewitt	phy-supply = <&dc_in>;
48414e14723SChristian Hewitt};
48514e14723SChristian Hewitt
48614e14723SChristian Hewitt&usb2_phy1 {
48714e14723SChristian Hewitt	phy-supply = <&usb_pwr>;
48814e14723SChristian Hewitt};
48914e14723SChristian Hewitt
49014e14723SChristian Hewitt&usb3_pcie_phy {
49114e14723SChristian Hewitt	phy-supply = <&usb_pwr>;
49214e14723SChristian Hewitt};
49314e14723SChristian Hewitt
49414e14723SChristian Hewitt&usb {
49514e14723SChristian Hewitt	status = "okay";
49614e14723SChristian Hewitt	dr_mode = "peripheral";
49714e14723SChristian Hewitt	phys = <&usb2_phy0>, <&usb2_phy1>;
49814e14723SChristian Hewitt	phy-names = "usb2-phy0", "usb2-phy1";
49914e14723SChristian Hewitt};
500