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

/dts-v1/;

#include "meson-c2.dtsi"
#include "spencer-partition.dtsi"

/ {
	compatible = "amlogic,c2";
	model = "Google Spencer B4";

	aliases {
		serial0 = &uart_B;
		serial1 = &uart_E; /*/dev/ttyS1 for BT */
		serial2 = &uart_C;
		serial3 = &uart_D;
		serial4 = &uart_A;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		spi0 = &spifc;
		spi1 = &spicc0;
		spi2 = &spicc1;
		tsensor0 = &tsensor;
	};
	chosen {
		stdout-path = "serial0:115200n8";
	};
	memory@0 {
		device_type = "memory";
		linux,usable-memory = <0x0 0x0 0x0 0x30000000>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		secmon_reserved:linux,secmon {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x800000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x05000000 0x0 0x800000>;
		};

		dsp_fw_reserved:linux,dsp_fw {
			compatible = "amlogic, aml_dsp_memory";
			reusable;
			size = <0x0 0x900000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x6000000 0x0 0x900000>;
		};

		autocap_reserved:linux,autocap_reserved {
			compatible = "amlogic, aml_autocap_memory";
			status = "disabled";
			size = <0x0 0x0>;
		};

		ramoops@0x07400000 {
			compatible = "ramoops";
			reg = <0x0 0x07400000 0x0 0x00100000>;
			record-size = <0x20000>;
			console-size = <0x20000>;
			ftrace-size = <0x80000>;
			pmsg-size = <0x0>;
			no-map;
		};

		/* codec shared reserved */
		codec_mm_reserved:linux,codec_mm_reserved {
			compatible = "cnm, MultiEnc-mem";
			size = <0x0 0x4000000>;
			alignment = <0x0 0x400000>;
		};

		isp_cma_reserved:linux,isp_cma {
			compatible = "shared-dma-pool";
			reusable;
			status = "okay";
			size = <0x0 0x2c00000>;
			// 6x 1080P RGB24 (36MB) + 1x temper2(6MB) + 4MB_align(2MB)
			alignment = <0x0 0x400000>;
		};

		adapt_cma_reserved:linux,adapt_cma {
			compatible = "shared-dma-pool";
			reusable;
			status = "okay";
			size = <0x0 0x1800000>;
			alignment = <0x0 0x400000>;
		};

		ion_cma_reserved:linux,ion-dev {
			compatible = "ion, private-mem";
			size = <0x0 0x4000000>;
			alignment = <0x0 0x400000>;
		};

		jpegenc_reserved:linux,jpegenc_reserved {
			compatible = "amlogic, jpegenc-memory";
			// To support  2048x2048
			// Buffer Needs: 0xe10000
			size = <0x0 0xe10000>;
		};

	};

	free_reserved {
		compatible = "amlogic, free_reserved";
		memory-region = <&autocap_reserved>;
		status = "disabled";
	};

	codec_mm {
		compatible = "amlogic, codec, mm";
		memory-region = <&codec_mm_reserved>;

		dev_name = "codec_mm";
		status = "okay";
	};

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

	vcc_5v: regulator-vcc_5v {
		compatible = "regulator-fixed";
		regulator-name = "VCC_5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&main_12v>;
		regulator-always-on;
	};

	vddq_1v2: regulator-vddq_1v2 {
		compatible = "regulator-fixed";
		regulator-name = "VDDQ_1V2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		vin-supply = <&main_12v>;
		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;
	};

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

	vddio_1v8: regulator-vddio_1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VDDIO_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vddao_3v3>;
		regulator-always-on;
	};

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

	sdcard_power: regulator-sdcard {
		status = "disabled";
		compatible = "regulator-fixed";

		regulator-name = "SDCARD_POWER";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&gpio GPIOD_5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
	};

	vddio_card: gpio-regulator {
		compatible = "regulator-gpio";

		regulator-name = "VDDIO_CARD";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;

		//gpios = <&gpio GPIOC_7 GPIO_ACTIVE_LOW>;
		gpios-states = <1>;

		/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
		states = <1800000 1
			3300000 0>;
	};

	/* Audio Related start */
	pdm_codec:pdm_codec{
		#sound-dai-cells = <0>;
		compatible = "amlogic, pdm_dummy_codec";
		status = "okay";
	};

	dummy_codec:dummy_codec{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_dummy_codec";
		status = "okay";
	};

	a1_codec:a1_codec {
		#sound-dai-cells = <0>;
		compatible = "amlogic, c2_acodec";
		status = "disabled";
		reg = <0x0 0xFE004800 0x0 0x20>;
		tdmout_index = <1>;
		tdmin_index = <1>;
		dat0_ch_sel = <0>;
		dacr_output_inv = <0>;
		power-domains = <&pwrdm PDID_ACODEC>;
	};

	auge_sound: auge_sound {
		compatible = "amlogic, a1-sound-card";
		aml-audio-card,name = "AML-AUGESOUND";
		spk_mute = <&gpio GPIOX_17 GPIO_ACTIVE_LOW>;
		status = "disabled";

		aml-audio-card,dai-link@0 {
			format = "i2s";// "dsp_a";
			mclk-fs = <256>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			/* master mode */
			bitclock-master = <&tdmb>;
			frame-master = <&tdmb>;
			/* slave mode */
			//bitclock-master = <&tdmbcodec>;
			//frame-master = <&tdmbcodec>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-i2s";
			tdmbcpu: cpu {
				sound-dai = <&tdmb>;
				dai-tdm-slot-tx-mask = <1 1>;
				dai-tdm-slot-rx-mask = <1 1>;
				dai-tdm-slot-num = <2>;
				dai-tdm-slot-width = <32>;
				system-clock-frequency = <1155072000>;
			};
			tdmbcodec: codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@1 {
			mclk-fs = <64>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-pdm";
			cpu {
				sound-dai = <&pdm>;
			};
			codec {
				sound-dai = <&pdm_codec>;
			};
		};
	};
	audiolocker: locker {
		compatible = "amlogic, audiolocker";
		clocks = <&clkaudio CLKID_AUDIO_LOCKER_OUT
				&clkaudio CLKID_AUDIO_LOCKER_IN
				&clkaudio CLKID_AUDIO_MCLK_C
				&clkaudio CLKID_AUDIO_MCLK_D
				&clkc CLKID_FCLK_DIV2
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "lock_out", "lock_in", "out_src",
					"in_src", "out_calc", "in_ref";
		interrupts = <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq";
		frequency = <49000000>; /* pll */
		dividor = <49>; /* locker's parent */
		power-domains = <&pwrdm PDID_AUDIO>;
		status = "okay";
	};
	/* Audio Related end */
	aml_enc {
		compatible = "cnm, MultiEnc";
		dev_name = "amvenc_multi";
		status = "okay";
		config_mm_sz_mb = <64>;
		clocks = <&clkc CLKID_SYS_DOS
			&clkc CLKID_DOS_APB
			&clkc CLKID_WAVE_A_GATE
			&clkc CLKID_WAVE_B_GATE
			&clkc CLKID_WAVE_C_GATE>;
		clock-names = "clk_dos",
			"clk_apb_dos",
			"clk_MultiEnc_A",
			"clk_MultiEnc_B",
			"clk_MultiEnc_C";
		interrupts = <0 58 1
			0 59 1>;
		interrupt-names = "multienc_irq",
			"multienc_idle_irq";
		#address-cells=<2>;
		#size-cells=<2>;
		ranges;
		io_reg_base {
			reg = <0x0 0xfe070000 0x0 0x10000>;
		};
	};
	sensor: sensor {
		compatible = "soc, sensor";
		status = "okay";
		sensor-name = "sc2310h"; /*imx290;os08a10;imx227*/
		pinctrl-names= "active", "sleep"; /* sensor power pin */
		pinctrl-0= <&sensor_pin_active>;
		pinctrl-1= <&sensor_pin_sleep>;
		clocks = <&clkc CLKID_GP_PLL_MCLK1_GATE>;
		clock-names = "mclk_0";
		clock-reg = <0xfe007cdc>;
		clock-bit = /bits/ 8 <7>;
		reset = <&gpio GPIOA_11 GPIO_ACTIVE_HIGH>;
	};

	iq: iq {
		compatible = "soc, iq";
		status = "okay";
		sensor-name = "sc2310h"; /*imx290;os08a10;imx227*/
		cali-file-path = "/factory/cam_param.txt";
	};

	aw8637c: aw8637c {
		compatible = "awinic, aw8637c";
		pwm-gpios = <&gpio GPIOD_4 GPIO_ACTIVE_HIGH>,
			    <&gpio GPIOD_3 GPIO_ACTIVE_HIGH>;
		// flip_polarity;
		// Uncomment the line below to skip initializing with 0 when driver probes the chip
		// skip_init;
	};

	cpu_opp_table0: cpu_opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <779000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <779000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <779000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <779000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <779000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <819000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <849000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <879000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <899000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <919000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <939000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1920000000>;
			opp-microvolt = <969000>;
		};
		opp12 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <989000>;
		};
	};

	cpu_opp_table1: cpu_opp_table1 {
		compatible = "operating-points-v2";
		opp-shared;

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <779000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <779000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <779000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <779000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <779000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <819000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <849000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <879000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <899000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <919000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <939000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1920000000>;
			opp-microvolt = <969000>;
		};
		opp12 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <989000>;
		};
	};

	cpu_opp_table2: cpu_opp_table2 {
		compatible = "operating-points-v2";
		opp-shared;

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <729000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <729000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <729000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <729000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <729000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <779000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <799000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <829000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <849000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <869000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <889000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1920000000>;
			opp-microvolt = <919000>;
		};
		opp12 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <929000>;
		};
	};

	cpu_opp_table3: cpu_opp_table3 {
		compatible = "operating-points-v2";
		opp-shared;

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <719000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <719000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <719000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <719000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <719000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <719000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <749000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <769000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <779000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <799000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <819000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1920000000>;
			opp-microvolt = <839000>;
		};
		opp12 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <869000>;
		};
	};

	cpufreq-meson {
		compatible = "amlogic, cpufreq-meson";
		status = "okay";
	};

	thermistor_wifi {
		compatible = "murata,ncp03wf104";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&saradc 0>;
	};

	thermistor_soc {
		compatible = "murata,ncp03wf104";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&saradc 1>;
	};

	thermistor_led {
		compatible = "murata,ncp03wf104";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&saradc 2>;
	};

	thermistor_cam {
		compatible = "murata,ncp03wf104";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&saradc 3>;
	};

	// IR LED
	pwm_leds {
		compatible = "pwm-leds";
		status = "okay";
		ir_led {
			label = "ir_led_pwm";
			/* GPIOX_16/PWM_E, 20kHz, b/168742501 */
			pwms = <&pwm_ef MESON_PWM_0 50000 0>;
			max-brightness = <255>;
		};
	};

	cpu-dvfsid {
		compatible = "amlogic, dvfs-id";
		reg=<0x0 0xfe005b00 0x0 0x4>;
		status = "okay";
	};
};

&cpu0 {
	cpu-supply = <&vddcpu0>;
	/*set ema according to vcck*/
	set_ema_available;
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>,
			<&cpu_opp_table3>;
};

&cpu1 {
	cpu-supply = <&vddcpu0>;
	/*set ema according to vcck*/
	set_ema_available;
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>,
			<&cpu_opp_table3>;
};

&pwm_ab {
	status = "okay";
};

&vddcpu0 {
	status = "okay";
};

/* Audio Related start */
&audiobus {
	tdma: tdm@0 {
		compatible = "amlogic, a1-snd-tdma";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <0 1>;
		dai-tdm-lane-oe-slot-mask-out = <1 0>;
		dai-tdm-clk-sel = <0>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_A
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "mclk", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = </*&tdmout_a*/ &tdmin_a>;
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "disabled";
	};

	tdmb: tdm@1 {
		compatible = "amlogic, a1-snd-tdmb";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <1 0 0 0>;
		dai-tdm-lane-slot-mask-out = <1 0 0 0>;
		/* dai-tdm-lane-oe-slot-mask-in = <0 1>; */
		dai-tdm-clk-sel = <1>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_B
				&clkaudio CLKID_AUDIO_MCLK_PAD0
				&clkc CLKID_HIFI_PLL>;
		clock-names = "mclk", "mclk_pad", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmout_b>;

		/* tdmin data comes from ACODEC adc */
		acodec_adc = <1>;

		/*
		 * 0: tdmout_a;
		 * 1: tdmout_b;
		 * 2: tdmout_c;
		 * 3: spdifout;
		 * 4: spdifout_b;
		 */
		//samesource_sel = <3>;
		start_clk_enable = <1>;
		power-domains = <&pwrdm PDID_AUDIO>;

		src-clk-freq = <1155072000>;

		status = "okay";
	};

	tdmlb:tdm@3 {
		compatible = "amlogic, a1-snd-tdmlb";
		#sound-dai-cells = <0>;

		dai-tdm-lane-lb-slot-mask-in = <1 0 0 0>;
		dai-tdm-clk-sel = <1>;

		clocks = <&clkaudio CLKID_AUDIO_MCLK_B
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "mclk", "clk_srcpll";

		/*
		 * select tdmin_lb src;
		 * AXG
		 *  0: TDMOUTA
		 *  1: TDMOUTB
		 *  2: TDMOUTC
		 *  3: PAD_TDMINA
		 *  4: PAD_TDMINB
		 *  5: PAD_TDMINC
		 *
		 * G12A/G12B
		 *  0: TDMOUTA
		 *  1: TDMOUTB
		 *  2: TDMOUTC
		 *  3: PAD_TDMINA_DIN*
		 *  4: PAD_TDMINB_DIN*
		 *  5: PAD_TDMINC_DIN*
		 *  6: PAD_TDMINA_D*, oe pin
		 *  7: PAD_TDMINB_D*, oe pin
		 *
		 * TL1/SM1
		 *  0: TDMOUTA
		 *  1: TDMOUTB
		 *  2: TDMOUTC
		 *  3: PAD_TDMINA_DIN*
		 *  4: PAD_TDMINB_DIN*
		 *  5: PAD_TDMINC_DIN*
		 *  6: PAD_TDMINA_D*
		 *  7: PAD_TDMINB_D*
		 *  8: PAD_TDMINC_D*
		 *  9: HDMIRX_I2S
		 *  10: ACODEC_ADC
		 *
		 * A1
		 *  0: TDMOUTA
		 *  1: TDMOUTB
		 *  3: PAD_TDMINA_DIN*
		 *  4: PAD_TDMINB_DIN*
		 */

		lb-src-sel = <1>;
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "disabled";
	};

	pdm: pdm {
		compatible = "amlogic, a1-snd-pdm";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_PDM
			&clkc CLKID_HIFI_PLL
			&clkc CLKID_HIFI_PLL
			&clkaudio CLKID_AUDIO2_PDM_DCLK
			&clkaudio CLKID_AUDIO2_PDM_SYSCLK>;
		clock-names = "gate",
			"sysclk_srcpll",
			"dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk";

		pinctrl-names = "pdm_pins";
		pinctrl-0 = <&pdmin>;

		/* mode 0~4, defalut:1 */
		filter_mode = <1>;
		lane-mask-in = <1 1 0 0>;

		sys-src-clk-freq = <1155072000>;
		power-domains = <&pwrdm PDID_PDM>;

		status = "okay";
	};

	asrcb: resample@1 {
		compatible = "amlogic, c2-resample-b";
		clocks = <&clkc CLKID_HIFI_PLL
			&clkaudio CLKID_AUDIO_MCLK_D
			&clkaudio CLKID_AUDIO_RESAMPLEA>;
		clock-names = "resample_pll", "resample_src", "resample_clk";

		/*this resample is only used for loopback_A.*/
		/*only support 16000 or 48000Hz for capture*/
		capture_sample_rate = <16000>;

		/* hifi pll rate */
		src-clk-freq = <1155072000>;

		status = "disabled";
	};

	vad:vad {
		compatible = "amlogic, snd-vad-top";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_TOVAD
			/* &clkc CLKID_FCLK_DIV2 */
			&xtal
			&clkaudio CLKID_AUDIO2_VAD_CLK>;
		clock-names = "gate", "pll", "clk";

		interrupts = <GIC_SPI 185 IRQ_TYPE_EDGE_RISING
				GIC_SPI 186 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq_wakeup", "irq_frame_sync";

		/*
		 * Data src sel:
		 * 2: tdmin_c, actually tdmin_vad
		 * 4: pdmin
		 */
		src = <4>;

		/*
		 * deal with hot word in user space or kernel space
		 * 0: in user space
		 * 1: in kernel space
		 */
		level = <1>;

		status = "disabled";
	};

	loopback: loopback {
		compatible = "amlogic, a1-loopbacka";
		#sound-dai-cells = <0>;

		original-src = <&tdmb>;
		//tdmin_lb-src = <&tdmin_lb>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_PDM
			&clkc CLKID_HIFI_PLL
			&clkc CLKID_HIFI_PLL
			&clkaudio CLKID_AUDIO2_PDM_DCLK
			&clkaudio CLKID_AUDIO2_PDM_SYSCLK
			&clkc CLKID_HIFI_PLL
			&clkaudio CLKID_AUDIO_MCLK_C>;
		clock-names = "pdm_gate",
			"pdm_sysclk_srcpll",
			"pdm_dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk",
			"tdminlb_mpll",
			"tdminlb_mclk";

		/* datain src
		 * 0: tdmin_a;
		 * 1: tdmin_b;
		 * 2: tdmin_c;
		 * 3: spdifin;
		 * 4: pdmin;
		 */
		datain_src = <4>;
		datain_chnum = <2>;
		datain_chmask = <0x3>;
		/* config which data pin for loopback */
		datain-lane-mask-in = <1 0 0 0>;

		sys-src-clk-freq = <1155072000>;

		/* calc mclk for datalb */
		mclk-fs = <256>;

		/* tdmin_lb src
		 * 0: tdmoutA
		 * 1: tdmoutB
		 * 2: tdmoutC
		 * 3: PAD_TDMINA_DIN*, refer to core pinmux
		 * 4: PAD_TDMINB_DIN*, refer to core pinmux
		 * 5: PAD_TDMINC_DIN*, refer to core pinmux
		 * 6: PAD_TDMINA_D*, oe, refer to core pinmux
		 * 7: PAD_TDMINB_D*, oe, refer to core pinmux
		 */
		/* if tdmin_lb >= 3, use external loopback */
		datalb_src = <1>;
		datalb_chnum = <2>;
		datalb_chmask = <0x3>;
		/* config which data pin as loopback */
		datalb-lane-mask-in = <1 0 0 0>;
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "disabled";
	};

	aed:effect {
		compatible = "amlogic, snd-effect-v4";
		#sound-dai-cells = <0>;
		clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC
			&clkc CLKID_FCLK_DIV3
			&clkaudio CLKID_AUDIO_EQDRC>;
		clock-names = "gate", "srcpll", "eqdrc";
		/*
		 * 0:tdmout_a
		 * 1:tdmout_b
		 * 2:tdmout_c
		 * 3:spdifout
		 * 4:spdifout_b
		 */
		eqdrc_module = <1>;
		/* max 0xf, each bit for one lane, usually one lane */
		lane_mask = <0x1>;
		/* max 0xff, each bit for one channel */
		channel_mask = <0x3>;
		power-domains = <&pwrdm PDID_AUDIO>;
		status = "disabled";
	};
}; /* end of audiobus */
/* Audio Related end */

&i2c4 {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c4_master_pins1>;
	pinctrl-1 = <&i2c4_master_sleep_pins1>;
	clock-frequency = <400000>; /* 400K, b/159627458 */
	sensor-i2c@30 {
		compatible = "arm, i2c-sensor";
		reg = <0x30>;
		reg-names = "i2c-sensor";
		slave-addr = <0x60>;
		reg-type = <2>;
		reg-data-type = <1>;
		link-device = <&phycsi>;
	};

	// Status LED
	aw2015@64 {
		compatible = "awinic,aw2015_led";
		reg = <0x64>;
		aw2015,imax = <2>;
		aw2015,pwmlog = <3>;

		aw2015,red {
			aw2015,name = "status-R";
			aw2015,id = <0>;
			aw2015,led-current = <255>;
			aw2015,max-brightness = <255>;
			aw2015,rise-time-ms = <0>;
			aw2015,hold-time-ms = <0>;
			aw2015,fall-time-ms = <0>;
			aw2015,off-time-ms = <0>;
		};

		aw2015,green {
			aw2015,name = "status-G";
			aw2015,id = <1>;
			aw2015,led-current = <255>;
			aw2015,max-brightness = <255>;
			aw2015,rise-time-ms = <0>;
			aw2015,hold-time-ms = <0>;
			aw2015,fall-time-ms = <0>;
			aw2015,off-time-ms = <0>;
		};

		aw2015,blue {
			aw2015,name = "status-B";
			aw2015,id = <2>;
			aw2015,led-current = <255>;
			aw2015,max-brightness = <255>;
			aw2015,rise-time-ms = <0>;
			aw2015,hold-time-ms = <0>;
			aw2015,fall-time-ms = <0>;
			aw2015,off-time-ms = <0>;
		};
	};
};

&isp {
	status = "okay";
	temper-line-offset = <0x1680>;
	temper-buf-size = <6>;
	temper-frame-num = <1>;
	temper-frame-size = <0x5EEC00>; // 1920x1080x3
	memory-region = <&isp_cma_reserved>;
	clk-level = <2>;
};

&adapter {
	status = "okay";
	mem_alloc = <24>;
	memory-region = <&adapt_cma_reserved>;
};

&phycsi {
	dphy-ctrl0-cfg = <0x177>;
	dphy-ctrl1-cfg = <0x177>;
};

&pinctrl_periphs {
	/* Audio Related start */
	tdmout_a: tdmout_a {
		mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
			groups = "tdm_a_sclk",
				"tdm_a_fs",
				"tdm_a_dout0";
			function = "tdm_a";
		};
	};

	tdmin_a: tdmin_a {
		mux { /* GPIOX_8 */
			groups = "tdm_a_din1";
			function = "tdm_a";
		};
	};

	tdmb_mclk: tdmb_mclk {
		mux {
			groups = "mclk_0";
			function = "mclk_0";
			drive-strength = <2>;
		};
	};

	tdmout_b: tdmout_b {
		mux { /* GPIOA_1, GPIOA_2, GPIOA_3 */
			groups = "tdm_b_sclk",
				"tdm_b_fs",
				"tdm_b_dout0";
			function = "tdm_b";
			drive-strength = <2>;
		};
	};

	tdmin_b:tdmin_b {
		mux { /* GPIOA_7 */
			groups = "tdm_b_din0";
			function = "tdm_b";
			drive-strength = <2>;
		};
	};

	spdifin: spdifin {
		mux {/* GPIOF_6 */
			groups = "spdif_in_f6";
			function = "spdif_in";
		};
	};

	pdmin: pdmin {
		mux { /* GPIOC_4 GPIOC_0*/
			groups =
				"pdm_dclk_c",
				"pdm_din0_c";
			function = "pdm";
		};
	};

	/* Audio Related end */
	cmclkout2_pins:cmclkout2_pins {
		mux {
			groups = "cmclkout2";
			function = "cmclkout";
			drive-strength = <4>;
		};
	};

	/* Sensor power GPIOA_7 */
	sensor_pin_active:sensor_power_pin_active {
		mux {
			groups = "GPIOA_7";
			function = "gpio_periphs";
			output-high;
			drive-strength = <4>;
		};
	};

	sensor_pin_sleep:sensor_power_pin_sleep {
		mux {
			groups = "GPIOA_7";
			function = "gpio_periphs";
			input-enable;
		};
	};

	a_uart_pins1:a_uart1 {
		mux {
			groups = "uart_a_tx_x12",
				"uart_a_rts";
			function = "uart_a";
		};

		mux1 {
			groups = "uart_a_rx_x13",
			       "uart_a_cts";
			function = "uart_a";
			vin-threshold= <1>;
		};
	};

	e_uart_pins2:e_uart2 {
		mux {
			groups = "uart_e_tx_m",
				"uart_e_rx_m",
				"uart_e_rts",
				"uart_e_cts";
			function = "uart_e";
		};

		mux1 {
			// Set UART_B (the primary UART) RX/TX pins as
			// GPIO input/No pull
			groups = "GPIOD_0", "GPIOD_1";
			function = "gpio_periphs";
			input-enable;
			bias-disable;
		};
	};

}; /* end of pinctrl_periphs */

&gdc {
	status = "okay";
};

&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_pins>;
	pinctrl-1 = <&emmc_clk_gate_pins>;
	pinctrl-2 = <&emmc_pins_sleep>;
	pinctrl-names = "default", "clk-gate", "sleep";
	bus-width = <8>;
	cap-sd-highspeed;
	cap-mmc-highspeed;
	max-frequency = <167000000>;
	non-removable;
	disable-wp;
	mmc-cap-erase;
	//mmc-ddr-1_8v;
	mmc-hs200-1_8v;
//	mmc-hs400-1_8v;
	card_type = <1>;/*emmc:1,sdcard:2,sdio:3*/
	post-power-on-delay-ms = <0>;
	//vmmc-supply = <&vcc_3v3>;
	//vqmmc-supply = <&vcc_1v8>;
};

/* SD card */
&sd_emmc_b {
	status = "disabled";
	pinctrl-0 = <&sdcard_pins>;
	pinctrl-1 = <&sdcard_clk_gate_pins>;
	pinctrl-2 = <&sd_1bit_pins>;
	pinctrl-3 = <&b_uart_pins1
		&sdcard_clk_gate_pins &ao_to_sd_uart_pins>;
	pinctrl-4 = <&b_uart_pins1
		&sd_1bit_pins &ao_to_sd_uart_pins>;
	pinctrl-5 = <&sdcard_pins &b_uart_enable_pins1>;
	pinctrl-6 = <&b_uart_pins1
		&ao_to_sd_uart_pins>;
	pinctrl-7 = <&sdcard_pins &b_uart_enable_pins1>;
	pinctrl-8 = <&b_uart_pins1
		&ao_to_sd_uart_pins>;
	pinctrl-9 = <&sdcard_pins_sleep>;
	pinctrl-names = "sd_default",
			"clk-gate",
			"sd_1bit_pins",
			"sd_clk_cmd_uart_pins",
			"sd_1bit_uart_pins",
			"sd_to_ao_uart_pins",
			"ao_to_sd_uart_pins",
			"sd_to_ao_jtag_pins",
			"ao_to_sd_jtag_pins",
			"sleep";
	bus-width = <4>;
	cap-sd-highspeed;
//	sd-uhs-sdr12;
//	sd-uhs-sdr25;
//	sd-uhs-sdr50;
//	sd-uhs-sdr104;
	max-frequency = <200000000>;
	disable-wp;
	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_HIGH>;
	//dat1-gpios = <&gpio GPIOC_1 GPIO_ACTIVE_HIGH>;
	dat3-gpios = <&gpio GPIOC_3 GPIO_ACTIVE_HIGH>;
	cd-inverted;
	card_type = <5>;
//	vmmc-supply = <&sdcard_power>;
//	vqmmc-supply = <&vddio_card>;
};

/*sdio*/
&sd_emmc_a {
	status = "okay";
	pinctrl-0 = <&sdio_x_pins>;
	pinctrl-names = "default";
	bus-width = <4>;
	cap-sd-highspeed;
	sd-uhs-sdr12;
	sd-uhs-sdr25;
	sd-uhs-sdr50;
	non-removable;
	max-frequency = <80000000>;
	disable-wp;
	cap-sdio-irq;
	keep-power-in-suspend;
	card_type = <3>;
	post-power-on-delay-ms = <0>;
	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vcc_1v8>;
};

&nand {
	status = "disabled";
	pinctrl-names = "nand_norb_mod", "nand_cs_only";
	pinctrl-0 = <&all_nand_pins>;
	pinctrl-1 = <&nand_cs_pins>;
	/* bl_mode: 0 compact mode; 1 descrete mode */
	bl_mode = <1>;
	fip_copies = <4>;
	fip_size = <0x200000>;
	nand_clk_ctrl = <0xFE012000>;
	nand_ext_clk_ctrl = <0xFE000920>;
	partition = <&slc_partitions>;
	slc_partitions: slc_partitions{
			tpl{
					offset=<0x0 0x0>;
					size=<0x0 0x0>;
			};
			recovery{
					offset=<0x0 0x0>;
					size=<0x0 0x2000000>;
			};
			boot{
					offset=<0x0 0x0>;
					size=<0x0 0x2000000>;
			};
			system{
					offset=<0x0 0x0>;
					size=<0x0 0x13000000>;
			};
			data{
					offset=<0xffffffff 0xffffffff>;
					size=<0x0 0x0>;
			};
	};
};

&dwc2_a {
	status = "okay";
	/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
	controller-type = <3>;
};

&usb0 {
	status = "okay";
};

&usb2_phy_v2 {
	status = "okay";
	portnum = <1>;
	otg-phy-index = <0>;
};

&usb3_phy_v2 {
	status = "okay";
	portnum = <0>;
	otg = <1>;
	/*
	otg = <1>;
	gpio-vbus-power = "GPIOD_9";
	gpios = <&gpio GPIOD_9 GPIO_ACTIVE_HIGH>;
	*/
};

&aml_bc {
	status = "okay";
};

&aml_cc {
	status = "disabled";
};

&uart_B {
	status = "disabled";
};

&uart_C {
	status = "disabled";
};

&i2c3 {
	status = "disabled";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c3_master_pins2>;
	pinctrl-1 = <&i2c3_master_sleep_pins2>;
	clock-frequency = <400000>; /* max supported freq */

	pcf8536@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
	};
};

&spifc {
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&spifc_pins>;
	spi-nor@1 {
		compatible = "jedec,spi-nor";
		spi-max-frequency = <96000000>;
	};
	spi-nand@0 {
		compatible = "spi-nand";
		status = "disabled";
		reg = <0>;
		spi-max-frequency = <96000000>;
		bl_mode = <1>;
		fip_copies = <4>;
		fip_size = <0x200000>;
		partition = <&snand_partitions>;
		snand_partitions: snand_partitions{
			bootloader{
				offset=<0x0 0x0>;
				size=<0x0 0x0>;
			};
			tpl{
				offset=<0x0 0x0>;
				size=<0x0 0x0>;
			};
			logo{
				offset=<0x0 0x0>;
				size=<0x0 0x200000>;
			};
			recovery{
				offset=<0x0 0x0>;
				size=<0x0 0x1000000>;
			};
			boot{
				offset=<0x0 0x0>;
				size=<0x0 0x1000000>;
			};
			system{
				offset=<0x0 0x0>;
				size=<0x0 0x4000000>;
			};
			data{
				offset=<0xffffffff 0xffffffff>;
				size=<0x0 0x0>;
			};
		};
	};
};

&spicc0 {
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc0_pins1>;
	cs-gpios = <&gpio GPIOA_8 0>,
		   <&gpio GPIOA_9 0>;
};

&spicc1 {
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc1_pins1>;
	cs-gpios = <&gpio GPIOA_14 0>;
};

&uart_A {
	status = "disabled";
};

&aml_wifi {
	status = "okay";
	power_on-gpios = <&gpio GPIOM_6 GPIO_ACTIVE_HIGH>;
	interrupt-gpios= <&gpio GPIOM_13 GPIO_ACTIVE_HIGH>;
	dhd_static_buf;	//if use bcm wifi, config dhd_static_buf
	pwm_config = <&wifi_pwm_conf>;
	//single_pwm;
};

&aml_bt {
	status = "okay";
	reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
};

&bluesleep {
	status = "okay";
	bt_port_id =  <1>;
	bt_ext_wake = <&gpio       GPIOA_15       GPIO_ACTIVE_HIGH>;
	bt_host_wake = <&gpio       GPIOM_12       GPIO_ACTIVE_HIGH>;
};

&pwm_ef {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_e_pins1>;
};

&ethmac {
	status = "disabled";
	pinctrl-names = "external_eth_pins";
	pinctrl-0 = <&external_eth_pins>;
	mc_val = <0x1624>;
	internal_phy=<0>;
};

	/*8211f 1g ref setting*/
//&ethmac {
//	status = "okay";
//	pinctrl-names = "external_eth_rgmii_pins";
//	pinctrl-0 = <&external_eth_rgmii_pins>;
//	mc_val = <0x1601>;
//	cali_val = <0xb0000>;
//	internal_phy=<0>;
//};

&freertos {
	status = "disabled";
};

&rtosfmw {
	status = "okay";
	firmware = "TYPE_SECPU","secpu.bin";
};

&saradc {
	status = "okay";
	vref-supply = <&vcc_1v8>;
};

&meson_fb {
	status = "disabled";
	memory-region = "";
	display_size_default = <1920 1080 1920 1080 32>;
	mem_size = <0x00800000>;
};

&pwm_ij {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_i_pins1>;
};

&uart_E {
	status = "okay";
	pinctrl-0 = <&e_uart_pins2>;
};

&secmon {
	reserve_mem_size = <0x00600000>;
};

&jpegenc {
	status = "okay";
	memory-region = <&jpegenc_reserved>;
};

&jtag {
	status = "disabled";
};

&amlogic_unifykey {
	status = "disabled";
};

&aml_reboot {
	/* change poweroff to reset */
	sys_poweroff = <0x84000009>;
};
