/*
 * arch/arm64/boot/dts/amlogic/g12b_a311d_skt.dts
 *
 * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 */

/dts-v1/;

#include "partition_mbox_normal.dtsi"
#include "mesong12b.dtsi"
#include "mesong12b_skt-panel.dtsi"

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

	aliases {
		serial0 = &uart_AO;
		serial1 = &uart_A;
		serial2 = &uart_B;
		serial3 = &uart_C;
		serial4 = &uart_AO_B;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c_AO;
		tsensor0 = &p_tsensor;
		tsensor1 = &d_tsensor;
	};

	memory@00000000 {
		device_type = "memory";
		linux,usable-memory = <0x0 0x0 0x0 0x80000000>;
	};

	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 = <0x20000>;
		};

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

		secos_reserved:linux,secos {
			status = "disable";
			compatible = "amlogic, aml_secos_memory";
			reg = <0x0 0x05300000 0x0 0x2000000>;
			no-map;
		};
		logo_reserved:linux,meson-fb {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x800000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x7f800000 0x0 0x800000>;
		};
		ion_cma_reserved:linux,ion-dev {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x8000000>;
			alignment = <0x0 0x400000>;
		};

		//di_reserved:linux,di {
			//compatible = "amlogic, di-mem";
			/* buffer_size = 3621952(yuv422 8bit) */
			/* 4179008(yuv422 10bit full pack mode) */
			/** 10x3621952=34.6M(0x23) support 8bit **/
			/** 10x4736064=45.2M(0x2e) support 12bit **/
			/** 10x4179008=40M(0x28) support 10bit **/
			//size = <0x0 0x2800000>;
			//no-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 0x02800000>;
			alignment = <0x0 0x400000>;
		};
		/*  POST PROCESS MANAGER */
		ppmgr_reserved:linux,ppmgr {
			compatible = "shared-dma-pool";
			size = <0x0 0x0>;
		};
		codec_mm_cma:linux,codec_mm_cma {
			compatible = "shared-dma-pool";
			reusable;
			/* ion_codec_mm max can alloc size 80M*/
			size = <0x0 0x13400000>;
			alignment = <0x0 0x400000>;
			linux,contiguous-region;
		};
		/* codec shared reserved */
		codec_mm_reserved:linux,codec_mm_reserved {
			compatible = "amlogic, codec-mm-reserved";
			size = <0x0 0x0>;
			alignment = <0x0 0x100000>;
			//no-map;
		};
		/*  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>;
		};
		galcore_reserved:linux,galcore {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x0>;
			alignment = <0x0 0x400000>;
			linux,contiguous-region;
		};

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

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

	cma_shrinker {
		compatible = "amlogic, cma-shrinker";
		status = "okay";
		adj  = <0 100 200 250 900 950>;
		free = <8192 12288 16384 24576 28672 32768>;
	};

	galcore {
		status = "okay";
		memory-region = <&galcore_reserved>;
	};
	cvbsout {
		compatible = "amlogic, cvbsout-g12b";
		dev_name = "cvbsout";
		status = "okay";
		clocks = <&clkc CLKID_VCLK2_ENCI
			&clkc CLKID_VCLK2_VENCI0
			&clkc CLKID_VCLK2_VENCI1
			&clkc CLKID_DAC_CLK>;
		clock-names = "venci_top_gate",
			"venci_0_gate",
			"venci_1_gate",
			"vdac_clk_gate";
		clk_path = <0>;

		/* performance: reg_address, reg_value */
		/* g12b */
		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 */
	};

	bt-dev{
		compatible = "amlogic, bt-dev";
		dev_name = "bt-dev";
		status = "okay";
		gpio_reset = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
		gpio_hostwake = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
	};

	wifi{
		compatible = "amlogic, aml_wifi";
		dev_name = "aml_wifi";
		status = "okay";
		interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
		irq_trigger_type = "GPIO_IRQ_LOW";
		power_on_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
		dhd_static_buf;	//if use bcm wifi, config dhd_static_buf
		pinctrl-names = "default";
		pinctrl-0 = <&pwm_e_pins>;
		pwm_config = <&wifi_pwm_conf>;
	};

	wifi_pwm_conf:wifi_pwm_conf{
		pwm_channel1_conf {
			pwms = <&pwm_ef MESON_PWM_0 30541 0>;
			duty-cycle = <15270>;
			times = <10>;
		};
		pwm_channel2_conf {
			pwms = <&pwm_ef MESON_PWM_2 30500 0>;
			duty-cycle = <15250>;
			times = <12>;
		};
	};

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

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

	deinterlace {
		compatible = "amlogic, deinterlace";
		status = "okay";
		/* 0:use reserved; 1:use cma; 2:use cma as reserved */
		flag_cma = <1>;
		//memory-region = <&di_reserved>;
		memory-region = <&di_cma_reserved>;
		interrupts = <0 46 1
				0 40 1>;
		interrupt-names = "pre_irq", "post_irq";
		clocks = <&clkc CLKID_VPU_CLKB_TMP_COMP>,
			<&clkc CLKID_VPU_CLKB_COMP>;
		clock-names = "vpu_clkb_tmp_composite",
			"vpu_clkb_composite";
		clock-range = <334 667>;
		/* buffer-size = <3621952>;(yuv422 8bit) */
		buffer-size = <4074560>;/*yuv422 fullpack*/
		/* reserve-iomap = "true"; */
		/* if enable nr10bit, set nr10bit-support to 1 */
		post-wr-support = <1>;
		nr10bit-support = <1>;
		nrds-enable = <1>;
		pps-enable = <1>;
	};
	ionvideo {
		compatible = "amlogic, ionvideo";
		dev_name = "ionvideo";
		status = "okay";
	};

	gpio_keypad {
		compatible = "amlogic, gpio_keypad";
		status = "okay";
		scan_period = <20>;
		key_num = <1>;
		key_name = "power";
		key_code = <116>;
		key-gpios = <&gpio_ao  GPIOAO_3  GPIO_ACTIVE_HIGH>;
		detect_mode = <0>;/*0:polling mode, 1:irq mode*/
	};

	adc_keypad {
		compatible = "amlogic, adc_keypad";
		status = "okay";
		key_name = "menu", "vol-", "vol+", "esc", "home";
		key_num = <5>;
		io-channels = <&saradc SARADC_CH2>;
		io-channel-names = "key-chan-2";
		key_chan = <SARADC_CH2 SARADC_CH2 SARADC_CH2
			SARADC_CH2 SARADC_CH2>;
		key_code = <139 114 115 1 102>;
		key_val = <0 143 266 389 512>; //val=voltage/1800mV*1023
		key_tolerance = <40 40 40 40 40>;
	};

	unifykey{
		compatible = "amlogic, unifykey";
		status = "ok";
		unifykey-num = <16>;
		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>;


		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 = "netflix_mgkid";
			key-device = "secure";
			key-permit = "read","write","del";
		};
	};//End unifykey

	efusekey:efusekey{
		keynum = <4>;
		key0 = <&key_0>;
		key1 = <&key_1>;
		key2 = <&key_2>;
		key3 = <&key_3>;
		key_0:key_0{
			keyname = "mac";
			offset = <0>;
			size = <6>;
		};
		key_1:key_1{
			keyname = "mac_bt";
			offset = <6>;
			size = <6>;
		};
		key_2:key_2{
			keyname = "mac_wifi";
			offset = <12>;
			size = <6>;
		};
		key_3:key_3{
			keyname = "usid";
			offset = <18>;
			size = <16>;
		};
	};//End efusekey


	amlvecm {
		compatible = "amlogic, vecm";
		dev_name = "aml_vecm";
		status = "okay";
		gamma_en = <0>;/*1:enabel ;0:disable*/
		wb_en = <0>;/*1:enabel ;0:disable*/
		cm_en = <0>;/*1:enabel ;0:disable*/
	};
	amdolby_vision {
		compatible = "amlogic, dolby_vision_g12a";
		dev_name = "aml_amdolby_vision_driver";
		status = "okay";
		tv_mode = <0>;/*1:enabel ;0:disable*/
	};

	/* Audio Related start */
	pdm_codec:dummy{
		#sound-dai-cells = <0>;
		compatible = "amlogic, pdm_dummy_codec";
		status = "okay";
	};
	dummy_codec:dummy{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_dummy_codec";
		status = "okay";
	};
	amlogic_codec:t9015{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_codec_T9015";
		reg = <0x0 0xFF632000 0x0 0x2000>;
		is_auge_used = <1>; /* meson or auge chipset used */
		tdmout_index = <1>;
		status = "okay";
	};
	audio_effect:eqdrc{
		/*eq_enable = <1>;*/
		/*drc_enable = <1>;*/
		/*
		 * 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>;
	};
	auge_sound {
		compatible = "amlogic, g12a-sound-card";
		aml-audio-card,name = "AML-AUGESOUND";


		//aml-audio-card,aux-devs = <&amlogic_codec>;
		/*avout mute gpio*/
		avout_mute-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
		/*for audio effect ,eqdrc */
		aml-audio-card,effect = <&audio_effect>;

		aml-audio-card,dai-link@0 {
			format = "dsp_a";
			mclk-fs = <512>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			//bitclock-master = <&tdmacodec>;
			//frame-master = <&tdmacodec>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-pcm";
			tdmacpu: cpu {
				sound-dai = <&aml_tdma>;
				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 = <24576000>;
			};
			tdmacodec: codec {
				sound-dai = <&dummy_codec &dummy_codec>;
			};
		};

		aml-audio-card,dai-link@1 {
			format = "i2s";
			mclk-fs = <256>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			bitclock-master = <&aml_tdmb>;
			frame-master = <&aml_tdmb>;
			//bitclock-master = <&tdmbcodec>;
			//frame-master = <&tdmbcodec>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-i2s";
			cpu {
				sound-dai = <&aml_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 = <12288000>;
			};
			tdmbcodec: codec {
				sound-dai = <&dummy_codec &dummy_codec
				&amlogic_codec &ad82584f_62>;
			};
		};

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

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

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

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

		aml-audio-card,dai-link@7 {
			format = "i2s";
			mclk-fs = <256>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			bitclock-master = <&tdmlb>;
			frame-master = <&tdmlb>;
			cpu {
				sound-dai = <&tdmlb>;
				dai-tdm-slot-rx-mask = <1 1>;
				dai-tdm-slot-num = <2>;
				dai-tdm-slot-width = <32>;
				system-clock-frequency = <12288000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};
	};
	audiolocker: locker {
		compatible = "amlogic, audiolocker";
		clocks = <&clkaudio CLKID_AUDIO_LOCKER_OUT
				&clkaudio CLKID_AUDIO_LOCKER_IN
				&clkaudio CLKID_AUDIO_MCLK_D
				&clkaudio CLKID_AUDIO_MCLK_E
				&clkc CLKID_MPLL1
				&clkc CLKID_MPLL2>;
		clock-names = "lock_out", "lock_in", "out_src",
					"in_src", "out_calc", "in_ref";
		interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq";
		frequency = <49000000>; /* pll */
		dividor = <49>; /* locker's parent */
		status = "okay";
	};
	/* Audio Related end */

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

		opp00 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <770000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <770000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <770000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <770000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1398000000>;
			opp-microvolt = <800000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1512000000>;
			opp-microvolt = <840000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <880000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <910000>;
		};
	};

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

		opp00 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <790000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <790000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <810000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <810000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1398000000>;
			opp-microvolt = <830000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1512000000>;
			opp-microvolt = <870000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <910000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <940000>;
		};
	};

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

	sensor: sensor {
		compatible = "soc, sensor";
		status = "okay";
		sensor-name = "imx290"; /*imx290;os08a10;imx227;imx307*/
		pinctrl-names="default";
		pinctrl-0=<&clk12_24_z_pins>;
		clocks = <&clkc CLKID_24M>;
		clock-names = "g12a_24m";
		reset = <&gpio GPIOZ_12 GPIO_ACTIVE_HIGH>;
		ir_cut_gpio = <&gpio GPIOZ_11 GPIO_ACTIVE_HIGH
				&gpio GPIOZ_7 GPIO_ACTIVE_HIGH>;
	};

	iq: iq {
		compatible = "soc, iq";
		status = "okay";
		sensor-name = "imx290"; /*imx290;os08a10;imx227;imx307*/
	};
}; /* end of / */
&i2c2 {
	status = "okay";
	pinctrl-names="default";
	pinctrl-0=<&i2c2_master_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>;
	};

	lcd_extern_i2c0: lcd_extern_i2c@0 {
		compatible = "lcd_ext, i2c";
		dev_name = "i2c_LT8912_0";
		reg = <0x48>;
		status = "disabled";
	};

	lcd_extern_i2c1: lcd_extern_i2c@1 {
		compatible = "lcd_ext, i2c";
		dev_name = "i2c_LT8912_1";
		reg = <0x49>;
		status = "disabled";
	};
};

&isp {
	status = "okay";
	memory-region = <&isp_cma_reserved>;
};

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

&gdc {
	status = "okay";
	memory-region = <&gdc_cma_reserved>;
};

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

&pwm_ab {
		status = "okay";
	};

&pwm_ef {
		status = "okay";
	};

&pwm_AO_cd {
		status = "okay";
	};

&i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_master_pins2>;
	clock-frequency = <400000>;

	touchscreen@38 {
		compatible = "focaltech,fts";
		status = "disabled";
		reg = <0x38>;
		reset-gpio = <&gpio GPIOZ_9 GPIO_ACTIVE_HIGH>;
		irq-gpio = <&gpio GPIOZ_3 GPIO_ACTIVE_HIGH>;
		x_max = <720>;
		y_max = <1280>;
		max-touch-number = <10>;
	};
};

&i2c3 {
	status = "okay";
	pinctrl-names="default";
	pinctrl-0=<&i2c3_master_pins2>;
	clock-frequency = <100000>; /* default 100k */

	/* for ref board */
	ad82584f_62: ad82584f_62@62 {
		compatible = "ESMT, ad82584f";
		#sound-dai-cells = <0>;
		reg = <0x31>;
		status = "okay";
		reset_pin = <&gpio GPIOA_5 0>;
	};

	tlv320adc3101_32: tlv320adc3101_32@32 {
		compatible = "ti,tlv320adc3101";
		#sound-dai-cells = <0>;
		reg = <0x19>;
		differential_pair = <1>;
		status = "disabled";
	};
};

&audiobus {
	aml_tdma: tdma {
		compatible = "amlogic, g12a-snd-tdma";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <0 1>;
		dai-tdm-oe-lane-slot-mask-out = <1 0>;
		dai-tdm-clk-sel = <0>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_A
				&clkc CLKID_MPLL0>;
		clock-names = "mclk", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmout_a &tdmin_a>;
	};

	aml_tdmb: tdmb {
		compatible = "amlogic, g12a-snd-tdmb";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <0 1 0 0>;
		dai-tdm-lane-slot-mask-out = <1 0 0 0>;
		dai-tdm-clk-sel = <1>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_B
				&clkc CLKID_MPLL1
				&clkc CLKID_MPLL0
				&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
		clock-names = "mclk", "clk_srcpll",
			"samesource_srcpll", "samesource_clk";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
		mclk_pad = <0>;  /* 0: mclk_0; 1: mclk_1 */
		/*
		 * 0: tdmout_a;
		 * 1: tdmout_b;
		 * 2: tdmout_c;
		 * 3: spdifout;
		 * 4: spdifout_b;
		 */
		/* samesource_sel = <4>; */
	};

	aml_tdmc: tdmc {
		compatible = "amlogic, g12a-snd-tdmc";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <1 0 0 0>;
		#dai-tdm-lane-slot-mask-out = <1 0 1 1>;
		#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
		#dai-tdm-lane-oe-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";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
		mclk_pad = <1>;  /* 0: mclk_0; 1: mclk_1 */
	};

	tdmlb: tdm@3 {
		compatible = "amlogic, g12a-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_MPLL1>;
		clock-names = "mclk", "clk_srcpll";
		/*
		 * select tdmin_lb src;
		 *0: TDMOUTA
		 *1: TDMOUTB
		 *2: TDMOUTC
		 *3: PAD_TDMINA
		 *4: PAD_TDMINB
		 *5: PAD_TDMINC
		 */
		lb-src-sel = <1>;

		status = "okay";
	};

	aml_spdif: spdif {
		compatible = "amlogic, g12a-snd-spdif-a";
		#sound-dai-cells = <0>;
		clocks = <&clkc CLKID_MPLL0
				&clkc CLKID_FCLK_DIV4
				&clkaudio CLKID_AUDIO_SPDIFIN
				&clkaudio CLKID_AUDIO_SPDIFOUT
				&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
				&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
		clock-names = "sysclk", "fixed_clk", "gate_spdifin",
				"gate_spdifout", "clk_spdifin", "clk_spdifout";
		interrupts =
				<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;

		interrupt-names = "irq_spdifin";
		pinctrl-names = "spdif_pins",
					"spdif_pins_mute";
		pinctrl-0 = <&spdifout &spdifin>;
		pinctrl-1 = <&spdifout_a_mute>;
		status = "okay";
	};
	aml_spdif_b: spdif_b {
		compatible = "amlogic, g12a-snd-spdif-b";
		#sound-dai-cells = <0>;
		clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
				&clkaudio CLKID_AUDIO_SPDIFOUTB
				&clkaudio CLKID_AUDIO_SPDIFOUTB_CTRL>;
		clock-names = "sysclk",
				"gate_spdifout", "clk_spdifout";
		status = "disabled";
	};
	aml_pdm: pdm {
		compatible = "amlogic, g12a-snd-pdm";
		#sound-dai-cells = <0>;
		clocks = <&clkaudio CLKID_AUDIO_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>;
		filter_mode = <1>; /* mode 0~4, defalut:1 */
		status = "okay";
	};

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

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

		status = "okay";
	};

	audioresample: resample {
		compatible = "amlogic, g12a-resample";
		clocks = <&clkc CLKID_MPLL3
				&clkaudio CLKID_AUDIO_MCLK_F
				&clkaudio CLKID_AUDIO_RESAMPLE_CTRL>;
		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
		 *	NONE,
		 *	TDMIN_LB, 6
		 *	LOOPBACK, 7
		 */
		resample_module = <4>;
		status = "disabled";
	};
	aml_pwrdet: pwrdet {
		compatible = "amlogic, g12a-power-detect";

		interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "pwrdet_irq";

		/* pwrdet source sel
		 * 7: loopback;
		 * 6: tdmin_lb;
		 * 5: reserved;
		 * 4: pdmin;
		 * 3: spdifin;
		 * 2: tdmin_c;
		 * 1: tdmin_b;
		 * 0: tdmin_a;
		 */
		pwrdet_src = <4>;

		hi_th = <0x70000>;
		lo_th = <0x16000>;

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

&pinctrl_periphs {
	tdmout_a: tdmout_a {
		mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
			groups = "tdma_sclk",
				"tdma_fs",
				"tdma_dout0";
			function = "tdma_out";
		};
	};

	tdmin_a: tdmin_a {
		mux { /* GPIOX_8 */
			groups = "tdma_din1";
			function = "tdma_in";
		};
	};

	tdmb_mclk: tdmb_mclk {
		mux {
			groups = "mclk0_a";
			function = "mclk0";
			drive-strength = <2>;
		};
	};
	tdmout_b: tdmout_b {
		mux { /* GPIOA_1, GPIOA_2, GPIOA_3 */
			groups = "tdmb_sclk",
				"tdmb_fs",
				"tdmb_dout0";
			function = "tdmb_out";
			drive-strength = <2>;
		};
	};

	tdmin_b:tdmin_b {
		mux { /* GPIOA_4 */
			groups = "tdmb_din1"
				/*,"tdmb_slv_sclk", "tdmb_slv_fs"*/;
			function = "tdmb_in";
			drive-strength = <2>;
		};
	};

	tdmc_mclk: tdmc_mclk {
		mux { /* GPIOA_11 */
			groups = "mclk1_a";
			function = "mclk1";
		};
	};

	clk12_24_z_pins:clk12_24_z_pins {
		mux {
			groups = "clk12_24_z";
			function = "clk12_24_ee";
			drive-strength = <3>;
		};
	};

	tdmout_c:tdmout_c {
		mux { /* GPIOA_12, GPIOA_13, GPIOA_8, GPIOA_7*/
			groups = "tdmc_sclk_a",
				"tdmc_fs_a",
				"tdmc_dout0_a"
				/*,	"tdmc_dout2",
				 * "tdmc_dout3"
				 */;
			function = "tdmc_out";
		};
	};

	tdmin_c:tdmin_c {
		mux { /* GPIOA_10 */
			groups = "tdmc_din0_a";
			function = "tdmc_in";
		};
	};

	spdifin: spdifin {
		mux {/* GPIOH_5 */
			groups = "spdif_in_h";
			function = "spdif_in";
		};
	};

	/* GPIOH_4 */
	/*
	 * spdifout: spdifout {
	 *	mux {
	 *		groups = "spdif_out_h";
	 *		function = "spdif_out";
	 *	};
	 *};
	 */

	pdmin: pdmin {
		mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
			groups = "pdm_din0_a",
			/*"pdm_din1_a",*/
			"pdm_din2_a",
			/*"pdm_din3_a",*/
			"pdm_dclk_a";
			function = "pdm";
		};
	};

	bl_pwm_off_pins:bl_pwm_off_pin {
		mux {
			pins = "GPIOH_5";
			function = "gpio_periphs";
			output-high;
		};
	};

}; /* end of pinctrl_periphs */

&pinctrl_aobus {
	spdifout: spdifout {
		mux { /* gpiao_10 */
			groups = "spdif_out_ao";
			function = "spdif_out_ao";
		};
	};

	spdifout_a_mute: spdifout_a_mute {
		mux { /* gpiao_10 */
			groups = "GPIOAO_10";
			function = "gpio_aobus";
		};
	};
};  /* end of pinctrl_aobus */

&irblaster {
	status = "disabled";
};

&audio_data {
	status = "okay";
};

/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
	/*memory-region = <&vdin0_cma_reserved>;*/
	status = "okay";
	/* up to 1920x1080 yuv422 8bit and 5 buffers
	 * 1920x1080x2x5 = 20 M
	 */
	cma_size = <20>;
	/*vdin write mem color depth support:
	 *bit0:support 8bit
	 *bit1:support 9bit
	 *bit2:support 10bit
	 *bit3:support 12bit
	 *bit4:support yuv422 10bit full pack mode (from txl new add)
	 */
	tv_bit_mode = <0x1>;
};
&vdin1 {
	memory-region = <&vdin1_cma_reserved>;
	status = "okay";
	/*vdin write mem color depth support:
	 *bit0:support 8bit
	 *bit1:support 9bit
	 *bit2:support 10bit
	 *bit3:support 12bit
	 */
	tv_bit_mode = <1>;
};

&sd_emmc_c {
	status = "okay";
	emmc {
		caps = "MMC_CAP_8_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED",
			 "MMC_CAP_NONREMOVABLE",
			/* "MMC_CAP_1_8V_DDR", */
			 "MMC_CAP_HW_RESET",
			 "MMC_CAP_ERASE",
			 "MMC_CAP_CMD23";
		caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
		f_min = <400000>;
		f_max = <200000000>;
	};
};

&sd_emmc_b {
	status = "okay";
	sd {
		caps = "MMC_CAP_4_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED";
		f_min = <400000>;
		f_max = <50000000>;
	};
};

&sd_emmc_a {
	status = "okay";
	sdio {
		caps = "MMC_CAP_4_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED",
			 "MMC_CAP_NONREMOVABLE",
			 "MMC_CAP_UHS_SDR12",
			 "MMC_CAP_UHS_SDR25",
			 "MMC_CAP_UHS_SDR50",
			 "MMC_CAP_UHS_SDR104",
			 "MMC_PM_KEEP_POWER",
			 "MMC_CAP_SDIO_IRQ";
		f_min = <400000>;
		f_max = <200000000>;
	};
};

&nand {
	status = "disabled";
	plat-names = "bootloader","nandnormal";
	plat-num = <2>;
	plat-part-0 = <&bootloader>;
	plat-part-1 = <&nandnormal>;
	bootloader: bootloader{
		enable_pad ="ce0";
		busy_pad = "rb0";
		timming_mode = "mode5";
		bch_mode = "bch8_1k";
		t_rea = <20>;
		t_rhoh = <15>;
		chip_num = <1>;
		part_num = <0>;
		rb_detect = <1>;
	};
	nandnormal: nandnormal{
		enable_pad ="ce0";
		busy_pad = "rb0";
		timming_mode = "mode5";
		bch_mode = "bch8_1k";
		plane_mode = "twoplane";
		t_rea = <20>;
		t_rhoh = <15>;
		chip_num = <2>;
		part_num = <3>;
		partition = <&nand_partitions>;
		rb_detect = <1>;
	};
	nand_partitions:nand_partition{
		/*
		 * if bl_mode is 1, tpl size was generate by
		 * fip_copies * fip_size which
		 * will not skip bad when calculating
		 * the partition size;
		 *
		 * if bl_mode is 0,
		 * tpl partition must be comment out.
		 */
		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>;
		};
	};
};
&dwc3 {
	status = "okay";
};

&usb2_phy_v2 {
	status = "okay";
	portnum = <2>;
};

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

&dwc2_a {
	status = "okay";
	/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
	controller-type = <3>;
};
&ethmac {
	status = "okay";
/*	//conflict with isp i2c
	pinctrl-names = "internal_eth_pins";
	pinctrl-0 = <&internal_eth_pins>;
*/
	mc_val = <0x4be04>;

	internal_phy=<1>;
};

&uart_A {
	status = "okay";
};

&pcie_A {
	reset-gpio = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
	status = "disabled";
};

&saradc {
	status = "okay";
};

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