/*
 * arch/arm64/boot/dts/amlogic/elaine-bx.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 "mesonsm1.dtsi"
#include "elaine-sm1-panel.dtsi"
#include "elaine-bx-partition.dtsi"
#include "mesonsm1_drm.dtsi"

/ {
	model = "Amlogic";
	compatible = "amlogic, g12a";
	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;
		tsensor0 = &p_tsensor;
		tsensor1 = &d_tsensor;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c_AO;
		spi0 = &spicc0;
		spi1 = &spicc1;
	};

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

	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 = <0x8000>;
			console-size = <0x8000>;
			ftrace-size = <0x0>;
			pmsg-size = <0x8000>;
		};
		secmon_reserved:linux,secmon {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x2400000>;
			alignment = <0x0 0x400000>;
			alloc-ranges = <0x0 0x05000000 0x0 0x2400000>;
			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 0x5f800000 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;
		//};
		/*  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 0xc800000>;
			alignment = <0x0 0x400000>;
			linux,contiguous-region;
			clear-map;
		};
		/* codec shared reserved */
		codec_mm_reserved:linux,codec_mm_reserved {
			compatible = "amlogic, codec-mm-reserved";
			size = <0x0 0x0>;
			alignment = <0x0 0x100000>;
			//no-map;
		};
		/* YUV decoder V4L2 CMA */
		codec_yuvdecoder_cma:linux,yuvdecoder_cma {
			compatible = "shared-dma-pool";
			size = <0x0 0xc00000>;
			linux,contiguous-region;
		};
		/*  vdin0 CMA pool */
		vdin0_cma_reserved:linux,vdin0_cma {
			compatible = "shared-dma-pool";
			reusable;
		/* 1920x1080x2x4  =16+4 M */
			size = <0x0 0x04000000>;
			alignment = <0x0 0x400000>;
		};
		/*  vdin1 CMA pool */
		vdin1_cma_reserved:linux,vdin1_cma {
			compatible = "shared-dma-pool";
			reusable;
			/* 1920x1080x2x4  =16 M */
			size = <0x0 0x04000000>;
			alignment = <0x0 0x400000>;
		};
	};

	galcore {
		status = "okay";
	};

	oslo {
		compatible = "linux,uio-pdrv-genirq";
		status = "okay";
		interrupt_gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
		interrupt-names = "oslo_irq";
	};

	gpio_key {
		compatible = "amlogic, gpio_keypad";
		status = "okay";
		dev_name = "gpio_keypad";
		scan_period = <20>;
		key_num = <2>;
		key_name = "vol_up", "vol_down";
		key_code = <115 114>;
		key-gpios = <&gpio  GPIOZ_5  GPIO_ACTIVE_HIGH
				&gpio  GPIOZ_6  GPIO_ACTIVE_HIGH>;
		interrupts = < 0 70 1
			0 71 2>;
		interrupt-names = "irq_keyup", "irq_keydown";
	};

	mute_switch {
		compatible = "amlogic, gpio_keypad";
		status = "okay";
		dev_name = "mic_state";
		scan_period = <20>;
		key_num = <1>;
		key_name = "mic_mute";
		key_code = <248>;  // KEY_MICMUTE
		invert_event_val = <0>;
		key-gpios = <&gpio GPIOZ_2 GPIO_ACTIVE_HIGH>;
		gpio-pull-up = <0>;
	};

	cvbsout {
		compatible = "amlogic, cvbsout-sm1";
		dev_name = "cvbsout";
		status = "disabled";
		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: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 */
		/* sm1 */
		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 */
	};

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

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

	unifykey{
		compatible = "amlogic, unifykey";
		status = "disabled";

		unifykey-num = <17>;
		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>;

		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";
		};
	};//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 = <1>;/*1:enable ;0:disable*/
		wb_en = <0>;/*1:enable ;0:disable*/
		cm_en = <0>;/*1:enable ;0:disable*/
	};

	amvdec_yuv {
		compatible = "amlogic, amvdec_yuv";
		memory-region = <&codec_yuvdecoder_cma>;
		status = "okay";
	};

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

	meson-fb {
		memory-region = <&logo_reserved>;
		dev_name = "meson-fb";
		status = "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";

		/*avout mute gpio*/
		//avout_mute-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;

		aml-audio-card,dai-link@0 {
			format = "dsp_a";
			mclk-fs = <256>;
			//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>;
				dai-tdm-slot-rx-mask = <1>;
				dai-tdm-slot-num = <1>;
				dai-tdm-slot-width = <16>;
				system-clock-frequency = <24576000>;
			};
			tdmacodec: codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@1 {
			format = "i2s";// "dsp_a";
			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-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 {
				prefix-names = "tas5805";
				sound-dai = <&tas5805>;
			};
		};

		aml-audio-card,dai-link@2 {
			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>;
			};
		};

	};
	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 = "disabled";
	};
	/* Audio Related end */
	p_tsensor: p_tsensor@ff634800 {
		compatible = "amlogic, r1p1-tsensor";
		device_name = "meson-pthermal";
		status = "okay";
		reg = <0x0 0xff634800 0x0 0x50>,
			<0x0 0xff800268 0x0 0x4>;
		cal_type = <0x1>;
		cal_a = <324>;
		cal_b = <424>;
		cal_c = <3159>;
		cal_d = <9411>;
		rtemp = <115000>;
		interrupts = <0 35 0>;
		clocks = <&clkc CLKID_TS_COMP>; /* CLKID_TS_COMP>;*/
		clock-names = "ts_comp";
		#thermal-sensor-cells = <1>;
	};

	d_tsensor: d_tsensor@ff634c00 {
		compatible = "amlogic, r1p1-tsensor";
		device_name = "meson-dthermal";
		status = "okay";
		reg = <0x0 0xff634c00 0x0 0x50>,
			<0x0 0xff800230 0x0 0x4>;
		cal_type = <0x1>;
		cal_a = <324>;
		cal_b = <424>;
		cal_c = <3159>;
		cal_d = <9411>;
		rtemp = <115000>;
		interrupts = <0 36 0>;
		clocks = <&clkc CLKID_TS_COMP>; /* CLKID_TS_COMP>;*/
		clock-names = "ts_comp";
		#thermal-sensor-cells = <1>;
	};

	meson_cooldev: meson-cooldev@0 {
			status = "okay";
			compatible = "amlogic, meson-cooldev";
			device_name = "mcooldev";
			cooling_devices {
				cpufreq_cool_cluster0 {
					min_state = <1000000>;
					dyn_coeff = <115>;
					cluster_id = <0>;
					node_name = "cpufreq_cool0";
					device_type = "cpufreq";
				};
				cpucore_cool_cluster0 {
					min_state = <1>;
					dyn_coeff = <0>;
					cluster_id = <0>;
					node_name = "cpucore_cool0";
					device_type = "cpucore";
				};
				gpufreq_cool {
					min_state = <400>;
					dyn_coeff = <358>;
					gpu_pp = <2>;
					cluster_id = <0>;
					node_name = "gpufreq_cool0";
					device_type = "gpufreq";
				};
				gpucore_cool {
					min_state = <1>;
					dyn_coeff = <0>;
					cluster_id = <0>;
					node_name = "gpucore_cool0";
					device_type = "gpucore";
				};
			};
			cpufreq_cool0:cpufreq_cool0 {
				#cooling-cells = <2>; /* min followed by max */
			};
			cpucore_cool0:cpucore_cool0 {
				#cooling-cells = <2>; /* min followed by max */
			};
			gpufreq_cool0:gpufreq_cool0 {
				#cooling-cells = <2>; /* min followed by max */
			};
			gpucore_cool0:gpucore_cool0 {
				#cooling-cells = <2>; /* min followed by max */
			};
		};
		/*meson cooling devices end*/

	thermal-zones {
		soc_thermal: soc_thermal {
			polling-delay = <1000>;
			polling-delay-passive = <100>;
			sustainable-power = <1460>;
			thermal-sensors = <&p_tsensor 0>;
			trips {
				pswitch_on: trip-point@0 {
					temperature = <80000>;
					hysteresis = <5000>;
					type = "passive";
				};
				pcontrol: trip-point@1 {
					temperature = <96000>;
					hysteresis = <5000>;
					type = "passive";
				};
				phot: trip-point@2 {
					temperature = <100000>;
					hysteresis = <5000>;
					type = "hot";
				};
				pcritical: trip-point@3 {
					temperature = <100000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};

			cooling-maps {
				cpufreq_cooling_map {
					trip = <&pcontrol>;
					cooling-device = <&cpufreq_cool0 0 4>;
					contribution = <1024>;
				};
				cpucore_cooling_map {
					trip = <&pcontrol>;
					cooling-device = <&cpucore_cool0 0 3>;
					contribution = <1024>;
				};
				gpufreq_cooling_map {
					trip = <&pcontrol>;
					cooling-device = <&gpufreq_cool0 0 4>;
					contribution = <1024>;
				};
				gpucore_cooling_map {
					trip = <&pcontrol>;
					cooling-device = <&gpucore_cool0 0 2>;
					contribution = <1024>;
				};
			};
		};
		ddr_thermal: ddr_thermal {
			polling-delay = <2000>;
			polling-delay-passive = <1000>;
			sustainable-power = <1460>;
			thermal-sensors = <&d_tsensor 1>;
			trips {
				dswitch_on: trip-point@0 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "passive";
				};
				dcontrol: trip-point@1 {
					temperature = <75000>;
					hysteresis = <5000>;
					type = "passive";
				};
				dhot: trip-point@2 {
					temperature = <85000>;
					hysteresis = <5000>;
					type = "hot";
				};
				dcritical: trip-point@3 {
					temperature = <110000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};

		};
	};
	/*thermal zone end*/
	/* for pwm-regulator */
	cpu_opp_table0: cpu_opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <760000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <760000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <760000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <780000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <800000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <810000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <820000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1512000000>;
			opp-microvolt = <830000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <860000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <900000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <940000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1908000000>;
			opp-microvolt = <970000>;
		};
	};

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

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <760000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <760000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <760000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <780000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <800000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <810000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <820000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <830000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <860000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <900000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <910000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1908000000>;
			opp-microvolt = <910000>;
		};
	};

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

		opp00 {
			opp-hz = /bits/ 64 <100000000>;
			opp-microvolt = <760000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <250000000>;
			opp-microvolt = <760000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <760000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <667000000>;
			opp-microvolt = <780000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <800000>;
		};
		opp05 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <810000>;
		};
		opp06 {
			opp-hz = /bits/ 64 <1404000000>;
			opp-microvolt = <820000>;
		};
		opp07 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <830000>;
		};
		opp08 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <860000>;
		};
		opp09 {
			opp-hz = /bits/ 64 <1704000000>;
			opp-microvolt = <860000>;
		};
		opp10 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <860000>;
		};
		opp11 {
			opp-hz = /bits/ 64 <1908000000>;
			opp-microvolt = <860000>;
		};
	};

	cpufreq-meson {
		compatible = "amlogic, cpufreq-meson";
		pinctrl-names = "default";
		pinctrl-0 = <&pwm_ao_d_pins3>;
		status = "okay";
	};

	amber_led {
		compatible = "pwm-leds";
		status = "okay";
		amber_led {
			label = "amber_led_pwm";
			pwms = <&pwm_AO_ab MESON_PWM_0 500000 0>;
			max-brightness = <4095>;
		};
	};


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

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

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

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

	cpu-dvfsid {
		compatible = "amlogic, dvfs-id";
		status = "okay";
	};
}; /* end of / */

&CPU0 {
	/*set multi table cpufreq max*/
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>;
};

&CPU1 {
	/*set multi table cpufreq max*/
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>;
};

&CPU2 {
	/*set multi table cpufreq max*/
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>;
};

&CPU3 {
	/*set multi table cpufreq max*/
	multi_tables_available;
	operating-points-v2 = <&cpu_opp_table0>,
			<&cpu_opp_table1>,
			<&cpu_opp_table2>;
};

&pwm_AO_cd {
		status = "okay";
	};

&pwm_AO_ab {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&pwm_ao_a_pins &pwm_ao_b_pins>;
	};

&i2c2 {
	status = "okay";
	pinctrl-names="default";
	pinctrl-0=<&i2c2_master_pins2>;
	clock-frequency = <400000>;
	gtx8@5d {
		compatible = "goodix,gt9886";
		status = "okay";
		reg = <0x5d>;
		goodix,irq-gpio = <&gpio GPIOZ_4 0x00>;
		goodix,reset-gpio = <&gpio GPIOZ_9 0x00>;
		goodix,irq-flags = <2>; /* 1:trigger rising, 2:trigger falling */
		goodix,panel-max-x = <600>;
		goodix,panel-max-y = <1024>;
		goodix,panel-max-w = <255>;
	};
};

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

	bl: backlight@2c {
		compatible = "ti,lp8556";
		reg = <0x2c>;
		bl-name = "lcd-bl";
		// only read eeprom on initial power-up, brightness register
		// control only, backlight enabled
		dev-ctrl = /bits/ 8 <0x85>;
		// Enable undervoltage protection at  5.2 V, "disable"
		// backlight (i2c only), disable set resistors
		rom_a2h {
			rom-addr = /bits/ 8 <0xa2>;
			rom-val = /bits/ 8 <0x30>;
		};
		// 50 ms slope, no filtering, 1-bit hysteresis with 12-bit res
		rom_a3h {
			rom-addr = /bits/ 8 <0xa3>;
			rom-val = /bits/ 8 <0x32>;
		};
		// 9.6kHz PWM rate, 3 phase drivers
		rom_a5h {
			rom-addr = /bits/ 8 <0xa5>;
			rom-val = /bits/ 8 <0x54>;
		};
		// EN_DRV3, EN_DRV2, boost inductor current limit = 1.6 A
		rom_a7h {
			rom-addr = /bits/ 8 <0xa7>;
			rom-val = /bits/ 8 <0xf4>;
		};
		// VBOOST_MAX = 25 V, JUMP_EN = 0
		rom_a9h {
			rom-addr = /bits/ 8 <0xa9>;
			rom-val = /bits/ 8 <0x60>;
		};
		// STEP_UP = 105 mV, STEP_DN = 105 mV, LED_FAULT_TH = 3 V,
		// LED_COMP_HYST = DRIVER_HEADROOM + 750 mV
		rom_aeh {
			rom-addr = /bits/ 8 <0xae>;
			rom-val = /bits/ 8 <0x09>;
		};
	};

	tas5805: tas5805@2d {
		compatible = "ti,tas5825m";
		#sound-dai-cells = <0>;
		reg = <0x2d>;
		pdn-gpios = <&gpio GPIOA_5 GPIO_ACTIVE_HIGH>;
	};

	ina231_14V: ina231@40 {
		compatible = "ti,ina231";
		reg = <0x40>;
		irq-gpio = <&gpio GPIOZ_10 GPIO_ACTIVE_HIGH>;
		shunt-resistor = <10000>;
		mask-enable = <0x1000>;  // Bus Voltage Undervoltage
		alert-limit = <0x2260>;  // 11V Alert Limit
	};

	ina231_3v3: ina231@49 {
		compatible = "ti,ina231";
		reg = <0x49>;
		shunt-resistor = <10000>;
	};
};

&i2c_AO {
	status = "okay";
	pinctrl-names="default";
	pinctrl-0=<&ao_i2c_master_pins1>;

	rgbc: tcs3472@39 {
		compatible = "tcs3472";
		reg = <0x39>;
		status = "okay";
		interrupt_gpio = <&gpio GPIOAO_5 GPIO_ACTIVE_HIGH>;
	};

	shtv3: shtv3@70 {
		compatible = "sensirion,shtc1";
		status = "okay";
		reg = <0x70>;
	};

	temp0: tmp112@48 {
		compatible = "national,lm75";
		reg = <0x48>;
	};
	temp1: tmp112@49 {
		compatible = "national,lm75";
		reg = <0x49>;
	};
	temp2: tmp112@4A {
		compatible = "national,lm75";
		reg = <0x4A>;
	};
	temp3: tmp112@4B {
		compatible = "national,lm75";
		reg = <0x4B>;
	};
};

&audiobus {
	aml_tdma: tdm@0 {
		compatible = "amlogic, sm1-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_MPLL0>;
		clock-names = "mclk", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmout_a &tdmin_a>;
	};

	aml_tdmb: tdm@1 {
		compatible = "amlogic, sm1-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
				&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
		clock-names = "mclk", "clk_srcpll",
			"samesource_clk";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmout_b &tdmin_b>;

		mclk_pad = <0>;  /* 0: mclk_0; 1: mclk_1 */

		status = "okay";
	};

	aml_pdm: pdm {
		compatible = "amlogic, sm1-snd-pdm";
		#sound-dai-cells = <0>;
		clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
			&clkc CLKID_FCLK_DIV3
			&clkc CLKID_MPLL1
			&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";
	};

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

	//tdmout_c:tdmout_c {
	//	mux { /* GPIOA_12, GPIOA_13, GPIOA_10, 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_9 */
	//		groups = "tdmc_din1_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_6, gpioa_7, gpioa_8, gpioa_9*/
			groups = "pdm_din1_a", //gpioa_9
			"pdm_din0_a", //gpioa_8
			//"pdm_din2_a", //gpioa_6
			/*"pdm_din3_a",*/ //gpioa_5
			"pdm_dclk_a"; //gpioa_7
			function = "pdm";
		};
	};
	pwm_d_z: pwm_d_z {
		mux {
			groups = "pwm_d_z";
			function = "pwm_d";
		};
	};
}; /* end of pinctrl_periphs */

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

&spicc0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc0_pins_c>;
	cs-gpios = <&gpio GPIOC_2 0>;
	num_chipselect = <1>;
	spidev@0x0 {
		compatible = "nordic,nrf52811";
		status = "okay";
		reg = <0>;
		spi-max-frequency = <100000>;
	};
};

&spicc1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc1_pins>;
	cs-gpios = <&gpio GPIOH_6 0>;
	num_chipselect = <1>;
	spidev@0x0 {
		compatible = "selina,spidev";
		status = "okay";
		reg = <0>;
		spi-max-frequency = <25000000>;
	};
};

&audio_data {
	status = "okay";
};

/* Audio Related End */

&pwm_ef {
	status = "okay";
};

&dwc3 {
	status = "okay";
};

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

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

&dwc2_a {
	status = "okay";
	/* 1: host only, 2: device only, 3: OTG */
	controller-type = <1>;
};
&ethmac {
	status = "disabled";
	pinctrl-names = "internal_eth_pins";
	pinctrl-0 = <&internal_eth_pins>;
	mc_val = <0x4be04>;

	internal_phy=<1>;
};

&uart_A {
	status = "okay";
};

/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
	memory-region = <&vdin0_cma_reserved>;
	status = "okay";
	/*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 = <0x15>;
};
&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";
		f_min = <400000>;
		f_max = <166666666>;
	};
};

&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";
	/*fip/tpl configurations, must be same
	* with uboot if bl_mode was set as 1
	* bl_mode: 0 compact mode; 1 descrete mode
	* if bl_mode was set as 1, fip configuration will work
	*/
	bl_mode = <1>;
	/*copy count of fip*/
	fip_copies = <4>;
	/*size of each fip copy */
	fip_size = <0x200000>;
	nand_clk_ctrl = <0xFFE07000>;
	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>;
		};
		fts{
        		offset=<0x0 0x0>;
			size=<0x0 0x100000>;
		};
		factory{
			offset=<0x0 0x0>;
			size=<0x0 0x800000>;
		};
		recovery{
			offset=<0x0 0x0>;
			size=<0x0 0x1000000>;
		};
		boot{
			offset=<0x0 0x0>;
			size=<0x0 0x1000000>;
		};
		system{
			offset=<0x0 0x0>;
			size=<0x0 0xDC00000>;
			read-only;
		};
		cache{
			offset=<0xffffffff 0xffffffff>;
			size=<0x0 0x0>;
		};
	};
};

&secmon {
	reserve_mem_size = <0x02300000>;
	clear_range = <0x05100000 0x1E00000>;
};

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

&meson_cooldev {
	status = "okay";
};

&amhdmitx {
	status= "disabled";
};

&aocec {
	status = "disabled";
};

&drm_vpu {
	status = "okay";
	logo_addr = "0x7f800000";
	osd_ver = /bits/ 8 <OSD_V5>;
};

&drm_lcd {
	status = "okay";
};
&efuse {
	compatible = "amlogic, efuse";
	key = <>;
	status = "disabled";
};
&remote {
	status = "disabled";
};

&lcd {
	lcd_cpu-gpios = <&gpio GPIOZ_13 GPIO_ACTIVE_HIGH>;
	lcd_cpu_gpio_names = "GPIOZ_13";
};
