// 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:921600n8";
	};

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

	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 17 GPIO_ACTIVE_LOW>;
		regulator-always-on;
	};

	ga1600_pmic: ga1600_pmic {
		compatible = "regulator-fixed";
		regulator-name = "ga1600_pmic";
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
		gpio = <&pio 56 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <0>;
		enable-active-high;
		regulator-always-on;
	};
	ga1600_reset: ga1600_reset {
		compatible = "regulator-fixed";
		regulator-name = "ga1600_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;
	};

	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,mt8516-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>;
	};

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

&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";
};

&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;
		};
	};

	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>;
			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>;
			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;
		};
	};

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

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

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

&i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_a>;
	clock-div = <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)>;
};

&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;

	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";
		vbus-supply = <&usb0_vbus>;
	};

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

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

&usb1 {
	status = "okay";
};
