// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
 */

/dts-v1/;

#include "meson-g12a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
#include <dt-bindings/sound/meson-g12a-toacodec.h>

/ {
	compatible = "amlogic,u200", "amlogic,g12a";
	model = "Amlogic Meson G12A U200 Development Board";

	aliases {
		serial0 = &uart_AO;
		ethernet0 = &ethmac;
	};

	dioo2133: audio-amplifier-0 {
		compatible = "simple-audio-amplifier";
		enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
		VCC-supply = <&vcc_5v>;
		sound-name-prefix = "10U2";
	};

	spdif_dir: audio-codec-0 {
		compatible = "linux,spdif-dir";
		#sound-dai-cells = <0>;
		sound-name-prefix = "DIR";
	};

	spdif_dit: audio-codec-1 {
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;
		sound-name-prefix = "DIT";
	};

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

	cvbs-connector {
		compatible = "composite-video-connector";

		port {
			cvbs_connector_in: endpoint {
				remote-endpoint = <&cvbs_vdac_out>;
			};
		};
	};

	emmc_pwrseq: emmc-pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
	};

	hdmi-connector {
		compatible = "hdmi-connector";
		type = "a";

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

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

	flash_1v8: regulator-flash-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "FLASH_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_3v3>;
		regulator-always-on;
	};

	main_12v: regulator-main-12v {
		compatible = "regulator-fixed";
		regulator-name = "12V";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
	};

	usb_pwr_en: regulator-usb-pwr-en {
		compatible = "regulator-fixed";
		regulator-name = "USB_PWR_EN";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&vcc_5v>;

		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	vcc_1v8: regulator-vcc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VCC_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_3v3>;
		regulator-always-on;
	};

	vcc_3v3: regulator-vcc-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vddao_3v3>;
		regulator-always-on;
		/* FIXME: actually controlled by VDDCPU_B_EN */
	};

	vcc_5v: regulator-vcc-5v {
		compatible = "regulator-fixed";
		regulator-name = "VCC_5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&main_12v>;

		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
		enable-active-high;
	};

	vddao_1v8: regulator-vddao-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vddao_3v3>;
		regulator-always-on;
	};

	vddao_3v3: regulator-vddao-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&main_12v>;
		regulator-always-on;
	};

	vddcpu: regulator-vddcpu {
		/*
		 * MP8756GD Regulator.
		 */
		compatible = "pwm-regulator";

		regulator-name = "VDDCPU";
		regulator-min-microvolt = <721000>;
		regulator-max-microvolt = <1022000>;

		pwm-supply = <&main_12v>;

		pwms = <&pwm_AO_cd 1 1250 0>;
		pwm-dutycycle-range = <100 0>;

		regulator-boot-on;
		regulator-always-on;
	};

	sound {
		compatible = "amlogic,axg-sound-card";
		model = "U200";
		audio-widgets = "Line", "Lineout";
		audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&tdmout_c>,
				 <&tdmin_a>, <&tdmin_b>, <&tdmin_c>,
				 <&tdmin_lb>, <&dioo2133>;
		audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
				"TDMOUT_A IN 1", "FRDDR_B OUT 0",
				"TDMOUT_A IN 2", "FRDDR_C OUT 0",
				"TDM_A Playback", "TDMOUT_A OUT",
				"TDMOUT_B IN 0", "FRDDR_A OUT 1",
				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
				"TDM_B Playback", "TDMOUT_B OUT",
				"TDMOUT_C IN 0", "FRDDR_A OUT 2",
				"TDMOUT_C IN 1", "FRDDR_B OUT 2",
				"TDMOUT_C IN 2", "FRDDR_C OUT 2",
				"TDM_C Playback", "TDMOUT_C OUT",
				"SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
				"SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
				"SPDIFOUT_A IN 2", "FRDDR_C OUT 3",
				"SPDIFOUT_B IN 0", "FRDDR_A OUT 4",
				"SPDIFOUT_B IN 1", "FRDDR_B OUT 4",
				"SPDIFOUT_B IN 2", "FRDDR_C OUT 4",
				"TDMIN_A IN 0", "TDM_A Capture",
				"TDMIN_A IN 1", "TDM_B Capture",
				"TDMIN_A IN 2", "TDM_C Capture",
				"TDMIN_A IN 3", "TDM_A Loopback",
				"TDMIN_A IN 4", "TDM_B Loopback",
				"TDMIN_A IN 5", "TDM_C Loopback",
				"TDMIN_B IN 0", "TDM_A Capture",
				"TDMIN_B IN 1", "TDM_B Capture",
				"TDMIN_B IN 2", "TDM_C Capture",
				"TDMIN_B IN 3", "TDM_A Loopback",
				"TDMIN_B IN 4", "TDM_B Loopback",
				"TDMIN_B IN 5", "TDM_C Loopback",
				"TDMIN_C IN 0", "TDM_A Capture",
				"TDMIN_C IN 1", "TDM_B Capture",
				"TDMIN_C IN 2", "TDM_C Capture",
				"TDMIN_C IN 3", "TDM_A Loopback",
				"TDMIN_C IN 4", "TDM_B Loopback",
				"TDMIN_C IN 5", "TDM_C Loopback",
				"TDMIN_LB IN 3", "TDM_A Capture",
				"TDMIN_LB IN 4", "TDM_B Capture",
				"TDMIN_LB IN 5", "TDM_C Capture",
				"TDMIN_LB IN 0", "TDM_A Loopback",
				"TDMIN_LB IN 1", "TDM_B Loopback",
				"TDMIN_LB IN 2", "TDM_C Loopback",
				"TODDR_A IN 0", "TDMIN_A OUT",
				"TODDR_B IN 0", "TDMIN_A OUT",
				"TODDR_C IN 0", "TDMIN_A OUT",
				"TODDR_A IN 1", "TDMIN_B OUT",
				"TODDR_B IN 1", "TDMIN_B OUT",
				"TODDR_C IN 1", "TDMIN_B OUT",
				"TODDR_A IN 2", "TDMIN_C OUT",
				"TODDR_B IN 2", "TDMIN_C OUT",
				"TODDR_C IN 2", "TDMIN_C OUT",
				"TODDR_A IN 3", "SPDIFIN Capture",
				"TODDR_B IN 3", "SPDIFIN Capture",
				"TODDR_C IN 3", "SPDIFIN Capture",
				"TODDR_A IN 6", "TDMIN_LB OUT",
				"TODDR_B IN 6", "TDMIN_LB OUT",
				"TODDR_C IN 6", "TDMIN_LB OUT",
				"10U2 INL", "ACODEC LOLP",
				"10U2 INR", "ACODEC LORP",
				"Lineout", "10U2 OUTL",
				"Lineout", "10U2 OUTR";

		assigned-clocks = <&clkc CLKID_MPLL2>,
				  <&clkc CLKID_MPLL0>,
				  <&clkc CLKID_MPLL1>;
		assigned-clock-parents = <0>, <0>, <0>;
		assigned-clock-rates = <294912000>,
				       <270950400>,
				       <393216000>;

		dai-link-0 {
			sound-dai = <&frddr_a>;
		};

		dai-link-1 {
			sound-dai = <&frddr_b>;
		};

		dai-link-2 {
			sound-dai = <&frddr_c>;
		};

		dai-link-3 {
			sound-dai = <&toddr_a>;
		};

		dai-link-4 {
			sound-dai = <&toddr_b>;
		};

		dai-link-5 {
			sound-dai = <&toddr_c>;
		};

		/* Connected to the WIFI/BT chip */
		dai-link-6 {
			sound-dai = <&tdmif_a>;
			dai-format = "dsp_a";
			dai-tdm-slot-tx-mask-0 = <1 1>;
			mclk-fs = <256>;

			codec-0 {
				sound-dai = <&toacodec TOACODEC_IN_A>;
			};

			codec-1 {
				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
			};
		};

		/* Connected to the onboard AD82584F DAC */
		dai-link-7 {
			sound-dai = <&tdmif_b>;
			dai-format = "i2s";
			dai-tdm-slot-tx-mask-0 = <1 1>;
			mclk-fs = <256>;

			codec-0 {
				sound-dai = <&toacodec TOACODEC_IN_B>;
			};

			codec-1 {
				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
			};
		};

		/* 8ch HDMI interface */
		dai-link-8 {
			sound-dai = <&tdmif_c>;
			dai-format = "i2s";
			dai-tdm-slot-tx-mask-0 = <1 1>;
			dai-tdm-slot-tx-mask-1 = <1 1>;
			dai-tdm-slot-tx-mask-2 = <1 1>;
			dai-tdm-slot-tx-mask-3 = <1 1>;
			mclk-fs = <256>;

			codec-0 {
				sound-dai = <&toacodec TOACODEC_IN_C>;
			};

			codec-1 {
				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
			};
		};

		/* spdif hdmi and coax output */
		dai-link-9 {
			sound-dai = <&spdifout_a>;

			codec-0 {
				sound-dai = <&spdif_dit>;
			};

			codec-1 {
				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
			};
		};

		/* spdif hdmi interface */
		dai-link-10 {
			sound-dai = <&spdifout_b>;

			codec {
				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
			};
		};

		/* hdmi glue */
		dai-link-11 {
			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;

			codec {
				sound-dai = <&hdmi_tx>;
			};
		};

		/* internal codec glue */
		dai-link-12 {
			sound-dai = <&toacodec TOACODEC_OUT>;

			codec {
				sound-dai = <&acodec>;
			};
		};

		/* spdif coax input */
		dai-link-13 {
			sound-dai = <&spdifin>;

			codec {
				sound-dai = <&spdif_dir>;
			};
		};
	};
};

&acodec {
	AVDD-supply = <&vddao_1v8>;
	status = "okay";
};

&arb {
	status = "okay";
};

&cec_AO {
	pinctrl-0 = <&cec_ao_a_h_pins>;
	pinctrl-names = "default";
	status = "disabled";
	hdmi-phandle = <&hdmi_tx>;
};

&cecb_AO {
	pinctrl-0 = <&cec_ao_b_h_pins>;
	pinctrl-names = "default";
	status = "okay";
	hdmi-phandle = <&hdmi_tx>;
};

&clkc_audio {
	status = "okay";
};

&cpu0 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU_CLK>;
	clock-latency = <50000>;
};

&cpu1 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU_CLK>;
	clock-latency = <50000>;
};

&cpu2 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU_CLK>;
	clock-latency = <50000>;
};

&cpu3 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU_CLK>;
	clock-latency = <50000>;
};

&clkc_audio {
	status = "okay";
};

&cvbs_vdac_port {
	cvbs_vdac_out: endpoint {
		remote-endpoint = <&cvbs_connector_in>;
	};
};

&ethmac {
	status = "okay";
	phy-handle = <&internal_ephy>;
	phy-mode = "rmii";
};

&frddr_a {
	status = "okay";
};

&frddr_b {
	status = "okay";
};

&frddr_c {
	status = "okay";
};

&hdmi_tx {
	status = "okay";
	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
	pinctrl-names = "default";
	hdmi-supply = <&vcc_5v>;
};

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

&ir {
	status = "okay";
	pinctrl-0 = <&remote_input_ao_pins>;
	pinctrl-names = "default";
};

/* i2c Touch */
&i2c0 {
	status = "okay";
	pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
	pinctrl-names = "default";
};

/* i2c CM */
&i2c2 {
	status = "okay";
	pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
	pinctrl-names = "default";
};

/* i2c Audio */
&i2c3 {
	status = "okay";
	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
	pinctrl-names = "default";
};

&pwm_AO_cd {
	pinctrl-0 = <&pwm_ao_d_e_pins>;
	pinctrl-names = "default";
	clocks = <&xtal>;
	clock-names = "clkin1";
	status = "okay";
};

/* SD card */
&sd_emmc_b {
	status = "okay";
	pinctrl-0 = <&sdcard_c_pins>;
	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
	pinctrl-names = "default", "clk-gate";

	bus-width = <4>;
	cap-sd-highspeed;
	max-frequency = <50000000>;
	disable-wp;

	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vddao_3v3>;
};

/* eMMC */
&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
	pinctrl-1 = <&emmc_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";

	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	max-frequency = <200000000>;
	non-removable;
	disable-wp;

	mmc-pwrseq = <&emmc_pwrseq>;
	vmmc-supply = <&vcc_3v3>;
	vqmmc-supply = <&flash_1v8>;
};

&spdifin {
	pinctrl-0 = <&spdif_in_h_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&spdifout_a {
	pinctrl-0 = <&spdif_ao_out_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&spdifout_b {
	status = "okay";
};

&tdmif_a {
	pinctrl-0 = <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>, <&tdm_a_dout0_pins> ;
	pinctrl-names = "default";
	status = "okay";
};

&tdmif_b {
	pinctrl-0 = <&mclk0_a_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>,
		    <&tdm_b_dout0_pins>;
	pinctrl-names = "default";
	status = "okay";

	assigned-clocks = <&clkc_audio AUD_CLKID_TDM_MCLK_PAD0>,
			  <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>,
			  <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
	assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
				 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
				 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
	assigned-clock-rates = <0>, <0>, <0>;
};

&tdmif_c {
	status = "okay";
};

&tdmin_a {
	status = "okay";
};

&tdmin_b {
	status = "okay";
};

&tdmin_c {
	status = "okay";
};

&tdmin_lb {
	status = "okay";
};

&tdmout_a {
	status = "okay";
};

&tdmout_b {
	status = "okay";
};

&tdmout_c {
	status = "okay";
};

&toacodec {
	status = "okay";
};

&toddr_a {
	status = "okay";
};

&toddr_b {
	status = "okay";
};

&toddr_c {
	status = "okay";
};

&tohdmitx {
	status = "okay";
};

&uart_AO {
	status = "okay";
	pinctrl-0 = <&uart_ao_a_pins>;
	pinctrl-names = "default";
};

&usb {
	status = "okay";
	vbus-supply = <&usb_pwr_en>;
};

&usb2_phy0 {
	phy-supply = <&vcc_5v>;
};

&usb2_phy1 {
	phy-supply = <&vcc_5v>;
};
