/*
 * arch/arm64/boot/dts/amlogic/gxl_p231_1g.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 <dt-bindings/interrupt-controller/arm-gic.h>
#include "mesongxl.dtsi"
#include "partition_mbox_normal.dtsi"
/ {
	model = "Amlogic";
	amlogic-dt-id = "gxl_p231_1g";
	compatible = "amlogic, Gxl";
	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;
	};

	ion_dev {
		compatible = "amlogic, ion_dev";
		memory-region = <&ion_reserved>;
	};

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

	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>;
		};
		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 0x3f800000 0x0 0x800000>;
		};
		//don't put other dts in front of logo_reserved

		//di_reserved:linux,di {
		//	compatible = "amlogic, di-mem";
			/** 10x3133440=30M(0x1e) support 8bit **/
		//	size = <0x0 0x1e00000>;
			//no-map;
		//};
		di_cma_reserved:linux,di_cma {
			compatible = "shared-dma-pool";
			reusable;
			/** 10x3133440=30M(0x1e) support 8bit **/
			size = <0x0 0x2000000>;
			alignment = <0x0 0x400000>;
		};
		ion_reserved:linux,ion-dev {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x7C00000>;
			alignment = <0x0 0x400000>;
		};

		/*  vdin0 CMA pool */
		//vdin0_cma_reserved:linux,vdin0_cma {
		//	compatible = "shared-dma-pool";
		//	linux,phandle = <4>;
		//	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>;
		};
		/*  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 0xc000000>;
			alignment = <0x0 0x400000>;
			linux,contiguous-region;
		};
		picdec_cma_reserved:linux,picdec {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x0>;
			alignment = <0x0 0x0>;
			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;
		};
	};

	cma_shrinker {
		compatible = "amlogic, cma-shrinker";
		status = "okay";
		adj  = <0 100 200 250 900 950>;
		free = <7680 24288 28528 32600 32768 36624>;
	};

	bt-dev{
		compatible = "amlogic, bt-dev";
		dev_name = "bt-dev";
		status = "okay";
		gpio_reset = <&gpio       GPIOX_17       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>;
		//if use bcm wifi, config dhd_static_buf and 32k as bellow
		dhd_static_buf;
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_32k_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 = <8>;
		};
		pwm_channel2_conf {
			pwms = <&pwm_ef MESON_PWM_2 30500 0>;
			duty-cycle = <15250>;
			times = <12>;
		};
	};

	sd_emmc_c: emmc@d0074000 {
		status = "okay";
		compatible = "amlogic, meson-mmc-gxl";
		reg = <0x0 0xd0074000 0x0 0x2000>;
		interrupts = <0 218 1>;
		pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
		pinctrl-0 = <&emmc_clk_cmd_pins>;
		pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
		clocks = <&clkc CLKID_SD_EMMC_C>,
			   <&clkc CLKID_SD_EMMC_C_P0_COMP>,
			   <&clkc CLKID_FCLK_DIV2>;
		clock-names = "core", "clkin0", "clkin1";

		bus-width = <8>;
		cap-sd-highspeed;
		cap-mmc-highspeed;
		mmc-ddr-1_8v;
		mmc-hs200-1_8v;

		max-frequency = <200000000>;
		non-removable;
		disable-wp;
		emmc {
			pinname = "emmc";
			ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
			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 = <100000000>;
			max_req_size = <0x20000>; /**128KB*/
			gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
			hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
			card_type = <1>;
			/* 1:mmc card(include eMMC),
			 * 2:sd card(include tSD)
			 */
		};
	};

	sd_emmc_b:sd@d0072000 {
		status = "okay";
		compatible = "amlogic, meson-mmc-gxl";
		reg = <0x0 0xd0072000 0x0 0x2000>;
		interrupts = <0 217 1>;
		pinctrl-names = "sd_all_pins",
			"sd_clk_cmd_pins",
			"sd_1bit_pins",
			"sd_clk_cmd_uart_pins",
			"sd_1bit_uart_pins",
			"sd_to_ao_uart_pins",
			"ao_to_sd_uart_pins",
			"ao_to_sd_jtag_pins",
			"sd_to_ao_jtag_pins";
		pinctrl-0 = <&sd_all_pins>;
		pinctrl-1 = <&sd_clk_cmd_pins>;
		pinctrl-2 = <&sd_1bit_pins>;
		pinctrl-3 = <&sd_to_ao_uart_clr_pins
			&sd_clk_cmd_pins &ao_to_sd_uart_pins>;
		pinctrl-4 = <&sd_to_ao_uart_clr_pins
			&sd_1bit_pins &ao_to_sd_uart_pins>;
		pinctrl-5 = <&sd_all_pins &sd_to_ao_uart_pins>;
		pinctrl-6 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
		pinctrl-7 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
		pinctrl-8 = <&sd_all_pins &sd_to_ao_uart_pins>;
		clocks = <&clkc CLKID_SD_EMMC_B>,
			   <&clkc CLKID_SD_EMMC_B_P0_COMP>,
			   <&clkc CLKID_FCLK_DIV2>;
		clock-names = "core", "clkin0", "clkin1";

		bus-width = <4>;
		cap-sd-highspeed;
		max-frequency = <100000000>;
		disable-wp;
		sd {
			pinname = "sd";
			ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
			caps = "MMC_CAP_4_BIT_DATA",
				 "MMC_CAP_MMC_HIGHSPEED",
				 "MMC_CAP_SD_HIGHSPEED";
			/* "MMC_CAP_UHS_SDR12",
			 * "MMC_CAP_UHS_SDR25",
			 * "MMC_CAP_UHS_SDR50",
			 * "MMC_CAP_UHS_SDR104";
			 */
			f_min = <400000>;
			f_max = <100000000>;
			max_req_size = <0x20000>; /**128KB*/
			gpio_dat3 = <&gpio CARD_4 GPIO_ACTIVE_HIGH>;
			jtag_pin = <&gpio CARD_0 GPIO_ACTIVE_HIGH>;
			gpio_cd = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
			card_type = <5>;
			/* 0:unknown,
			 * 1:mmc card(include eMMC),
			 * 2:sd card(include tSD),
			 * 3:sdio device(ie:sdio-wifi),
			 * 4:SD combo (IO+mem) card,
			 * 5:NON sdio device(means sd/mmc card),
			 * other:reserved
			 */
		};
	};

	sd_emmc_a:sdio@d0070000 {
		status = "okay";
		compatible = "amlogic, meson-mmc-gxl";
		reg = <0x0 0xd0070000 0x0 0x2000>;
		interrupts = <0 216 4>;
		pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
		pinctrl-0 = <&sdio_clk_cmd_pins>;
		pinctrl-1 = <&sdio_all_pins>;
		clocks = <&clkc CLKID_SD_EMMC_A>,
			   <&clkc CLKID_SD_EMMC_A_P0_COMP>,
			   <&clkc CLKID_FCLK_DIV2>;
		clock-names = "core", "clkin0", "clkin1";

		bus-width = <4>;
		cap-sd-highspeed;
		cap-mmc-highspeed;
		max-frequency = <100000000>;
		non-removable;
		disable-wp;
		sdio {
			pinname = "sdio";
			ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
			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>;
			max_req_size = <0x20000>; /**128KB*/
			card_type = <3>;
			/* 3:sdio device(ie:sdio-wifi),
			 * 4:SD combo (IO+mem) card
			 */
		};
	};

	ethmac: ethernet@0xc9410000 {
			compatible = "amlogic, gxbb-eth-dwmac";
			reg = <0x0 0xc9410000 0x0 0x10000
			0x0 0xc8834540 0x0 0x8
			0x0 0xc8834558 0x0 0xc
			0x0 0xc1104408 0x0 0x4>;
			interrupts = <0 8 1>;
			pinctrl-names = "external_eth_pins";
			pinctrl-0 = <&external_eth_pins>;
			rst_pin-gpios = <&gpio GPIOZ_14 0>;
			GPIOZ4_pin-gpios = <&gpio GPIOZ_4 0>;
			GPIOZ5_pin-gpios = <&gpio GPIOZ_5 0>;
			mc_val_internal_phy = <0x1800>;
			mc_val_external_phy = <0x1621>;
			cali_val = <0x20000>;
			interrupt-names = "macirq";
			clocks = <&clkc CLKID_ETH>;
			clock-names = "ethclk81";
			internal_phy=<1>;
	};

	codec_io {
		compatible = "amlogic, codec_io";
		#address-cells=<2>;
		#size-cells=<2>;
		ranges;
		io_cbus_base{
			reg = <0x0 0xC1100000 0x0 0x100000>;
		};
		io_dos_base{
			reg = <0x0 0xc8820000 0x0 0x10000>;
		};
		io_hiubus_base{
			reg = <0x0 0xc883c000 0x0 0x2000>;
		};
		io_aobus_base{
			reg = <0x0 0xc8100000 0x0 0x100000>;
		};
		io_vcbus_base{
			reg = <0x0 0xd0100000 0x0 0x40000>;
		};
		io_dmc_base{
			reg = <0x0 0xc8838000 0x0 0x400>;
		};
	};

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

	canvas{
		compatible = "amlogic, meson, canvas";
		dev_name = "amlogic-canvas";
		status = "ok";
		reg = <0x0 0xc8838000 0x0 0x400>;
	};

	mesonstream {
		compatible = "amlogic, codec, streambuf";
		dev_name = "mesonstream";
		status = "okay";
		clocks = <&clkc CLKID_DOS_PARSER
			&clkc CLKID_DEMUX
			&clkc CLKID_DOS
			&clkc CLKID_VDEC_MUX
			&clkc CLKID_HCODEC_MUX
			&clkc CLKID_HEVC_MUX>;
		clock-names = "parser_top",
			"demux",
			"vdec",
			"clk_vdec_mux",
			"clk_hcodec_mux",
			"clk_hevc_mux";
	};

	vdec {
		compatible = "amlogic, vdec";
		dev_name = "vdec.0";
		status = "okay";
		interrupts = <0 3 1
			0 23 1
			0 32 1
			0 43 1
			0 44 1
			0 45 1>;
		interrupt-names = "vsync",
			"demux",
			"parser",
			"mailbox_0",
			"mailbox_1",
			"mailbox_2";
	};

	aml_sensor0: aml-sensor@0 {
		compatible = "amlogic, aml-thermal";
		device_name = "thermal";
		#thermal-sensor-cells = <1>;
		cooling_devices {
			cpufreq_cool_cluster0 {
				min_state = <1000000>;
				dyn_coeff = <140>;
				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 = <437>;
				cluster_id = <0>;
				node_name = "mali";
				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 */
		};
		gpucore_cool0:gpucore_cool0 {
			#cooling-cells = <2>; /* min followed by max */
		};
	};
	thermal-zones {
		soc_thermal {
			polling-delay = <1000>;
			polling-delay-passive = <100>;
			sustainable-power = <2150>;

			thermal-sensors = <&aml_sensor0 3>;

			trips {
				switch_on: trip-point@0 {
					temperature = <70000>;
					hysteresis = <1000>;
					type = "passive";
				};
				control: trip-point@1 {
					temperature = <80000>;
					hysteresis = <1000>;
					type = "passive";
				};
				hot: trip-point@2 {
					temperature = <85000>;
					hysteresis = <5000>;
					type = "hot";
				};
				critical: trip-point@3 {
					temperature = <260000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};

			cooling-maps {
				cpufreq_cooling_map {
					trip = <&control>;
					cooling-device = <&cpufreq_cool0 0 4>;
					contribution = <1024>;
				};
				cpucore_cooling_map {
					trip = <&control>;
					cooling-device = <&cpucore_cool0 0 3>;
					contribution = <1024>;
				};
				gpufreq_cooling_map {
					trip = <&control>;
					cooling-device = <&gpu 0 4>;
					contribution = <1024>;
				};
				gpucore_cooling_map {
					trip = <&control>;
					cooling-device = <&gpucore_cool0 0 2>;
					contribution = <1024>;
				};
			};
		};
	};

	dwc3: dwc3@c9000000 {
		compatible = "synopsys, dwc3";
		reg = <0x0 0xc9000000 0x0 0x100000>;
		interrupts = <0 30 4>;
		usb-phy = <&usb2_phy>, <&usb3_phy>;
		cpu-type = "gxl";
		clock-src = "usb3.0";
	};

	usb2_phy: usb2phy@d0078000 {
		compatible = "amlogic, amlogic-new-usb2";
		portnum = <3>;
		reg = <0x0 0xd0078000 0x0 0x80
					0x0 0xc1104408 0x0 0x4>;
	};

	usb3_phy: usb3phy@d0078080 {
		compatible = "amlogic, amlogic-new-usb3";
		portnum = <0>;
		reg = <0x0 0xd0078080 0x0 0x20>;
	};

	dwc2_a {
		compatible = "amlogic, dwc2";
		device_name = "dwc2_a";
		reg = <0x0 0xc9100000 0x0 0x40000>;
		status = "okay";
		interrupts = <0 31 4>;
		pl-periph-id = <0>; /** lm name */
		clock-src = "usb0"; /** clock src */
		port-id = <0>;  /** ref to mach/usb.h */
		port-type = <2>;        /** 0: otg, 1: host, 2: slave */
		port-speed = <0>; /** 0: default, high, 1: full */
		port-config = <0>; /** 0: default */
		port-dma = <0>; /** 0: default ... 6: disable*/
		port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
		usb-fifo = <728>;
		cpu-type = "gxl";
		controller-type = <1>; /** 0: normal, 1: host, 2: device*/
		phy-reg = <0xd0078000>;
		phy-reg-size = <0xa0>;
		clocks = <&clkc CLKID_USB_GENERAL
			&clkc CLKID_USB1_TO_DDR
			&clkc CLKID_USB1>;
		clock-names = "usb_general",
			"usb1",
			"usb1_to_ddr";
		};

	meson-amvideom {
		compatible = "amlogic, amvideom";
		dev_name = "amvideom";
		status = "okay";
		interrupts = <0 3 1>;
		interrupt-names = "vsync";
	};

	vout {
		compatible = "amlogic, vout";
		dev_name = "vout";
		status = "okay";
		fr_auto_policy = <0>;
	};

	cvbsout {
		compatible = "amlogic, cvbsout-gxl";
		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";

		/* performance: reg_address, reg_value */
		/* s905d */
		performance = <0x1bf0  0x9
			0x1b56  0x343
			0x1b12  0x8080
			0x1b05  0xfd
			0x1c59  0xf752
			0xffff  0x0>; /* ending flag */
	};

	amhdmitx: amhdmitx{
		compatible = "amlogic, amhdmitx";
		dev_name = "amhdmitx";
		status = "okay";
		vend-data = <&vend_data>;
		pinctrl-names="hdmitx_hpd", "hdmitx_ddc";
		pinctrl-0=<&hdmitx_hpd>;
		pinctrl-1=<&hdmitx_ddc>;
		/* HPD, 57 + 32 = 89; CEC, 151 + 32 = 183*/
		interrupts = <0 57 1>;
		interrupt-names = "hdmitx_hpd";
		/* 0:M8B 1:GXBB 2:GXTVBB 3:GXL 4:GXM
		 * 5:TXL 6:TXLX 7:AXG 8:GXLX 9:TXHD
		 */
		ic_type = <3>;
		vend_data: vend_data{ /* Should modified by Customer */
			vendor_name = "Amlogic"; /* Max Chars: 8 */
			/* standards.ieee.org/develop/regauth/oui/oui.txt */
			vendor_id = <0x000000>;
			product_desc = "MBox Meson Ref"; /* Max Chars: 16 */
		};
	};

	aocec: aocec{
		compatible = "amlogic, amlogic-aocec";
		device_name = "aocec";
		status = "okay";
		vendor_id = <0x000000>;
		cec_osd_string = "MBox"; /* Max Chars: 14    */
		cec_version = <5>; /* 5: 1.4, 6: 2.0 */
		port_num = <1>;
		output = <1>;
		arc_port_mask = <0x0>;
		interrupts = <0 199 1>;
		interrupt-names = "hdmi_aocec";
		pinctrl-names = "default";
		pinctrl-0=<&hdmitx_aocec>;
		reg = <0x0 0xc810023c 0x0 0x4
		       0x0 0xc8100000 0x0 0x200>;
		reg-names = "ao_exit","ao";
	};

	sysled {
		compatible = "amlogic, sysled";
		dev_name = "sysled";
		status = "disabled";
		led_gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
		led_active_low = <1>;
	};

	meson-fb {
		compatible = "amlogic, meson-gxl";
		memory-region = <&logo_reserved>;
		dev_name = "meson-fb";
		status = "okay";
		interrupts = <0 3 1
			0 89 1>;
		interrupt-names = "viu-vsync", "rdma";
		mem_size = <0x00800000 0x01800000 0x00100000>;
		/* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
		display_mode_default = "1080p60hz";
		scale_mode = <1>;
		/** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
		display_size_default = <1920 1080 1920 3240 32>;
		/*1920*1080*4*3 = 0x17BB000*/
		logo_addr = "0x3f800000";
	};
	ge2d {
		compatible = "amlogic, ge2d-gxl";
		dev_name = "ge2d";
		status = "okay";
		interrupts = <0 150 1>;
		interrupt-names = "ge2d";
		clocks = <&clkc CLKID_VAPB_MUX>,
			<&clkc CLKID_G2D>,
			<&clkc CLKID_GE2D_GATE>;
		clock-names = "clk_vapb_0",
			"clk_ge2d",
			"clk_ge2d_gate";
	};


	/* AUDIO MESON DEVICES */
	i2s_dai: I2S {
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml-i2s-dai";
		clocks =
			<&clkc CLKID_MPLL2>,
			<&clkc CLKID_AMCLK_COMP>,
			<&clkc CLKID_AIU_GLUE>,
			<&clkc CLKID_IEC958>,
			<&clkc CLKID_I2S_OUT>,
			<&clkc CLKID_AMCLK>,
			<&clkc CLKID_AIFIFO2>,
			<&clkc CLKID_MIXER>,
			<&clkc CLKID_MIXER_IFACE>,
			<&clkc CLKID_ADC>,
			<&clkc CLKID_AIU_TOP>,
			<&clkc CLKID_AOCLK_GATE>,
			<&clkc CLKID_I2S_SPDIF>;
		clock-names =
			"mpll",
			"mclk",
			"top_glue",
			"aud_buf",
			"i2s_out",
			"amclk_measure",
			"aififo2",
			"aud_mixer",
			"mixer_reg",
			"adc",
			"top_level",
			"aoclk",
			"aud_in";
		i2s_pos_sync = <0>;
		/*DMIC;*/  /* I2s Mic or Dmic, default for I2S mic */
	};
	dmic:snd_dmic {
		#sound-dai-cells = <0>;
		compatible = "aml, aml_snd_dmic";
		reg = <0x0 0xd0042000 0x0 0x2000>;
		status = "okay";
		resets = <
			&clkc CLKID_PDM_GATE
		>;
		reset-names =	"pdm";
		pinctrl-names = "audio_dmic";
		pinctrl-0 = <&aml_dmic_pins>;
		clocks = <&clkc CLKID_PDM_COMP>,
			<&clkc CLKID_AMCLK_COMP>;
		clock-names = "pdm", "mclk";
	};
	spdif_dai: SPDIF {
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml-spdif-dai";
		clocks =
			<&clkc CLKID_MPLL1>,
			<&clkc CLKID_I958_COMP>,
			<&clkc CLKID_AMCLK_COMP>,
			<&clkc CLKID_I958_COMP_SPDIF>,
			<&clkc CLKID_CLK81>,
			<&clkc CLKID_IEC958>,
			<&clkc CLKID_IEC958_GATE>;
		clock-names =
			"mpll1",
			"i958",
			"mclk",
			"spdif",
			"clk_81",
			"iec958",
			"iec958_amclk";
	};
	pcm_dai: PCM {
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml-pcm-dai";
		pinctrl-names = "audio_pcm";
		pinctrl-0 = <&audio_pcm_pins>;
		clocks =
			<&clkc CLKID_MPLL0>,
			<&clkc CLKID_PCM_MCLK_COMP>,
			<&clkc CLKID_PCM_SCLK_GATE>;
		clock-names =
			"mpll0",
			"pcm_mclk",
			"pcm_sclk";
		pcm_mode = <1>; /* 0=slave mode, 1=master mode */
	};
	i2s_plat: i2s_platform {
		compatible = "amlogic, aml-i2s";
		interrupts = <0 29 1>;
	};
	pcm_plat: pcm_platform {
		compatible = "amlogic, aml-pcm";
	};
	spdif_codec: spdif_codec{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml-spdif-codec";
		pinctrl-names = "audio_spdif";
		pinctrl-0 = <&audio_spdif_pins>;
	};
	pcm_codec: pcm_codec{
		#sound-dai-cells = <0>;
		compatible = "amlogic, pcm2BT-codec";
	};
	/* endof AUDIO MESON DEVICES */

	/* AUDIO board specific */
	dummy_codec:dummy{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_dummy_codec";
		status = "disable";
	};
	amlogic_codec:t9015{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_codec_T9015";
		reg = <0x0 0xc8832000 0x0 0x14>;
		status = "okay";
	};
	aml_sound_meson {
		compatible = "aml, meson-snd-card";
		status = "okay";
		aml-sound-card,format = "i2s";
		aml_sound_card,name = "AML-MESONAUDIO";
		aml,audio-routing =
				"Ext Spk","LOUTL",
				"Ext Spk","LOUTR";

		mute_gpio-gpios = <&gpio GPIOH_5 0>;
		mute_inv;
		hp_disable;
		hp_paraments = <800 300 0 5 1>;
		pinctrl-names = "audio_i2s";
		pinctrl-0 = <&audio_i2s_pins>;
		cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
		codec_list = <&codec0 &codec1 &codec2>;
		plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
		cpudai0: cpudai0 {
			sound-dai = <&i2s_dai>;
		};
		cpudai1: cpudai1 {
			sound-dai = <&spdif_dai>;
		};
		cpudai2: cpudai2 {
			sound-dai = <&pcm_dai>;
		};
		codec0: codec0 {
			sound-dai = <&amlogic_codec>;
		};
		codec1: codec1 {
			sound-dai = <&spdif_codec>;
		};
		codec2: codec2 {
			sound-dai = <&pcm_codec>;
		};
	};
	/* END OF AUDIO board specific */
	rdma{
		compatible = "amlogic, meson, rdma";
		dev_name = "amlogic-rdma";
		status = "ok";
		interrupts = <0 89 1>;
		interrupt-names = "rdma";
	};

	amvenc_avc{
		compatible = "amlogic, amvenc_avc";
		dev_name = "amvenc_avc";
		status = "okay";
		interrupts = <0 45 1>;
		interrupt-names = "mailbox_2";
	};

	hevc_enc{
		compatible = "cnm, HevcEnc";
		dev_name = "HevcEnc";
		status = "okay";
		interrupts = <0 187 1>;
		interrupt-names = "wave420l_irq";
		#address-cells=<2>;
		#size-cells=<2>;
		ranges;
		io_reg_base{
			reg = <0x0 0xc8810000 0x0 0x4000>;
		};
	};

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

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

	deinterlace {
		compatible = "amlogic, deinterlace";
		status = "okay";
		flag_cma = <1>;/*0:use reserved;1:use cma*/
		//memory-region = <&di_reserved>;
		memory-region = <&di_cma_reserved>;
		interrupts = <0 46 1 0 6 1>;
		interrupt-names = "de_irq",	"timerc";
		/*
		 * nr_size(byte) = 1920*544*2(yuv422 8bit) |
		 * 1920*544*2*12/8(yuv422 10bit)
		 * | 1920*544*2*10/8(yuv422 10bit full pack mode)
		 */
		/* mtn_size(byte) = 1920*544/2 */
		/* count_size(byte) = 1920*544/2 */
		buffer-size = <3133440>;
		hw-version = <2>;
	};

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

	amlvideo {
		compatible = "amlogic, amlvideo";
		dev_name = "amlvideo";
		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>;
	};

	/*if you want to use vdin just modify status to "ok"*/
	vdin0 {
		compatible = "amlogic, vdin";
		/*memory-region = <&vdin0_cma_reserved>;*/
		dev_name = "vdin0";
		status = "ok";
		reserve-iomap = "true";
		flag_cma = <1>;/*1:share with codec_mm;2:cma alone*/
		/* up to 1920x1080 yuv422 8bit and 5 buffers
		 * 1920x1080x2x5 = 20 M
		 */
		cma_size = <20>;
		interrupts = <0 83 1>;
		rdma-irq = <2>;
		/*clocks = <&clock CLK_FPLL_DIV5>,
		 *	<&clock CLK_VDIN_MEAS_CLK>;
		 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
		 */
		vdin_id = <0>;
		/*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 = <1>;
	};
	vdin1 {
		compatible = "amlogic, vdin";
		memory-region = <&vdin1_cma_reserved>;
		dev_name = "vdin1";
		status = "ok";
		reserve-iomap = "true";
		flag_cma = <0>;/*1:share with codec_mm;0:cma alone*/
		interrupts = <0 85 1>;
		rdma-irq = <4>;
		/*clocks = <&clock CLK_FPLL_DIV5>,
		 *	<&clock CLK_VDIN_MEAS_CLK>;
		 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
		 */
		vdin_id = <1>;
		/*vdin write mem color depth support:
		 *bit0:support 8bit
		 *bit1:support 9bit
		 *bit2:support 10bit
		 *bit3:support 12bit
		 */
		tv_bit_mode = <1>;
	};

	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*/
		/*1:enabel osd lut 100 table;0:disable*/
		cfg_en_osd_100 = <3>;
		/*0: 709/601  1: bt2020*/
		tx_op_color_primary = <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 = "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
};
&efuse {
	status = "ok";
};

&pwm_ef {
	status = "okay";
};

