// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2019 BayLibre, SAS.
 * Author: Fabien Parent <fparent@baylibre.com>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>

#include "mt8167.dtsi"
#include "mt6392.dtsi"

/ {
	model = "Google Coral MT8167";

	aliases {
		serial0 = &uart0;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory: memory@40000000 {
		device_type = "memory";
		reg = <0 0x40000000 0 0x80000000>;
	};

	firmware {
		optee: optee@4fd00000 {
			compatible = "linaro,optee-tz";
			method = "smc";
		};
	};

	usb0_vbus: regulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "usb0_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&pio 50 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	usb0_vbus_old: regulator@1 {
		compatible = "regulator-fixed";
		regulator-name = "usb0_vbus_old";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&pio 17 GPIO_ACTIVE_LOW>;
	};

	backlight_vbus: backlight_vbus {
		compatible = "regulator-fixed";
		regulator-name = "backlight_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	apex_pmic: apex_pmic {
		compatible = "regulator-fixed";
		regulator-name = "apex_pmic";
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
		gpio = <&pio 56 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <0>;
		enable-active-high;
	};
	apex_reset: apex_reset {
		compatible = "regulator-fixed";
		regulator-name = "apex_reset";
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
		gpio = <&pio 57 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <150>;
		enable-active-high;
		regulator-always-on;
	};

	cam_dummy_clk: cam_dummy_clk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
	};

	mt8167_audio_codec: mt8167_audio_codec {
		compatible = "mediatek,mt8167-codec";
		status = "okay";
		clocks = <&topckgen CLK_TOP_AUDIO>;
		clock-names = "bus";
		mediatek,afe-regmap = <&afe>;
		mediatek,apmixedsys-regmap = <&apmixedsys>;
		mediatek,pwrap-regmap = <&pwrap>;
		mediatek,dmic-wire-mode = <1>; // TWO_WIRE
		mediatek,headphone-cap-sel = <1>; // 22uF
		mediatek,speaker-mode = <0>; // Class D
	};

	sound: sound {
		compatible = "mediatek,snd-soc-mt8167-excelsior";
		status = "okay";
		mediatek,platform = <&afe>;
		pinctrl-names = "default";
		pinctrl-0 = <&aud_pins_default>;
		mediatek,jack-detect-gpio = <&pio 40 0>;
	};

	auxadc: adc@11003000 {
		compatible = "mediatek,mt2712-auxadc";
		reg = <0 0x11003000 0 0x1000>;
		clocks = <&topckgen CLK_TOP_AUX_ADC>;
		clock-names = "main";
		#io-channel-cells = <1>;
		status = "okay";
	};

	thermal: thermal@1100d000 {
		#thermal-sensor-cells = <0>;
		compatible = "mediatek,mt8167-thermal";
		reg = <0 0x1100d000 0 0x1000>;
		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_LOW>;
		clocks = <&topckgen CLK_TOP_THEM>, <&topckgen CLK_TOP_AUX_ADC>;
		clock-names = "therm", "auxadc";
		mediatek,auxadc = <&auxadc>;
		mediatek,apmixedsys = <&apmixedsys>;
		nvmem-cells = <&thermal_calibration>;
		nvmem-cell-names = "calibration-data";
	};

	efuse: efuse@10009000 {
		compatible = "mediatek,mt8173-efuse";
		reg = <0 0x10009000 0 0x1000>;
		#address-cells = <1>;
		#size-cells = <1>;
		thermal_calibration: calib@180 {
			reg = <0x180 0xc>;
		};
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		status = "disabled";
		power-supply = <&backlight_vbus>;
	};

	thermal-zones {
		cpu_thermal: cpu_thermal {
			polling-delay-passive = <1000>; /* ms */
			polling-delay = <1000>; /* ms */

			thermal-sensors = <&thermal>;

			trips {
				cpu_alert0: trip0 {
					temperature = <85000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_alert1: trip1 {
					temperature = <90000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_alert2: trip2 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_alert3: trip3 {
					temperature = <100000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_crit0: trip4 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};

			cooling-maps {
				map0 {
					trip = <&cpu_alert0>;
					cooling-device = <&cpu0 0 4>;
				};
				map1 {
					trip = <&cpu_alert1>;
					cooling-device = <&cpu0 0 3>;
				};
				map2 {
					trip = <&cpu_alert2>;
					cooling-device = <&cpu0 0 2>;
				};
				map3 {
					trip = <&cpu_alert3>;
					cooling-device = <&cpu0 0 1>;
				};
			};
		};
	};
};

&afe {
	status = "okay";
	mediatek,tdm-out-mode = <0>; // HDMI
};

&cpu0 {
	proc-supply = <&mt6392_vproc_reg>;
};

&cpu1 {
	proc-supply = <&mt6392_vproc_reg>;
};

&cpu2 {
	proc-supply = <&mt6392_vproc_reg>;
};

&cpu3 {
	proc-supply = <&mt6392_vproc_reg>;
};

&mt6392_pmic {
	interrupt-parent = <&pio>;
	interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
	interrupt-controller;
	#interrupt-cells = <2>;
};

&mt6392_vcamaf_reg {
	regulator-min-microvolt = <3300000>;
	regulator-always-on;
};

&mt6392_vgp1_reg {
	regulator-min-microvolt = <3300000>;
	regulator-always-on;
};

&mt6392_vgp2_reg {
	regulator-min-microvolt = <3300000>;
	regulator-always-on;
};

&mt6392_vmch_reg {
	regulator-min-microvolt = <3300000>;
};

&mt6392_vmc_reg {
	regulator-min-microvolt = <3300000>;
};

&uart0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins>;
};

&uart1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins>;
};

&pio {
	i2c0_pins_a: i2c0 {
		pins1 {
			pinmux = <MT8167_PIN_58_SDA0__FUNC_SDA0_0>,
			         <MT8167_PIN_59_SCL0__FUNC_SCL0_0>;
			bias-disable;
		};
	};

	i2c1_pins_a: i2c1 {
		pins1 {
			pinmux = <MT8167_PIN_52_SDA1__FUNC_SDA1_0>,
			         <MT8167_PIN_53_SCL1__FUNC_SCL1_0>;
			bias-disable;
		};
	};

	i2c2_pins_a: i2c2 {
		pins1 {
			pinmux = <MT8167_PIN_60_SDA2__FUNC_GPIO60>,
			         <MT8167_PIN_61_SCL2__FUNC_GPIO61>;
			bias-disable;
		};
		pins_a71ch_reset {
			pinmux = <MT8516_PIN_23_EINT23__FUNC_GPIO23>;
			output-high;
		};
	};

	pwm_pins: pwm {
		pins1 {
			pinmux = <MT8167_PIN_11_EINT11__FUNC_PWM_C>,
			         <MT8167_PIN_12_EINT12__FUNC_PWM_A>,
			         <MT8167_PIN_25_EINT25__FUNC_PWM_B>;
		};
	};

	uart0_pins: uart0 {
		pins1 {
			pinmux = <MT8167_PIN_62_URXD0__FUNC_URXD0>,
				<MT8167_PIN_63_UTXD0__FUNC_UTXD0>;
		};
	};

	uart1_pins: uart1 {
		pins1 {
			pinmux = <MT8167_PIN_64_URXD1__FUNC_URXD1>,
				<MT8167_PIN_65_UTXD1__FUNC_UTXD1>;
		};
	};

	aud_pins_default: audiodefault {
		pins1 {
			pinmux = <MT8167_PIN_40_KPROW0__FUNC_GPIO40>;
			input-enable;
			bias-pull-up;
		};
	};

	mmc0_pins_default: mmc0default {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_120_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
				 <MT8167_PIN_119_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
				 <MT8167_PIN_118_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
				 <MT8167_PIN_117_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
				 <MT8167_PIN_113_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
				 <MT8167_PIN_112_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
				 <MT8167_PIN_111_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
				 <MT8167_PIN_110_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
				 <MT8167_PIN_115_MSDC0_CMD__FUNC_MSDC0_CMD>;
			input-enable;
			bias-pull-up;
		};

		pins_clk {
			pinmux = <MT8167_PIN_116_MSDC0_CLK__FUNC_MSDC0_CLK>;
			bias-pull-down;
		};

		pins_rst {
			pinmux = <MT8167_PIN_114_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
			bias-pull-up;
		};

		pins_user {
			pinmux = <MT8167_PIN_2_EINT2__FUNC_GPIO2>;
			bias-pull-up;
		};
	};

	mmc0_pins_uhs: mmc0@0{
		pins_cmd_dat {
			pinmux = <MT8167_PIN_120_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
				 <MT8167_PIN_119_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
				 <MT8167_PIN_118_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
				 <MT8167_PIN_117_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
				 <MT8167_PIN_113_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
				 <MT8167_PIN_112_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
				 <MT8167_PIN_111_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
				 <MT8167_PIN_110_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
				 <MT8167_PIN_115_MSDC0_CMD__FUNC_MSDC0_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT8167_PIN_116_MSDC0_CLK__FUNC_MSDC0_CLK>;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_rst {
			pinmux = <MT8167_PIN_114_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
			bias-pull-up;
		};
	};

	mmc1_pins_default: mmc1default {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_106_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
			         <MT8167_PIN_107_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
			         <MT8167_PIN_108_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
			         <MT8167_PIN_109_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
			         <MT8167_PIN_104_MSDC1_CMD__FUNC_MSDC1_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT8167_PIN_105_MSDC1_CLK__FUNC_MSDC1_CLK>;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_pmu_en {
			pinmux = <MT8167_PIN_48_SPI_CS__FUNC_GPIO48>;
			output-low;
		};

		pins_test_en {
			pinmux = <MT8167_PIN_38_MRG_DI__FUNC_GPIO38>,
			         <MT8167_PIN_44_JTMS__FUNC_GPIO44>;
			output-low;
		};

		pins_sys_rst {
			pinmux = <MT8167_PIN_47_JTDO__FUNC_GPIO47>;
			output-high;
		};
	};

	mmc1_pins_uhs: mmc1@0 {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_106_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
			         <MT8167_PIN_107_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
			         <MT8167_PIN_108_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
			         <MT8167_PIN_109_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
			         <MT8167_PIN_104_MSDC1_CMD__FUNC_MSDC1_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT8167_PIN_105_MSDC1_CLK__FUNC_MSDC1_CLK>;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_pmu_en {
			pinmux = <MT8167_PIN_48_SPI_CS__FUNC_GPIO48>;
			output-high;
		};

		pins_test_en {
			pinmux = <MT8167_PIN_38_MRG_DI__FUNC_GPIO38>,
			         <MT8167_PIN_44_JTMS__FUNC_GPIO44>;
			output-low;
		};

		pins_sys_rst {
			pinmux = <MT8167_PIN_47_JTDO__FUNC_GPIO47>;
			output-high;
		};
	};

	mmc2_pins_default: mmc2default {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_70_MSDC2_DAT0__FUNC_MSDC2_DAT0>,
				<MT8167_PIN_71_MSDC2_DAT1__FUNC_MSDC2_DAT1>,
				<MT8167_PIN_72_MSDC2_DAT2__FUNC_MSDC2_DAT2>,
				<MT8167_PIN_73_MSDC2_DAT3__FUNC_MSDC2_DAT3>,
				<MT8167_PIN_68_MSDC2_CMD__FUNC_MSDC2_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT8167_PIN_69_MSDC2_CLK__FUNC_MSDC2_CLK>;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};
	};

	mmc2_pins_uhs: mmc2@0 {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_70_MSDC2_DAT0__FUNC_MSDC2_DAT0>,
				<MT8167_PIN_71_MSDC2_DAT1__FUNC_MSDC2_DAT1>,
				<MT8167_PIN_72_MSDC2_DAT2__FUNC_MSDC2_DAT2>,
				<MT8167_PIN_73_MSDC2_DAT3__FUNC_MSDC2_DAT3>,
				<MT8167_PIN_68_MSDC2_CMD__FUNC_MSDC2_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT8167_PIN_69_MSDC2_CLK__FUNC_MSDC2_CLK>;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};
	};

	hdmi_pins_default: hdmi_pins_default {
	};

	hdmi_pins_hpd: hdmi_pins_hpd {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_122_HTPLG__FUNC_HTPLG>;
			bias-pull-down;
		};
	};

	/* APEX GPIO start */
	apex_boot_fail: boot_fail {
		pins_cmd_dat {
				pinmux = <MT8167_PIN_55_I2S_DATA_IN__FUNC_GPIO55>;
				slew-rate = <1>;
				input-enable;
				bias-pull-up;
		};
	};

	apex_pmic_en: pmic_en {
		pins_cmd_dat {
				pinmux = <MT8167_PIN_56_I2S_LRCK__FUNC_GPIO56>;
				slew-rate = <1>;
				output-high;
		};
	};

	apex_reset_n: reset_n {
		pins_cmd_dat {
				pinmux = <MT8167_PIN_57_I2S_BCK__FUNC_GPIO57>;
				slew-rate = <1>;
				output-high;
		};
	};
	/* APEX GPIO end */

	camera_pins_default: camdefault {
		pins_cmd_dat {
			pinmux = <MT8167_PIN_84_RDN0__FUNC_RDN0>,
				<MT8167_PIN_85_RDP0__FUNC_RDP0>,
				<MT8167_PIN_86_RDN1__FUNC_RDN1>,
				<MT8167_PIN_87_RDP1__FUNC_RDP1>,
				<MT8167_PIN_88_RCN__FUNC_RCN>,
				<MT8167_PIN_89_RCP__FUNC_RCP>,
				<MT8167_PIN_90_RDN2__FUNC_RDN2>,
				<MT8167_PIN_91_RDP2__FUNC_RDP2>,
				<MT8167_PIN_92_RDN3__FUNC_RDN3>,
				<MT8167_PIN_93_RDP3__FUNC_RDP3>,
				<MT8167_PIN_94_RCN_A__FUNC_RCN_A>,
				<MT8167_PIN_95_RCP_A__FUNC_RCP_A>,
				<MT8167_PIN_96_RDN1_A__FUNC_RDN1_A>,
				<MT8167_PIN_97_RDP1_A__FUNC_RDP1_A>,
				<MT8167_PIN_98_RDN0_A__FUNC_RDN0_A>,
				<MT8167_PIN_99_RDP0_A__FUNC_RDP0_A>,
				<MT8167_PIN_102_CMMCLK__FUNC_CMMCLK>;
		};
	};

	camera_pins_ov: cam_pin_ov {
		pins_cmd_power_ctl {
			pinmux = <MT8167_PIN_14_EINT14__FUNC_GPIO14>;
			output-high;
			bias-pull-down;
		};

		pins_cmd_power_rst {
			pinmux = <MT8167_PIN_15_EINT15__FUNC_GPIO15>;
			output-low;
		};
	};
};

&i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_a>;
	clock-div = <1>;
	clock-frequency = <100000>;

	ov5645: ov5645@3c {
		compatible = "ovti,ov5645_mipi";
		status = "okay";
		reg = <0x3c>;
		power-domains = <&scpsys MT8167_POWER_DOMAIN_ISP>;

		pwn-gpios = <&pio 14 GPIO_ACTIVE_HIGH>;
		rst-gpios = <&pio 15 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_pins_ov>;

		DOVDD-supply = <&mt6392_vcamio_reg>;
		DVDD-supply = <&mt6392_vcamd_reg>;
		AVDD-supply = <&mt6392_vcama_reg>;

		clocks = <&cam_dummy_clk>;
		clock-names = "csi_mclk";

		mclk = <24000000>;
		mclk_source = <0>;
		ae_target = <52>;
		csi_id = <0>;

		port {
			ov5645_endpoint: endpoint {
				remote-endpoint = <&mipicsi0_endpoint>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};
};

&i2c1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins_a>;
	clock-div = <2>;
};

&i2c2 {
	status = "okay";
	compatible = "i2c-gpio";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins_a>;
	sda-gpios = <&pio 60 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
	scl-gpios = <&pio 61 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
};

&mipicsi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&camera_pins_default>;
	port {
		mipicsi0_endpoint: endpoint {
			remote-endpoint = <&ov5645_endpoint>;
		};
	};
};

&spi {
	status = "okay";
	spidev@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <2000000>;
		reg = <0>;
	};
};

&pwm {
	status = "okay";
	#pwm-cells = <2>;
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_pins>;
};

&mmc0 {
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc0_pins_default>;
	pinctrl-1 = <&mmc0_pins_uhs>;
	status = "okay";
	bus-width = <8>;
	max-frequency = <200000000>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
	cap-mmc-hw-reset;
	vmmc-supply = <&mt6392_vemc3v3_reg>;
	vqmmc-supply = <&mt6392_vio18_reg>;
	non-removable;
};

&mmc1 {
	status = "okay";
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc1_pins_default>;
	pinctrl-1 = <&mmc1_pins_uhs>;
	vmmc-supply = <&mt6392_vemc3v3_reg>;
	vqmmc-supply = <&mt6392_vio18_reg>;
	bus-width = <4>;
	max-frequency = <200000000>;
	keep-power-in-suspend;
	cap-sd-highspeed;
	enable-sdio-wakeup;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	cap-sdio-irq;
	non-removable;

	mt7668 {
		wifi: mt7668-wifi@0 {
			compatible = "mediatek,mt8516-wifi", "mediatek,mt7668-wifi";
			mac-address = [00 00 00 00 00 00];
		};
		bluetooth: mt7668-bluetooth@0 {
			compatible = "mediatek,mt8516-bluetooth", "mediatek,mt7668-bluetooth";
			mac-address = [00 00 00 00 00 00];
		};
	};
};

&mmc2 {
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc2_pins_default>;
	pinctrl-1 = <&mmc2_pins_uhs>;
	status = "okay";
	bus-width = <4>;
	max-frequency = <200000000>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	broken-cd;
	vmmc-supply = <&mt6392_vmch_reg>;
	vqmmc-supply = <&mt6392_vmc_reg>;
};

&dpi1 {
	status = "okay";
	ddc-i2c-bus = <&hdmiddc>;

	port {
		hdmi_connector_in: endpoint@0 {
			remote-endpoint = <&hdmi_out>;
		};
	};
};

&hdmi_phy {
	status = "okay";
};

&cec {
	status = "okay";
};

&hdmi {
	pinctrl-names = "default", "hdmi_hpd";
	pinctrl-0 = <&hdmi_pins_default>;
	pinctrl-1 = <&hdmi_pins_hpd>;
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@1 {
			reg = <1>;

			hdmi_out: endpoint {
				remote-endpoint = <&hdmi_connector_in>;
			};
		};
	};
};

&usb0 {
	status = "okay";
	dr_mode = "otg";
	usb-role-switch;
	vbus-supply = <&usb0_vbus>;

	port {
		usb0_role_switch: endpoint {
			remote-endpoint = <&mt6392_typec_ep>;
		};
	};
};

&usb0_phy {
	status = "okay";
};

&mt6392typec {
	usb_con: connector {
		compatible = "usb-c-connector";
		label = "USB-C";
	};

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@1 {
			reg = <1>;
			mt6392_typec_ep: endpoint {
				remote-endpoint = <&usb0_role_switch>;
			};
		};
	};
};

&usb1 {
	status = "okay";
	apex_pmic-supply = <&apex_pmic>;
};
