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

/dts-v1/;

#include "mesont7.dtsi"
#include "partition_normal_PR_32.dtsi"
#include <dt-bindings/input/input.h>
#include "mesont7_an400-panel.dtsi"

/ {
	model = "Amlogic";
	amlogic-dt-id = "t7_a311d2_an400_4g";
	compatible = "amlogic, t7";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;

	aliases {
		serial0 = &uart_A;
		serial1 = &uart_C;
		serial2 = &uart_B;
		serial3 = &uart_D;
		serial4 = &uart_E;
		serial5 = &uart_F;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		i2c5 = &i2c5;
		i2c6 = &i2c_AO_A;
		i2c7 = &i2c_AO_B;
		spi0 = &spifc;
		spi1 = &spicc0;
		spi2 = &spicc1;
		spi3 = &spicc2;
		spi4 = &spicc3;
		spi5 = &spicc4;
		spi6 = &spicc5;
		tsensor0 = &a73_tsensor;
		tsensor1 = &a53_tsensor;
		tsensor2 = &gpu_tsensor;
		tsensor3 = &nna_tsensor;
		tsensor4 = &hevc_tsensor;
		tsensor5 = &vpu_tsensor;
	};

	memory@00000000 {
		device_type = "memory";
		linux,usable-memory = <0x00000000 0x00000000 0x00000000 0xE0000000
				       0x00000001 0x00000000 0x00000000 0x20000000>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		/* global autoconfigured region for contiguous allocations */
		ramoops@0x07400000 {
			compatible = "ramoops";
			reg = <0x0 0x07400000 0x0 0x00100000>;
			record-size = <0x20000>;
			console-size = <0x40000>;
			ftrace-size = <0x80000>;
			pmsg-size = <0x10000>;
			bconsole-size = <0x10000>;
		};

		linux,above_4g_mem {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x20000000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x1 0x0000000 0x0 0x20000000>;
		};

		secmon_reserved:linux,secmon {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x3400000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x05000000 0x0 0x3400000>;
			clear-map;
		};

		dsp_fw_reserved:linux,dsp_fw {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x1000000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x40000000 0x0 0x1000000>;
		};

		/*dsp_shm_reserved:linux,dsp_shm {      */
		/*	compatible = "dspshmem";            */
		/*	reg = <0x0 0x40820000 0x0 0x80000>; */
		/*	size = <0x80000>;                   */
		/*};*/

		logo_reserved:linux,meson-fb {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x800000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
		};

		codec_mm_cma:linux,codec_mm_cma {
			compatible = "shared-dma-pool";
			reusable;
			/* ion_codec_mm max can alloc size 80M*/
			size = <0x0 0x1b000000>;
			alignment = <0x0 0x400000>;
			linux,contiguous-region;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
			clear-map;
		};

		/*di CMA pool */
		di_cma_reserved:linux,di_cma {
			compatible = "shared-dma-pool";
			reusable;
			/* buffer_size = 3621952(yuv422 8bit)
			 *  | 4736064(yuv422 10bit)
			 *  | 4074560(yuv422 10bit full pack mode)
			 * 10x3621952=34.6M(0x23) support 8bit
			 * 10x4736064=45.2M(0x2e) support 12bit
			 * 10x4074560=40M(0x28) support 10bit
			 */
			size = <0x0 0x0B000000>;
			//size = <0x0 0x0>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};

		/*  POST PROCESS MANAGER */
		ppmgr_reserved:linux,ppmgr {
			compatible = "shared-dma-pool";
			size = <0x0 0x0>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};

		isp_cma_reserved:linux,isp_cma {
			compatible = "shared-dma-pool";
			reusable;
			status = "okay";
			size = <0x0 0x8000000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};

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

		ion_cma_reserved:linux,ion-dev {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x9800000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};
		/* secure ion for gpu,advice size is 0x8000000 */
		ion_secure_reserved:linux,ion-secure {
			compatible = "amlogic, ion-secure-mem";
			no-map;
			size = <0x0 0x0>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};
		ion_fb_reserved:linux,ion-fb {
			compatible = "shared-dma-pool";
			reusable;
			/* 1920x1080x4x3 round up 4M align */
			size = <0x0 0x1c00000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};
		/* codec shared reserved */
		codec_mm_reserved:linux,codec_mm_reserved {
			compatible = "amlogic, codec-mm-reserved";
			size = <0x0 0x0>;
			alignment = <0x0 0x100000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
			//no-map;
		};

		/*  vdin0 CMA pool */
		/*vdin0_cma_reserved:linux,vdin0_cma {*/
		/*	compatible = "shared-dma-pool";*/
		/*	reusable;*/
			/* up to 1920x1080 yuv422 8bit and 5 buffers
			 * 1920x1080x2x5 = 20 M
			 */
		/*	size = <0x0 0x01400000>;*/
		/*	alignment = <0x0 0x400000>;*/
		/*};*/
		/*  vdin1 CMA pool */
		vdin1_cma_reserved:linux,vdin1_cma {
			compatible = "shared-dma-pool";
			reusable;
			/* up to 1920x1080 yuv422 8bit and 5 buffers
			 * 1920x1080x2x5 = 20 M
			 */
			size = <0x0 0x01400000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x0 0x0 0xe0000000>;
		};
	};

	codec_mm {
		compatible = "amlogic, codec, mm";
		memory-region = <&codec_mm_cma &codec_mm_reserved>;
		dev_name = "codec_mm";
		status = "okay";
	};

	cvbsout {
		compatible = "amlogic, cvbsout-sc2";
		status = "disabled";

		/* clk path */
		/* 0:vid_pll vid2_clk */
		/* 1:gp0_pll vid2_clk */
		/* 2:vid_pll vid1_clk */
		/* 3:gp0_pll vid1_clk */
		clk_path = <0>;

		/* performance: reg_address, reg_value */
		/* tm2 */
		performance = <0x1bf0  0x9
			0x1b56  0x333
			0x1b12  0x8080
			0x1b05  0xfd
			0x1c59  0xf850
			0xffff  0x0>; /* ending flag */
		performance_sarft = <0x1bf0  0x9
			0x1b56  0x333
			0x1b12  0x0
			0x1b05  0x9
			0x1c59  0xfc48
			0xffff  0x0>; /* ending flag */
		performance_revB_telecom = <0x1bf0  0x9
			0x1b56  0x546
			0x1b12  0x8080
			0x1b05  0x9
			0x1c59  0xf850
			0xffff  0x0>; /* ending flag */
	};

	multi-di {
		//status = "okay";
		/***************************************************
		 * memory: default is 4
		 *	0:use reserved;
		 *	1:use cma;
		 *	2:use cma as reserved
		 *  4:use codec mem
		 ***************************************************/
		//flag_cma = <4>;
		//memory-region = <&di_cma_reserved>;
		/***************************************************
		 * clock-range: <min max>
		 *	default: <334 334>
		 ***************************************************/
		//clock-range = <334 334>;
		/***************************************************
		 * en_4k: t5d not support 4k
		 ***************************************************/
		en_4k = <0>;
		//keep_dec_vf = <2>;
		//po_fmt = <6>;
		/***************************************************
		 * post_nub: default is 11 (T7/T3/SC2/S4 new path)
		 * local 7*4075520 = 28
		 * post 11*5222400 = 56
		 ***************************************************/
		//post_nub = <11>;
		/***************************************************
		 * 0:not support
		 * bit 0: for 4k
		 * bit 1: for 1080p
		 ***************************************************/
		alloc_sct = <0>;
		/***************************************************
		 * hf: default is 0 (T7/T3/SC2/S4 new path)
		 * 0:not enable;
		 * 1: enable
		 ***************************************************/
		//hf = <0>;
	};

	provisionkey {
		compatible = "amlogic, provisionkey";
		status = "okay";
		key-permit-default = "write";
		//new key not need add dts if started with KEY_PROVISION_
		KEY_PROVISION_XXX { };
		//test_my_added_keyname { };
	};//End provisionkey

	unifykey{
		compatible = "amlogic,unifykey";
		status = "okay";
		unifykey-num = <19>;
		unifykey-index-0 = <&keysn_0>;
		unifykey-index-1 = <&keysn_1>;
		unifykey-index-2 = <&keysn_2>;
		unifykey-index-3 = <&keysn_3>;
		unifykey-index-4 = <&keysn_4>;
		unifykey-index-5 = <&keysn_5>;
		unifykey-index-6 = <&keysn_6>;
		unifykey-index-7 = <&keysn_7>;
		unifykey-index-8 = <&keysn_8>;
		unifykey-index-9 = <&keysn_9>;
		unifykey-index-10= <&keysn_10>;
		unifykey-index-11= <&keysn_11>;
		unifykey-index-12= <&keysn_12>;
		unifykey-index-13= <&keysn_13>;
		unifykey-index-14= <&keysn_14>;
		unifykey-index-15= <&keysn_15>;
		unifykey-index-16= <&keysn_16>;
		unifykey-index-17= <&keysn_17>;
		unifykey-index-18= <&keysn_18>;
		unifykey-index-19= <&keysn_19>;
		unifykey-index-20= <&keysn_20>;
		unifykey-index-21= <&keysn_21>;

		keysn_0: key_0{
			key-name = "usid";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_1:key_1{
			key-name = "mac";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_2:key_2{
			key-name = "hdcp";
			key-device = "secure";
			key-type = "sha1";
			key-permit = "read","write","del";
		};
		keysn_3:key_3{
			key-name = "secure_boot_set";
			key-device = "efuse";
			key-permit = "write";
		};
		keysn_4:key_4{
			key-name = "mac_bt";
			key-device = "normal";
			key-permit = "read","write","del";
			key-type  = "mac";
		};
		keysn_5:key_5{
			key-name = "mac_wifi";
			key-device = "normal";
			key-permit = "read","write","del";
			key-type = "mac";
		};
		keysn_6:key_6{
			key-name = "hdcp2_tx";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_7:key_7{
			key-name = "hdcp2_rx";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_8:key_8{
			key-name = "widevinekeybox";
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_9:key_9{
			key-name = "deviceid";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_10:key_10{
			key-name = "hdcp22_fw_private";
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_11:key_11{
			key-name = "PlayReadykeybox25";
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_12:key_12{
			key-name = "prpubkeybox";// PlayReady
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_13:key_13{
			key-name = "prprivkeybox";// PlayReady
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_14:key_14{
			key-name = "attestationkeybox";// attestation key
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_15:key_15{
			key-name = "region_code";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_16:key_16{
			key-name = "netflix_mgkid";
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_17:key_17{
			key-name = "attestationdevidbox";// attest dev id box
			key-device = "secure";
			key-permit = "read","write","del";
		};
		keysn_18:key_18{
			key-name = "oemkey";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_19:key_19{
			key-name = "lcd";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_20:key_20{
			key-name = "lcd_extern";
			key-device = "normal";
			key-permit = "read","write","del";
		};
		keysn_21:key_21{
			key-name = "backlight";
			key-device = "normal";
			key-permit = "read","write","del";
		};
	};//End unifykey

	sensor: sensor {
		compatible = "soc, sensor";
		status = "okay";
		sensor-name = "imx290"; /*imx290;os08a10;imx227*/
		pinctrl-names= "default";
		power-domains = <&pwrdm PDID_T7_MIPI_ISP>;
		clocks = <&clkc CLKID_MCLK_0>,
				<&clkc CLKID_MCLK_1>;
		clock-names = "mclk_0","mclk_1";
		pwdn = <&gpio GPIOM_5 GPIO_ACTIVE_HIGH>;
		reset = <&gpio GPIOM_11 GPIO_ACTIVE_HIGH>;
	};

	iq: iq {
		compatible = "soc, iq";
		status = "okay";
		sensor-name = "imx290"; /*imx290;os08a10;imx227*/
	};

	hdmirx {
		compatible = "amlogic, hdmirx_t7";
		#address-cells=<1>;
		#size-cells=<1>;
		/*memory-region = <&hdmirx_emp_cma_reserved>;*/
		status = "okay";
		pinctrl-names = "hdmirx_pins";
		pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
			&hdmirx_c_mux>;
		repeat = <0>;
		power-domains = <&pwrdm PDID_T7_HDMIRX>;
		interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
		clocks =<&clkc CLKID_HDMIRX_CFG>,
			   <&clkc CLKID_HDMIRX_ACR>,
			   <&clkc CLKID_HDMIRX_METER>,
			   <&clkc CLKID_HDMIRX_2M>,
			   <&clkc CLKID_HDMIRX_5M>,
			   <&clkc CLKID_HDMIRX_HDCP>,
			   <&xtal>,
			   <&clkc CLKID_FCLK_DIV4>,
			   <&clkc CLKID_FCLK_DIV5>;
		clock-names = "hdmirx_cfg_clk",
				"cts_hdmirx_acr_ref_clk",
				"cts_hdmirx_meter_clk",
				"cts_hdmirx_2m_clk",
				"cts_hdmirx_5m_clk",
				"cts_hdmirx_hdcp2x_eclk",
				"xtal",
				"fclk_div4",
				"fclk_div5";
		hdmirx_id = <0>;
		en_4k_2_2k = <0>;
		hpd_low_cec_off = <0>;
		arc_port = <1>;
		/* bit4: enable feature, bit3~0: port number */
		disable_port = <0x0>;
		/* MAP_ADDR_MODULE_CBUS */
		/* MAP_ADDR_MODULE_HIU */
		/* MAP_ADDR_MODULE_HDMIRX_CAPB3 */
		/* MAP_ADDR_MODULE_SEC_AHB */
		/* MAP_ADDR_MODULE_SEC_AHB2 */
		/* MAP_ADDR_MODULE_APB4 */
		/* MAP_ADDR_MODULE_TOP */
		/* MAP_ADDR_MODULE_CLK_CTRL */
		reg = < 0x0 0x0 0x0 0x0
			0x0 0xff63C000 0x0 0x2000
			0x0 0xffe0d000 0x0 0x2000
			0x0 0x0 0x0 0x0
			0x0 0x0 0x0 0x0
			0x0 0x0 0x0 0x0
			0x0 0xfe398000 0x0 0x18000
			0x0 0xfe000000 0x0 0x1fff>;
	};

	/* Audio Related start */
	auge_sound {
		compatible = "amlogic, auge-sound-card";
		aml-audio-card,name = "AML-AUGESOUND";

		/*avout mute gpio*/
		avout_mute-gpios = <&gpio GPIOH_2 GPIO_ACTIVE_HIGH>;
		//spk_mute-gpios = <&gpio GPIOD_2 GPIO_ACTIVE_LOW>;

		interrupts = <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "audio_exception64";

		status = "okay";

		aml-audio-card,dai-link@0 {
			format = "i2s";
			mclk-fs = <256>;
			continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			/* master mode */
			bitclock-master = <&tdma>;
			frame-master = <&tdma>;
			/* slave mode */
			/*
			 * bitclock-master = <&tdmacodec>;
			 * frame-master = <&tdmacodec>;
			 */
			/* suffix-name, sync with android audio hal used for */
			suffix-name = "alsaPORT-i2s";
			tdmacpu: cpu {
				sound-dai = <&tdma>;
				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 = <12288000>;
			};
			tdmacodec: codec {
				prefix-names = "AMP", "AMP1";
				sound-dai = <&tas5707_36 &tas5707_3a &acodec>;
			};
		};

		aml-audio-card,dai-link@1 {
			format = "i2s";
			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 used for */
			suffix-name = "alsaPORT-pcm";
			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-tx-mask =
				 *	<1 1 1 1 1 1 1 1>;
				 * dai-tdm-slot-rx-mask =
				 *	<1 1 1 1 1 1 1 1>;
				 * dai-tdm-slot-num = <8>;
				 */
				dai-tdm-slot-width = <32>;
				system-clock-frequency = <12288000>;
			};
			tdmbcodec: codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@2 {
			format = "i2s";
			mclk-fs = <256>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			/* master mode */
			bitclock-master = <&tdmc>;
			frame-master = <&tdmc>;
			/* slave mode */
			//bitclock-master = <&tdmccodec>;
			//frame-master = <&tdmccodec>;
			/* suffix-name, sync with android audio hal used for */
			//suffix-name = "alsaPORT-tdm";
			cpu {
				sound-dai = <&tdmc>;
				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 = <12288000>;
			};
			tdmccodec: codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@3 {
			mclk-fs = <64>;
			/* suffix-name, sync with android audio hal used for */
			suffix-name = "alsaPORT-pdm";
			cpu {
				sound-dai = <&pdm>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@4 {
			mclk-fs = <128>;
			continuous-clock;
			/* suffix-name, sync with android audio hal used for */
			suffix-name = "alsaPORT-spdif";
			cpu {
				sound-dai = <&spdifa>;
				system-clock-frequency = <6144000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@5 {
			mclk-fs = <128>;
			suffix-name = "alsaPORT-spdifb";
			cpu {
				sound-dai = <&spdifb>;
				system-clock-frequency = <6144000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@6 {
			mclk-fs = <256>;
			suffix-name = "alsaPORT-tv";
			cpu {
				sound-dai = <&extn>;
				system-clock-frequency = <12288000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};

//		aml-audio-card,dai-link@7 {
//			mclk-fs = <256>;
//			suffix-name = "alsaPORT-earc";
//			cpu {
//				sound-dai = <&earc>;
//				system-clock-frequency = <12288000>;
//			};
//			codec {
//				sound-dai = <&dummy_codec>;
//			};
//		};

		aml-audio-card,dai-link@7 {
			mclk-fs = <256>;
			continuous-clock;
			suffix-name = "alsaPORT-loopback";
			cpu {
				sound-dai = <&loopbacka>;
				system-clock-frequency = <12288000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};
	};
	/* Audio Related end */

	picdec {
		compatible = "amlogic, picdec";
		status = "okay";
	};

	ppmgr {
		compatible = "amlogic, ppmgr";
		memory-region = <&ppmgr_reserved>;
		dev_name = "ppmgr";
		status = "okay";
	};

	video_queue {
		compatible = "amlogic, video_queue";
		dev_name = "videoqueue";
		status = "okay";
	};

	amdolby_vision {
		compatible = "amlogic, dolby_vision_t7";
		dev_name = "aml_amdolby_vision_driver";
		status = "okay";
		tv_mode = <1>;/*1:enabel ;0:disable*/
	};

    /* SMC */
//	smartcard {
//		compatible = "amlogic,smartcard-sc2";
//		dev_name = "smartcard";
//		status = "disabled";
//
//		reg = <0x0 0xfe000000 0x0 0x480000>;
//		irq_trigger_type = "GPIO_IRQ_LOW";
//
//		reset_pin-gpios = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
//		detect_pin-gpios = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
//		enable_5v3v_pin-gpios = <&gpio GPIOT_11 GPIO_ACTIVE_HIGH>;
//		enable_pin-gpios = <&gpio GPIOT_12 GPIO_ACTIVE_HIGH>;
//
//		interrupts = <0 174 1>;
//		interrupt-names = "smc0_irq";
//
//		//Smc clock source, if change this,
//		//you must adjust clk and divider in smartcard.c
//
//		smc0_clock_source = <0>;
//		//0: high voltage on detect pin indicates card in.
//		smc0_det_invert = <0>;
//		smc0_5v3v_level = <0>;
//		//Ordinarily,smartcard controller needs a enable pin.
//		smc_need_enable_pin = "yes";
//		reset_level = <0>;
//		smc0_enable_level = <0>;
//
//		pinctrl-names = "default";
//		pinctrl-0 = <&sd_iso7816_pins>;
//		clocks = <&clkc CLKID_SC_CLK_GATE>;
//		clock-names = "smartcard";
//	};

	dvb-extern {
		compatible = "amlogic, dvb-extern";
		dev_name = "dvb-extern";
		/*GPIOT-19 conflict with audio speaker */
		status = "disabled";

		fe_num = <2>;
		fe0_demod = "cxd2856";
		fe0_i2c_adap_id = <&i2c5>;
		fe0_demod_i2c_addr = <0xD8>;
		fe0_reset_value = <0>;
		fe0_reset_gpio = <&gpio GPIOT_19 GPIO_ACTIVE_HIGH>;
		fe0_reset_dir = <1>; /* 0: out, 1: in. */
		fe0_ant_poweron_value = <0>;
		fe0_ant_power_gpio = <&gpio GPIOT_18 GPIO_ACTIVE_HIGH>;
		fe0_ts  = <0>;
		fe0_tuner0 = <0>; /* T/C */
		fe0_tuner1 = <1>; /* S */

		fe1_demod = "cxd2856";
		fe1_i2c_adap_id = <&i2c5>;
		fe1_demod_i2c_addr = <0xCA>;
		fe1_reset_value = <0>;
		fe1_reset_gpio = <&gpio GPIOT_19 GPIO_ACTIVE_HIGH>;
		fe1_reset_dir = <1>; /* 0: out, 1: in. */
		fe1_ant_poweron_value = <0>;
		fe1_ant_power_gpio = <&gpio GPIOT_18 GPIO_ACTIVE_HIGH>;
		fe1_ts  = <1>;
		fe1_tuner0 = <0>; /* T/C */
		fe1_tuner1 = <1>; /* S */

		tuner_num = <2>; /* for extern demod use tuner */
		tuner0_name = "r836_tuner";
		tuner1_name = "av2018_tuner";
	};

	dvb-demux {
		compatible = "amlogic sc2, dvb-demux";
		dev_name = "dvb-demux";
		status = "okay";

		reg = <0x0 0xfe000000 0x0 0x480000>;

		dmxdev_num = <3>;

		tsn_from = "demod";

		/*single demod setting */
		ts0_sid = <0x20>;
		ts0 = "serial-4wire"; /* tsinA: serial-4wire, serial-3wire */
		ts0_control = <0x0>;
		ts0_invert = <0>;

		ts1_sid = <0x21>;
		ts1 = "serial-4wire";
		ts1_control = <0x0>;
		ts1_invert = <0>;

		pinctrl-names = "s_ts0", "s_ts1";
		pinctrl-0 = <&dvb_s_ts0_pins>;
		pinctrl-1 = <&dvb_s_ts1_pins>;
	};

	ionvideo {
		compatible = "amlogic, ionvideo";
		dev_name = "ionvideo";
		status = "okay";
	};

	amlvideo2_0 {
		compatible = "amlogic, amlvideo2";
		dev_name = "amlvideo2";
		status = "okay";
		amlvideo2_id = <0>;
		cma_mode = <1>;
	};

	amlvideo2_1 {
		compatible = "amlogic, amlvideo2";
		dev_name = "amlvideo2";
		status = "okay";
		amlvideo2_id = <1>;
		cma_mode = <1>;
	};

	adc_keypad {
		compatible = "amlogic, adc_keypad";
		status = "okay";
		key_name = "update", "vol-", "vol+", "enter";
		key_num = <4>;
		io-channels = <&saradc 2>;
		io-channel-names = "key-chan-2";
		key_chan = <2 2 2 2>;
		key_code = <141 114 115 28>;
		key_val = <0 143 266 389>; //val=voltage/1800mV*1023
		key_tolerance = <40 40 40 40>;
	};
};

&audiobus {
	tdma:tdm@0 {
		compatible = "amlogic, t7-snd-tdma";
		#sound-dai-cells = <0>;

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

		clocks = <&clkaudio CLKID_AUDIO_MCLK_A
				&clkaudio CLKID_AUDIO_MCLK_PAD1
				&clkc CLKID_MPLL0
				&clkc CLKID_MPLL1
				&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
		clock-names = "mclk", "mclk_pad", "clk_srcpll",
			"samesource_srcpll", "samesource_clk";

		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&mclk_1_pins
			&tdm_a_pins
			&tdm_d4_pins
			&tdm_d5_pins
			&tdm_clk_pins>;

		/*
		 * 0: tdmout_a;
		 * 1: tdmout_b;
		 * 2: tdmout_c;
		 * 3: spdifout;
		 * 4: spdifout_b;
		 */
		samesource_sel = <3>;

		/* In for ACODEC_ADC */
		tdmin-src-name = "acodec_adc";
		/*enable default mclk(12.288M), before extern codec start*/
		start_clk_enable = <1>;

		/*tdm clk tuning enable*/
		clk_tuning_enable = <1>;
		status = "okay";

		/* !!!For --TV platform-- ONLY */
		Channel_Mask {
			/*i2s has 4 pins, 8channel, mux output*/
			Spdif_samesource_Channel_Mask = "i2s_2/3";
		};
	};

	tdmb:tdm@1 {
		compatible = "amlogic, t7-snd-tdmb";
		#sound-dai-cells = <0>;

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

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

		status = "okay";
	};

	tdmc:tdm@2 {
		compatible = "amlogic, t7-snd-tdmc";
		#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-clk-sel = <2>;

		clocks = <&clkaudio CLKID_AUDIO_MCLK_C
				&clkc CLKID_MPLL2>;
		clock-names = "mclk", "clk_srcpll";
		status = "okay";
	};

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

		clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
			&clkc CLKID_FCLK_DIV3
			&clkc CLKID_MPLL3
			&clkaudio CLKID_AUDIO_PDMIN0
			&clkaudio CLKID_AUDIO_PDMIN1>;
		clock-names = "gate",
			"sysclk_srcpll",
			"dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk";

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

		/* mode 0~4, defalut:1 */
		filter_mode = <1>;

		train_sample_count = <0xb>;

		status = "okay";
	};

	spdifa:spdif@0 {
		compatible = "amlogic, tm2-revb-snd-spdif-a";
		#sound-dai-cells = <0>;

		clocks = <&clkc CLKID_MPLL0
				&clkc CLKID_FCLK_DIV4
				&clkaudio CLKID_AUDIO_GATE_SPDIFIN
				&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
				&clkaudio CLKID_AUDIO_SPDIFIN
				&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
		clock-names = "sysclk", "fixed_clk", "gate_spdifin",
				"gate_spdifout", "clk_spdifin", "clk_spdifout";
		interrupts =
				<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;

		interrupt-names = "irq_spdifin";
		pinctrl-names = "spdif_pins", "spdif_pins_mute";
		pinctrl-0 = <&spdifout_d>;
		pinctrl-1 = <&spdifout_d_mute>;

		samesource_sel = <4>;

		/*spdif clk tuning enable*/
		clk_tuning_enable = <1>;
		status = "okay";
	};
	spdifb:spdif@1 {
		compatible = "amlogic, tm2-revb-snd-spdif-b";
		#sound-dai-cells = <0>;
		clocks = <&clkc CLKID_MPLL2 /*CLKID_HIFI_PLL*/
				&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B
				&clkaudio CLKID_AUDIO_SPDIFOUT_B>;
		clock-names = "sysclk",
				"gate_spdifout", "clk_spdifout";

		status = "okay";
	};

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

		interrupts =
				<GIC_SPI 42 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq_frhdmirx";

		status = "okay";
	};

	aed:effect {
		compatible = "amlogic, snd-effect-v4";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC
			&clkc CLKID_FCLK_DIV5
			&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 = <0>;
		/* max 0xf, each bit for one lane, usually one lane */
		lane_mask = <0x1>;
		/* max 0xff, each bit for one channel */
		channel_mask = <0xff>;

		status = "okay";
	};

	asrca:resample@0 {
		compatible = "amlogic, t5-resample-a";
		clocks = <&clkc CLKID_MPLL1
			&clkaudio CLKID_AUDIO_MCLK_B
			&clkaudio CLKID_AUDIO_RESAMPLE_A>;
		clock-names = "resample_pll", "resample_src", "resample_clk";

		/*same with toddr_src
		 *	TDMIN_A,    0
		 *	TDMIN_B,    1
		 *	TDMIN_C,    2
		 *	SPDIFIN,    3
		 *	PDMIN,      4
		 *	FRATV,      5
		 *	TDMIN_LB,   6
		 *	LOOPBACK_A, 7
		 *	FRHDMIRX,   8
		 *	LOOPBACK_B, 9
		 *	SPDIFIN_LB, 10
		 *	EARC_RX,    11
		 */
		resample_module = <8>;

		status = "okay";
	};

	asrcb:resample@1 {
		compatible = "amlogic, t5-resample-b";
		clocks = <&clkc CLKID_MPLL3
			&clkaudio CLKID_AUDIO_MCLK_F
			&clkaudio CLKID_AUDIO_RESAMPLE_B>;
		clock-names = "resample_pll", "resample_src", "resample_clk";

		/*this resample is only used for loopback_A.*/
		capture_sample_rate = <16000>;

		status = "okay";
	};

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

		clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD
			&clkc CLKID_FCLK_DIV5
			&clkaudio CLKID_AUDIO_VAD>;
		clock-names = "gate", "pll", "clk";

		interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING
				GIC_SPI 44 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq_wakeup", "irq_frame_sync";

		/*
		 * Data src sel:
		 * 0: tdmin_a;
		 * 1: tdmin_b;
		 * 2: tdmin_c;
		 * 3: spdifin;
		 * 4: pdmin;
		 * 5: loopback_b;
		 * 6: tdmin_lb;
		 * 7: loopback_a;
		 */
		src = <4>;

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

		status = "okay";
	};

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

		clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
			&clkc CLKID_FCLK_DIV3
			&clkc CLKID_MPLL3
			&clkaudio CLKID_AUDIO_PDMIN0
			&clkaudio CLKID_AUDIO_PDMIN1
			&clkc CLKID_MPLL0
			&clkaudio CLKID_AUDIO_MCLK_A>;
		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 = <4>;
		datain_chmask = <0xf>;
		/* config which data pin for loopback */
		datain-lane-mask-in = <1 0 1 0>;

		/* 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 = <0>;
		datalb_chnum = <2>;
		datalb_chmask = <0x3>;
		/* config which data pin as loopback */
		datalb-lane-mask-in = <1 0 0 0>;

		status = "okay";
	};

	loopbackb:loopback@1 {
		compatible = "amlogic, t5-loopbackb";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
			&clkc CLKID_FCLK_DIV3
			&clkc CLKID_MPLL3
			&clkaudio CLKID_AUDIO_PDMIN0
			&clkaudio CLKID_AUDIO_PDMIN1
			&clkc CLKID_MPLL0
			&clkaudio CLKID_AUDIO_MCLK_A>;
		clock-names = "pdm_gate",
			"pdm_sysclk_srcpll",
			"pdm_dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk",
			"tdminlb_mpll",
			"tdminlb_mclk";

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

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

		/* 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>;

		status = "disabled";
	};
}; /* end of audiobus */

&earc {
	status = "disabled";
};

&crg_udc_2 {
	status = "okay";
};

&crg_udc_3 {
	status = "disable";
};

&crg20_otg {
	status = "disable";
	controller-type = <3>;
};

&crg21_otg {
	status = "okay";
	controller-type = <3>;
};

&crg2_drd {
	compatible = "amlogic, crg-drd";
	/*compatible = "amlogic, crg-host-drd";*/
	status = "okay";
};

&crg3_drd {
	compatible = "amlogic, crg-host-drd";
	/*compatible = "amlogic, crg-drd";*/
	status = "okay";
};

&crg_phy_20 {
	status = "okay";
	portnum = <1>;
	gpio-vbus-power = "GPIOM_8";
	gpios = <&gpio GPIOM_8 GPIO_ACTIVE_HIGH>;
};

&crg_phy_21 {
	status = "okay";
	portnum = <1>;
	gpio-vbus-power = "GPIOM_9";
	gpios = <&gpio GPIOM_9 GPIO_ACTIVE_HIGH>;
};

&crg3_phy_20 {
	status = "okay";
	portnum = <1>;
};

&crg3_phy_21 {
	status = "okay";
	portnum = <0>;
};

&pcie {
	reset-gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
	status = "disable";
};

&i2c1 {
	status = "okay";
	pinctrl-names="default";
	pinctrl-0=<&i2c1_pins1>;

	tas5707_36: tas5707_36@1b {
		compatible = "ti,tas5707";
		#sound-dai-cells = <0>;
		reg = <0x1b>;
		status = "okay";
		reset_pin = <&gpio GPIOT_19 GPIO_ACTIVE_HIGH>;
	};

	tas5707_3a: tas5707_3a@1d {
		compatible = "ti,tas5707";
		#sound-dai-cells = <0>;
		reg = <0x1d>;
		status = "okay";
	};
};

&i2c2 {
	status = "okay";
	pinctrl-names = "default";//, "sleep"
	pinctrl-0 = <&i2c2_pins3>;
	//pinctrl-1 = <&i2c2_sleep_pins2>;
	clock-frequency = <100000>; /* default 100k */
	sensor-i2c@6c {
		compatible = "arm, i2c-sensor";
		reg = <0x6c>;
		reg-names = "i2c-sensor";
		slave-addr = <0x6c>;
		reg-type = <2>;
		reg-data-type = <1>;
		link-device = <&phycsi>;
	};
};

&i2c5 {
	status = "okay";
	pinctrl-names = "default";//, "sleep"
	pinctrl-0 = <&i2c5_pins1>;
	//pinctrl-1 = <&i2c2_sleep_pins2>;
	clock-frequency = <100000>; /* default 100k */
};

/* SDIO */
&sd_emmc_a {
	status = "okay";
	pinctrl-0 = <&sdio_pins>;
	pinctrl-1 = <&sdio_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
	#address-cells = <1>;
	#size-cells = <0>;

	bus-width = <4>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	max-frequency = <200000000>;

	non-removable;
	disable-wp;

	//vmmc-supply = <&vddao_3v3>;
	//vqmmc-supply = <&vddio_ao1v8>;

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

/* SD card */
&sd_emmc_b {
	status = "okay";
	pinctrl-0 = <&sd_all_pins>;
	pinctrl-1 = <&sd_1bit_pins>;
	pinctrl-2 = <&sd_clk_gate_pins>;
	pinctrl-names = "sd_default",
			"sd_1bit_pins",
			"clk-gate";
	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>;
	//vmmc-supply = <&vddao_3v3>;
	//vqmmc-supply = <&emmc_1v8>;
};

&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_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;
	mmc-hs400-1_8v;
	max-frequency = <200000000>;
	non-removable;
	disable-wp;

//	mmc-pwrseq = <&emmc_pwrseq>;
//	vmmc-supply = <&vddao_3v3>;
//	vqmmc-supply = <&vddao_1v8>;
};

&saradc {
	status = "okay";
};

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

&uart_A {
	status = "okay";
};

&isp {
	status = "okay";
	temper-line-offset = <0x1680>;
	temper-buf-size = <12>;
	temper-frame-num = <1>;
	temper-frame-size = <0xBDD800>;
	memory-region = <&isp_cma_reserved>;
};

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

&ir {
	status = "disabled";
	pinctrl-0 = <&remote_pins>;
	pinctrl-names = "default";
};

&spifc {
	status = "disabled";
	spi-nor@0 {
		status = "disabled";
	};
};

&fb {
	status = "okay";
	display_size_default = <1920 1080 1920 2160 32>;
	mem_size = <0x00800000 0x1980000 0x100000 0x100000 0x100000>;
	logo_addr = "0x3f800000";
	mem_alloc = <0>;
	pxp_mode = <0>; /** 0:normal mode 1:pxp mode */
};

&amhdmitx {
	status = "okay";
};

/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
	/*memory-region = <&vdin0_cma_reserved>;*/
	status = "okay";
	/*MByte, if 10bit disable: 64M(YUV422),
	 *if 10bit enable: 64*1.5 = 96M(YUV422)
	 *if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
	 *if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
	 *if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
	 *if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
	 * onebuffer:
	 * worst case:(4096*2160*3 + 2M(afbce issue)) = 27.5M
	 * dw:960x540x3 = 1.5M
	 * total size:(27.5+1.5)x buffernumber
	 */
	cma_size = <300>;
	frame_buff_num = <11>;
};

&vdin1 {
	memory-region = <&vdin1_cma_reserved>;
	status = "okay";
};

&periphs_pinctrl {
	pdmin_pins: pdmin_pin {
		mux { /* GPIOM_3, GPIOM_4, GPIOM_5, GPIOM_1, GPIOM_2 */
			groups = "pdm_dclk",
				"pdm_din0",
				"pdm_din1_m5",
				"pdm_din2",
				"pdm_din3";
			function = "pdm";
		};
	};

	tdm_a_pins: tdm_a_pin {
		mux { /* GPIOT_1, GPIOT_2, GPIOT_5, GPIOT_6 */
			groups = "tdm_sclk1",
				"tdm_fs1",
				"tdm_d4",
				"tdm_d5";
			function = "tdm";
		};
	};

    dvb_s_ts0_pins: dvb_s_ts0_pins {
		tsin_a {
			groups = "tsin_a_sop_t",
				   "tsin_a_valid_t",
				   "tsin_a_clk_t",
				   "tsin_a_din0_t";
			function = "tsin_a";
		};
	};

	dvb_s_ts1_pins: dvb_s_ts1_pins {
		tsin_b {
			groups = "tsin_b_sop",
				   "tsin_b_valid",
				   "tsin_b_clk",
				   "tsin_b_din0";
			function = "tsin_b";
		};
	};

	lcd_vbyone_a_off_pins: lcd_vbyone_a_off_pin {
		mux {
			groups = "GPIOY_10","GPIOY_12";
			function = "gpio_periphs";
			input-enable;
		};
	};

	lcd_vbyone_b_off_pins: lcd_vbyone_b_off_pin {
		mux {
			groups = "GPIOY_11","GPIOY_13";
			function = "gpio_periphs";
			input-enable;
		};
	};

	lcd_edp_a_off_pins: lcd_edp_a_off_pin {
		mux {
			groups = "GPIOY_10";
			function = "gpio_periphs";
			input-enable;
		};
	};

	lcd_edp_b_off_pins: lcd_edp_b_off_pin {
		mux {
			groups = "GPIOY_11";
			function = "gpio_periphs";
			input-enable;
		};
	};

	bl_pwm_vs_on_pins:bl_pwm_vs_on_pin {
		mux {
			groups = "pwm_vs_y";
			function = "pwm_vs";
		};
	};

	bl_pwm_off_pins:bl_pwm_off_pin {
		mux {
			groups = "GPIOY_1";
			function = "gpio_periphs";
			output-low;
		};
	};

	bl1_pwm_off_pins:bl1_pwm_off_pin {
		mux {
			groups = "GPIOY_8";
			function = "gpio_periphs";
			output-low;
		};
	};
};

&pinctrl_audio {
	tdm_d4_pins: tdm_d4_pin {
		mux {
			groups = "tdm_d4";
			function = "tdmouta_lane0";
		};
	};

	tdm_d5_pins: tdm_d5_pin {
		mux {
			groups = "tdm_d5";
			function = "tdmouta_lane1";
		};
	};

	tdm_clk_pins: tdm_clk_pin {
		mux {
			groups = "tdm_sclk1", "tdm_lrclk1";
			function = "tdm_clk_outa";
		};
	};
};

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

&amlvecm {
	status = "okay";
	gamma_en = <0>;/*1:enabel ;0:disable*/
	wb_en = <0>;/*1:enabel ;0:disable*/
	cm_en = <0>;/*1:enabel ;0:disable*/
	wb_sel = <0>;/*1:mtx ;0:gainoff*/
	vlock_en = <1>;/*1:enable;0:disable*/
	vlock_mode = <0x8>;
	/*vlock work mode:
	 *bit0:auto ENC
	 *bit1:auto PLL
	 *bit2:manual PLL
	 *bit3:manual ENC
	 *bit4:manual soft ENC
	 *bit5:manual MIX PLL ENC
	 */
	 vlock_pll_m_limit = <1>;
	 vlock_line_limit = <2>;
};

&aml_wifi{
	status = "okay";
	interrupt-gpios = <&gpio  GPIOX_7  GPIO_ACTIVE_HIGH>;
	power_on-gpios = <&gpio   GPIOX_6  GPIO_ACTIVE_HIGH>;
};

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

&pwm_ab {
	pinctrl-0 = <&pwm_a_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&pwm_ef {
	status = "okay";
};

&irblaster {
	status = "okay";
};

&uart_C {
	status = "okay";
	uart-has-rtscts;
};

&pwmao_ab {
	status = "okay";
};

&pwmao_cd {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_ao_d_pins>;
	status = "okay";
};

&vddcpua {
	status = "okay";
};

&vddcpub {
	status = "okay";
};

&CPU0 {
	cpu-supply = <&vddcpua>;
	multi_tables_available;
	operating-points-v2 = <&a73pwm_opp_table0>,
		<&a73pwm_opp_table1>,
		<&a73pwm_opp_table2>,
		<&a73pwm_opp_table3>;
};

&CPU1 {
	cpu-supply = <&vddcpua>;
	multi_tables_available;
	operating-points-v2 = <&a73pwm_opp_table0>,
		<&a73pwm_opp_table1>,
		<&a73pwm_opp_table2>,
		<&a73pwm_opp_table3>;
};

&CPU2 {
	cpu-supply = <&vddcpua>;
	multi_tables_available;
	operating-points-v2 = <&a73pwm_opp_table0>,
		<&a73pwm_opp_table1>,
		<&a73pwm_opp_table2>,
		<&a73pwm_opp_table3>;
};

&CPU3 {
	cpu-supply = <&vddcpua>;
	multi_tables_available;
	operating-points-v2 = <&a73pwm_opp_table0>,
		<&a73pwm_opp_table1>,
		<&a73pwm_opp_table2>,
		<&a73pwm_opp_table3>;
};

&CPU4 {
	cpu-supply = <&vddcpub>;
	multi_tables_available;
	operating-points-v2 = <&a53pwm_opp_table0>,
		<&a53pwm_opp_table1>,
		<&a53pwm_opp_table2>,
		<&a53pwm_opp_table3>;
};

&CPU5 {
	cpu-supply = <&vddcpub>;
	multi_tables_available;
	operating-points-v2 = <&a53pwm_opp_table0>,
		<&a53pwm_opp_table1>,
		<&a53pwm_opp_table2>,
		<&a53pwm_opp_table3>;
};

&CPU6 {
	cpu-supply = <&vddcpub>;
	multi_tables_available;
	operating-points-v2 = <&a53pwm_opp_table0>,
		<&a53pwm_opp_table1>,
		<&a53pwm_opp_table2>,
		<&a53pwm_opp_table3>;
};

&CPU7 {
	cpu-supply = <&vddcpub>;
	multi_tables_available;
	operating-points-v2 = <&a53pwm_opp_table0>,
		<&a53pwm_opp_table1>,
		<&a53pwm_opp_table2>,
		<&a53pwm_opp_table3>;
};
