/*
 * arch/arm64/boot/dts/amlogic/estelle-sm1-panel.dtsi
 *
 * Copyright (C) 2016 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.
 *
 */

/ {
	lcd{
		compatible = "amlogic, lcd-sm1";
		mode = "tablet";
		status = "okay";
		key_valid = <0>;
		clocks = <&clkc CLKID_MIPI_DSI_HOST
			&clkc CLKID_MIPI_DSI_PHY
			&clkc CLKID_DSI_MEAS_COMP
			&clkc CLKID_VCLK2_ENCL
			&clkc CLKID_VCLK2_VENCL
			&clkc CLKID_GP0_PLL>;
		clock-names = "dsi_host_gate",
			"dsi_phy_gate",
			"dsi_meas",
			"encl_top_gate",
			"encl_int_gate",
			"gp0_pll";
		reg = <0x0 0xffd07000 0x0 0x400    /* dsi_host */
			0x0 0xff644000 0x0 0x200>; /* dsi_phy */
		interrupts = <0 3 1
			0 56 1>;
		interrupt-names = "vsync","vsync2";
		pinctrl_version = <2>; /* for uboot */

		/* power type:
		 *    (0=cpu_gpio, 1=pmu_gpio, 2=signal,3=extern, 0xff=ending)
		 * power index:
		 *    (point gpios_index, or extern_index,0xff=invalid)
		 * power value:(0=output low, 1=output high, 2=input)
		 * power delay:(unit in ms)
		 */
		lcd_cpu-gpios = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
		lcd_cpu_gpio_names = "GPIOH_6";

		lcd_1{
			model_name = "TV070WSM";
			interface = "mipi";
			basic_setting = <600 1024 /*h_active, v_active*/
				700 1053 /*h_period, v_period*/
				8 /*lcd_bits*/
				95 163>; /*screen_widht, screen_height*/
			lcd_timing = <24 36 0 /*hs_width,hs_bp,hs_pol*/
				2 8 0>; /*vs_width,vs_bp,vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clock,1=htotal,2=vtotal)*/
				0 /*clk_ss_level*/
				1 /*clk_auto_generate*/
				44250000>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				360 /*bit_rate_max(MHz)*/
				0 /*factor(*100, default 0 for auto)*/
				1 /*operation_mode_init(0=video, 1=command)*/
				0 /*operation_mode_display(0=video, 1=command)*/
				2 /*
				   *video_mode_type
				   *(0=sync_pulse,1=sync_event,2=burst)
				   */
				0 /*clk_always_hs(0=disable,1=enable)*/
				0>; /*phy_switch(0=auto,1=standard,2=slow)*/
				/* dsi_init: data_type, num, data... */
			dsi_init_on = <
				0xff 10		/* delay 10 ms */
				0xf0 3 0 1 30	/* reset high, delay 30ms */
				0xf0 3 0 0 10	/* reset low, delay 10ms */
				0xf0 3 0 1 30	/* reset high, delay 30ms */
				0xfc 2 4 3      /* mipi state check */
				0xff 10	/* delay 10 ms */
				0xff 0xff>;	/* ending flag */
			dsi_init_off = <0xff 0xff>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <1>;
				/* power step: type,index,value,delay(ms) */
			power_on_step = <
					2 0 0 0
					0xff 0 0 0>;
			power_off_step = <
					2 0 0 50
					0 0 0 100
					0xff 0 0 0>;
			backlight_index = <0>;
		};

		lcd_2{
			model_name = "P070ACB";
			interface = "mipi";
			basic_setting = <600 1024 /*h_active, v_active*/
				680 1194 /*h_period, v_period*/
				8 /*lcd_bits*/
				3 5>; /*screen_widht, screen_height*/
			lcd_timing = <24 36 0 /*hs_width,hs_bp,hs_pol*/
				10 80 0>; /*vs_width,vs_bp,vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clock,1=htotal,2=vtotal)*/
				0 /*clk_ss_level*/
				1 /*clk_auto_generate*/
				48715200>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				400 /*bit_rate_max(MHz)*/
				0 /*factor(*100, default 0 for auto)*/
				1 /*operation_mode_init(0=video, 1=command)*/
				0 /*operation_mode_display(0=video, 1=command)*/
				2 /*
				   *video_mode_type
				   *(0=sync_pulse,1=sync_event,2=burst)
				   */
				0 /*clk_always_hs(0=disable,1=enable)*/
				0>; /*phy_switch(0=auto,1=standard,2=slow)*/
				/* dsi_init: data_type, num, data... */
			dsi_init_on = <
				0xff 10		/* delay 10ms */
				0xf0 3 0 1 30	/* reset high, delay 30ms */
				0xf0 3 0 0 10	/* reset low, delay 10ms */
				0xf0 3 0 1 30	/* reset high, delay 30ms */
				0xfc 2 4 3      /* mipi state check  */
				0xff 10	/* delay 10 ms */
				0xff 0xff>;	/* ending flag */
			dsi_init_off = <0xff 0xff>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <2>;
				/* power step: type,index,value,delay(ms) */
			power_on_step = <
					2 0 0 0
					0xff 0 0 0>;
			power_off_step = <
					2 0 0 50
					0 0 0 100
					0xff 0 0 0>;
			backlight_index = <1>;
		};

		lcd_3{
			model_name = "TV070WSM_FT";
			interface = "mipi";
			basic_setting = <600 1024 /*h_active, v_active*/
				700 1053 /*h_period, v_period*/
				8 /*lcd_bits*/
				95 163>; /*screen_widht, screen_height*/
			lcd_timing = <24 36 0 /*hs_width,hs_bp,hs_pol*/
				2 8 0>; /*vs_width,vs_bp,vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clock,1=htotal,2=vtotal)*/
				0 /*clk_ss_level*/
				1 /*clk_auto_generate*/
				48715200>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				400 /*bit_rate_max(MHz)*/
				0 /*factor(*100, default 0 for auto)*/
				1 /*operation_mode_init(0=video, 1=command)*/
				0 /*operation_mode_display(0=video, 1=command)*/
				2 /*
				   *video_mode_type
				   *(0=sync_pulse,1=sync_event,2=burst)
				   */
				0 /*clk_always_hs(0=disable,1=enable)*/
				0>; /*phy_switch(0=auto,1=standard,2=slow)*/
				/* dsi_init: data_type, num, data... */
			dsi_init_on = <
				0xff 10
				0xf0 3 0 1 30 /* reset high, delay 30ms */
				0xf0 3 0 0 10 /* reset low, delay 10ms */
				0xf0 3 0 1 30 /* reset high, delay 30ms */
				0xfc 2 0x04 3 /* check_reg, check_cnt */
				0xff 0xff>; /* ending flag */
			dsi_init_off = <0xff 0xff>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <3>;
				/* power step: type,index,value,delay(ms) */
			power_on_step = <
					0 1 0 200
					2 0 0 0
					0xff 0 0 0>;
			power_off_step = <
					2 0 0 0
					0 0 0 20
					0 1 1 100
					0xff 0 0 0>;
			backlight_index = <0>;
		};

		lcd_4{
			model_name = "P070ACB_FT";
			interface = "mipi";
			basic_setting = <600 1024 /*h_active, v_active*/
				770 1070 /*h_period, v_period*/
				8 /*lcd_bits*/
				3 5>; /*screen_widht, screen_height*/
			lcd_timing = <10 80 0 /*hs_width,hs_bp,hs_pol*/
				6 20 0>; /*vs_width,vs_bp,vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clock,1=htotal,2=vtotal)*/
				0 /*clk_ss_level*/
				1 /*clk_auto_generate*/
				49434000>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				400 /*bit_rate_max(MHz)*/
				0 /*factor(*100, default 0 for auto)*/
				1 /*operation_mode_init(0=video, 1=command)*/
				0 /*operation_mode_display(0=video, 1=command)*/
				2 /*
				   *video_mode_type
				   *(0=sync_pulse,1=sync_event,2=burst)
				   */
				0 /*clk_always_hs(0=disable,1=enable)*/
				0>; /*phy_switch(0=auto,1=standard,2=slow)*/
				/* dsi_init: data_type, num, data... */
			dsi_init_on = <
				0xff 10
				0xf0 3 0 1 30 /* reset high, delay 30ms */
				0xf0 3 0 0 10 /* reset low, delay 10ms */
				0xf0 3 0 1 30 /* reset high, delay 30ms */
				0xfc 2 0x04 3 /* check_reg, check_cnt */
				0xff 0xff>; /* ending flag */
			dsi_init_off = <0xff 0xff>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <4>;
				/* power step: type,index,value,delay(ms) */
			power_on_step = <
					0 1 0 200 /* panel power on */
					2 0 0 0
					0xff 0 0 0>;
			power_off_step = <
					2 0 0 0
					0 0 0 20  /* reset low */
					0 1 1 100 /* panel power off */
					0xff 0 0 0>;
			backlight_index = <0>;
		};
	};

	lcd_extern{
		compatible = "amlogic, lcd_extern";
		dev_name = "lcd_extern";
		status = "okay";
		key_valid = <0>;

		extern_1{
			index = <1>;
			extern_name = "mipi_default"; //TV070WSM
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0xfd 1 100   /* delay */
				0x15 2 0x62 0x01
				0x39 5 0xff 0xaa 0x55 0x25 0x01
				0x15 2 0xfc 0x08
				0xff 1   /* delay */
				0x15 2 0xfc 0x00
				0x39 5 0xff 0xaa 0x55 0x25 0x00
				0xff 20   /* delay */
				0x39 6 0xf0 0x55 0xaa 0x52 0x08 0x00
				0x39 3 0xb1 0x68 0x41
				0x15 2 0xb5 0x88
				0x15 2 0xb6 0x0f
				0x39 5 0xb8 0x01 0x01 0x12 0x01
				0x39 3 0xbb 0x11 0x11
				0x39 3 0xbc 0x05 0x05
				0x15 2 0xc7 0x03
				0x39 6 0xbd 0x03 0x02 0x19 0x17 0x00
				0x15 2 0xc8 0x80
				0x39 6 0xf0 0x55 0xaa 0x52 0x08 0x01
				0x39 3 0xB2 0x01 0x01
				0x39 3 0xB3 0x28 0x28
				0x39 3 0xB4 0x14 0x14
				0x39 3 0xB8 0x05 0x05
				0x39 3 0xB9 0x45 0x45
				0x39 3 0xBA 0x25 0x25
				0x39 3 0xBC 0x88 0x00
				0x39 3 0xBD 0x88 0x00
				0x39 6 0xF0 0x55 0xAA 0x52 0x08 0x02
				0x15 2 0xEE 0x00
				0x39 17 0xB0 0x00 0x4B 0x00 0x5C 0x00 0x79 0x00 0x94 0x00 0xA6 0x00 0xD8 0x00 0xF2 0x01 0x19
				0x39 17 0xB1 0x01 0x39 0x01 0x77 0x01 0xA2 0x01 0xF2 0x02 0x32 0x02 0x34 0x02 0x6D 0x02 0xA2
				0x39 17 0xB2 0x02 0xC7 0x02 0xF2 0x03 0x18 0x03 0x43 0x03 0x65 0x03 0x86 0x03 0x8F 0x03 0x94
				0x39 5 0xB3 0x03 0x96 0x03 0x98
				0x39 17 0xB4 0x00 0x84 0x00 0x91 0x00 0xA4 0x00 0xB6 0x00 0xCA 0x00 0xE9 0x01 0x02 0x01 0x2A
				0x39 17 0xB5 0x01 0x49 0x01 0x82 0x01 0xAF 0x01 0xF7 0x02 0x36 0x02 0x38 0x02 0x70 0x02 0xA6
				0x39 17 0xB6 0x02 0xC8 0x02 0xF5 0x03 0x1A 0x03 0x43 0x03 0x62 0x03 0x82 0x03 0x8F 0x03 0x94
				0x39 5 0xB7 0x03 0x96 0x03 0x98
				0x39 17 0xB8 0x01 0x22 0x01 0x27 0x01 0x2E 0x01 0x38 0x01 0x40 0x01 0x53 0x01 0x60 0x01 0x7B
				0x39 17 0xB9 0x01 0x8C 0x01 0xB5 0x01 0xD3 0x02 0x11 0x02 0x49 0x02 0x4A 0x02 0x7F 0x02 0xB1
				0x39 17 0xBA 0x02 0xD1 0x03 0x00 0x03 0x22 0x03 0x49 0x03 0x60 0x03 0x7A 0x03 0x8B 0x03 0x8F
				0x39 5 0xBB 0x03 0x93 0x03 0x9A
				0x39 17 0xBC 0x00 0x37 0x00 0x48 0x00 0x65 0x00 0x80 0x00 0x92 0x00 0xC4 0x00 0xDE 0x01 0x05
				0x39 17 0xBD 0x01 0x31 0x01 0x6F 0x01 0x9E 0x01 0xEE 0x02 0x32 0x02 0x34 0x02 0x71 0x02 0xA7
				0x39 17 0xBE 0x02 0xD3 0x02 0xFE 0x03 0x24 0x03 0x4F 0x03 0x71 0x03 0x92 0x03 0x9B 0x03 0xA0
				0x39 5 0xBF 0x03 0xA6 0x03 0xA8
				0x39 17 0xC0 0x00 0x70 0x00 0x7D 0x00 0x90 0x00 0xA4 0x00 0xB6 0x00 0xD5 0x00 0xEE 0x01 0x16
				0x39 17 0xC1 0x01 0x41 0x01 0x7A 0x01 0xAB 0x01 0xF3 0x02 0x36 0x02 0x38 0x02 0x74 0x02 0xAA
				0x39 17 0xC2 0x02 0xD4 0x03 0x01 0x03 0x26 0x03 0x4F 0x03 0x6E 0x03 0x8E 0x03 0x9B 0x03 0xA0
				0x39 5 0xC3 0x03 0xA6 0x03 0xA8
				0x39 17 0xC4 0x01 0x0E 0x01 0x13 0x01 0x1A 0x01 0x24 0x01 0x2C 0x01 0x3F 0x01 0x4C 0x01 0x67
				0x39 17 0xC5 0x01 0x84 0x01 0xAD 0x01 0xCF 0x02 0x0D 0x02 0x49 0x02 0x4A 0x02 0x83 0x02 0xB5
				0x39 17 0xC6 0x02 0xDD 0x03 0x0C 0x03 0x2E 0x03 0x55 0x03 0x6B 0x03 0x86 0x03 0x97 0x03 0x9B
				0x39 5 0xC7 0x03 0xA1 0x03 0xA8
				0x39 6 0xF0 0x55 0xAA 0x52 0x08 0x04
				0x39 6 0xB1 0x03 0x02 0x02 0x02 0x00
				0x39 6 0xF0 0x55 0xAA 0x52 0x08 0x06
				0x39 3 0xB0 0x11 0x11
				0x39 3 0xB1 0x13 0x13
				0x39 3 0xB2 0x03 0x03
				0x39 3 0xB3 0x34 0x34
				0x39 3 0xB4 0x34 0x34
				0x39 3 0xB5 0x34 0x34
				0x39 3 0xB6 0x34 0x34
				0x39 3 0xB7 0x34 0x34
				0x39 3 0xB8 0x34 0x34
				0x39 3 0xB9 0x34 0x34
				0x39 3 0xBA 0x34 0x34
				0x39 3 0xBB 0x34 0x34
				0x39 3 0xBC 0x34 0x34
				0x39 3 0xBD 0x34 0x34
				0x39 3 0xBE 0x34 0x34
				0x39 3 0xBF 0x34 0x34
				0x39 3 0xC0 0x34 0x34
				0x39 3 0xC1 0x02 0x02
				0x39 3 0xC2 0x12 0x12
				0x39 3 0xC3 0x10 0x10
				0x39 3 0xE5 0x34 0x34
				0x39 6 0xD8 0x00 0x00 0x00 0x00 0x00
				0x39 6 0xD9 0x00 0x00 0x00 0x00 0x00
				0x39 6 0xF0 0x55 0xAA 0x52 0x08 0x05
				0x15 2 0xC0 0x03
				0x15 2 0xC1 0x02
				0x39 3 0xC8 0x01 0x20
				0x15 2 0xE5 0x03
				0x15 2 0xE6 0x03
				0x15 2 0xE7 0x03
				0x15 2 0xE8 0x03
				0x15 2 0xE9 0x03
				0x39 5 0xD1 0x03 0x00 0x3D 0x00
				0x39 6 0xF0 0x55 0xAA 0x52 0x08 0x03
				0x39 3 0xB0 0x11 0x00
				0x39 3 0xB1 0x11 0x00
				0x39 6 0xB2 0x03 0x00 0x00 0x00 0x00
				0x39 6 0xB3 0x03 0x00 0x00 0x00 0x00
				0x39 6 0xBA 0x31 0x00 0x00 0x00 0x00
				0x15 2 0x35 0x00
				0x15 2 0x51 0xFF
				0x15 2 0x53 0x2C
				0x15 2 0x55 0x03
				0x05 1 0x11
				0xfd 1 120  /* delay 120ms */
				0x05 1 0x29
				0xff 0xff /* ending */
				>;
			init_off = <
				0x05 1 0x28 /* display off */
				0xff 10   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xff 150  /* delay 150ms */
				0xff 0xff>;    /*ending*/
		};

		extern_2{
			index = <2>;
			extern_name = "mipi_default"; //P070ACB
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0xfd 1 100   /* delay */
				0x15 2 0x62 0x01
				0x29 5 0xFF 0xAA 0x55 0x25 0x01
				0x23 2 0xFC 0x08
				0xfd 1 1	   /* delay(ms) */
				0x23 2 0xFC 0x00

				0xfd 1 1	   /* delay(ms) */
				0x23 2 0x6F 0x21
				0x23 2 0xF7 0x01
				0xfd 1 1	   /* delay(ms) */
				0x23 2 0x6F 0x21
				0x23 2 0xF7 0x00
				0xfd 1 1	   /* delay(ms) */

				0x23 2 0x6F 0x1A
				0x23 2 0xF7 0x05
				0xfd 1 1	   /* delay(ms) */

				0x29 5 0xFF 0xAA 0x55 0x25 0x00

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x00
				0x29 3 0xB1 0x68 0x41
				0x23 2 0xB5 0x88
				0x29 6 0xBD 0x02 0xB0 0x0C 0x14 0x00
				0x23 2 0xC8 0x80

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x01
				0x29 3 0xB3 0x2D 0x2D
				0x29 3 0xB4 0x19 0x19
				0x23 2 0xB5 0x06

				0x29 3 0xB9 0x36 0x36
				0x29 3 0xBA 0x26 0x26
				0x29 3 0xBC 0xA8 0x01
				0x29 3 0xBD 0xAB 0x01
				0x23 2 0xC0 0x0C

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x02
				0x23 2 0xEE 0x02
				0x29 7 0xB0 0x00 0x50 0x00 0x52 0x00 0x73
				0x23 2 0x6F 0x06
				0x29 7 0xB0 0x00 0x8F 0x00 0xA5 0x00 0xCA
				0x23 2 0x6F 0x0C
				0x29 5 0xB0 0x00 0xEA 0x01 0x1B
				0x29 7 0xB1 0x01 0x42 0x01 0x82 0x01 0xB3
				0x23 2 0x6F 0x06
				0x29 7 0xB1 0x02 0x00 0x02 0x41 0x02 0x42
				0x23 2 0x6F 0x0C
				0x29 5 0xB1 0x02 0x78 0x02 0xB5
				0x29 7 0xB2 0x02 0xDA 0x03 0x12 0x03 0x3A
				0x23 2 0x6F 0x06
				0x29 7 0xB2 0x03 0x6E 0x03 0x8D 0x03 0xB1
				0x23 2 0x6F 0x0C
				0x29 5 0xB2 0x03 0xCA 0x03 0xE8
				0x29 5 0xB3 0x03 0xF4 0x03 0xFF

				0x29 7 0xBC 0x00 0x05 0x00 0x52 0x00 0x73
				0x23 2 0x6F 0x06
				0x29 7 0xBC 0x00 0x8F 0x00 0xA5 0x00 0xCA
				0x23 2 0x6F 0x0C
				0x29 5 0xBC 0x00 0xEA 0x01 0x1B
				0x29 7 0xBD 0x01 0x42 0x01 0x82 0x01 0xB3
				0x23 2 0x6F 0x06
				0x29 7 0xBD 0x02 0x00 0x02 0x41 0x02 0x42
				0x23 2 0x6F 0x0C
				0x29 5 0xBD 0x02 0x78 0x02 0xB5
				0x29 7 0xBE 0x02 0xDA 0x03 0x12 0x03 0x3A
				0x23 2 0x6F 0x06
				0x29 7 0xBE 0x03 0x6E 0x03 0x8D 0x03 0xB1
				0x23 2 0x6F 0x0C
				0x29 5 0xBE 0x03 0xCA 0x03 0xE8
				0x29 5 0xBF 0x03 0xF4 0x03 0xFF

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x03
				0x29 6 0xB2 0x05 0x00 0x00 0x00 0x00
				0x29 6 0xB6 0x05 0x00 0x00 0x00 0x00
				0x29 6 0xB7 0x05 0x00 0x00 0x00 0x00
				0x29 6 0xBA 0x57 0x00 0x00 0x00 0x00
				0x29 6 0xBB 0x57 0x00 0x00 0x00 0x00
				0x29 5 0xC0 0x00 0x34 0x00 0x00
				0x29 5 0xC1 0x00 0x00 0x34 0x00
				0x23 2 0xC4 0x40

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x05
				0x29 3 0xB0 0x17 0x06
				0x29 3 0xB1 0x17 0x06
				0x29 3 0xB2 0x17 0x06
				0x29 3 0xB3 0x17 0x06
				0x29 3 0xB4 0x17 0x06

				0x29 6 0xBD 0x03 0x01 0x03 0x03 0x01
				0x23 2 0xC0 0x05
				0x23 2 0xC4 0x82
				0x23 2 0xC5 0xA2
				0x29 3 0xC8 0x03 0x30
				0x29 3 0xC9 0x03 0x31
				0x29 4 0xCC 0x00 0x00 0x3C
				0x29 4 0xCD 0x00 0x00 0x3C
				0x29 6 0xD1 0x00 0x44 0x09 0x00 0x00
				0x29 6 0xD2 0x00 0x04 0x0B 0x00 0x00

				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x06
				0x29 3 0xB0 0x0B 0x2D
				0x29 3 0xB1 0x2D 0x09
				0x29 3 0xB2 0x2A 0x29
				0x29 3 0xB3 0x34 0x1B
				0x29 3 0xB4 0x19 0x17
				0x29 3 0xB5 0x15 0x13
				0x29 3 0xB6 0x11 0x01
				0x29 3 0xB7 0x34 0x34
				0x29 3 0xB8 0x34 0x2D
				0x29 3 0xB9 0x2D 0x34
				0x29 3 0xBA 0x2D 0x2D
				0x29 3 0xBB 0x34 0x34
				0x29 3 0xBC 0x34 0x34
				0x29 3 0xBD 0x00 0x10
				0x29 3 0xBE 0x12 0x14
				0x29 3 0xBF 0x16 0x18

				0x29 3 0xC0 0x1A 0x34
				0x29 3 0xC1 0x29 0x2A
				0x29 3 0xC2 0x08 0x2D
				0x29 3 0xC3 0x2D 0x0A
				0x29 3 0xC4 0x0A 0x2D
				0x29 3 0xC5 0x2D 0x00
				0x29 3 0xC6 0x2A 0x29
				0x29 3 0xC7 0x34 0x14
				0x29 3 0xC8 0x16 0x18
				0x29 3 0xC9 0x1A 0x10
				0x29 3 0xCA 0x12 0x08
				0x29 3 0xCB 0x34 0x34
				0x29 3 0xCC 0x34 0x2D
				0x29 3 0xCD 0x2D 0x34
				0x29 3 0xCE 0x2D 0x2D
				0x29 3 0xCF 0x34 0x34

				0x29 3 0xD0 0x34 0x34
				0x29 3 0xD1 0x09 0x13
				0x29 3 0xD2 0x11 0x1B
				0x29 3 0xD3 0x19 0x17
				0x29 3 0xD4 0x15 0x34
				0x29 3 0xD5 0x29 0x2A
				0x29 3 0xD6 0x01 0x2D
				0x29 3 0xD7 0x2D 0x0B
				0x29 6 0xD8 0x00 0x00 0x00 0x00 0x00
				0x29 6 0xD9 0x00 0x00 0x00 0x00 0x00

				0x29 3 0xE5 0x34 0x34
				0x29 3 0xE6 0x34 0x34
				0x23 2 0xE7 0x00
				0x29 3 0xE8 0x34 0x34
				0x29 3 0xE9 0x34 0x34
				0x23 2 0xEA 0x00

				0x29 6 0xF0 0x55 0xAA 0x52 0x00 0x00

				0x13 1 0x35
				0x13 1 0x11
				0xfd 1 120	   /* delay(ms) */
				0x13 1 0x29
				0xfd 1 20	   /* delay(ms) */
				0xff 0         /* ending */
				>;
			init_off = <
				0x05 1 0x28 /* display off */
				0xff 10   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xff 150  /* delay 150ms */
				0xff 0xff>;    /*ending*/
		};

		extern_3{
			index = <3>;
			extern_name = "mipi_default"; //TV070WSM_FT
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0x23 2 0xE0 0x00
				0x23 2 0xE1 0x93
				0x23 2 0xE2 0x65
				0x23 2 0xE3 0xF8
				0x23 2 0xE0 0x01
				0x23 2 0x00 0x00
				0x23 2 0x01 0x90
				0x23 2 0x03 0x00
				0x23 2 0x04 0x90
				0x23 2 0x17 0x00
				0x23 2 0x18 0xB0
				0x23 2 0x19 0x01
				0x23 2 0x1A 0x00
				0x23 2 0x1B 0xB0
				0x23 2 0x1C 0x01
				0x23 2 0x1F 0x3E
				0x23 2 0x20 0x2F
				0x23 2 0x21 0x2F
				0x23 2 0x22 0x0E
				0x23 2 0x37 0x69
				0x23 2 0x38 0x05
				0x23 2 0x39 0x00
				0x23 2 0x3A 0x01
				0x23 2 0x3C 0x90
				0x23 2 0x3D 0xFF
				0x23 2 0x3E 0xFF
				0x23 2 0x3F 0xFF
				0x23 2 0x40 0x02
				0x23 2 0x41 0x80
				0x23 2 0x42 0x99
				0x23 2 0x43 0x06
				0x23 2 0x44 0x09
				0x23 2 0x45 0x3C
				0x23 2 0x4B 0x04
				0x23 2 0x55 0x0D
				0x23 2 0x56 0x01
				0x23 2 0x57 0x89
				0x23 2 0x58 0x0A
				0x23 2 0x59 0x0A
				0x23 2 0x5A 0x27
				0x23 2 0x5B 0x15
				0x23 2 0x5D 0x7C
				0x23 2 0x5E 0x67
				0x23 2 0x5F 0x58
				0x23 2 0x60 0x4C
				0x23 2 0x61 0x48
				0x23 2 0x62 0x38
				0x23 2 0x63 0x3C
				0x23 2 0x64 0x24
				0x23 2 0x65 0x3B
				0x23 2 0x66 0x38
				0x23 2 0x67 0x36
				0x23 2 0x68 0x53
				0x23 2 0x69 0x3F
				0x23 2 0x6A 0x44
				0x23 2 0x6B 0x35
				0x23 2 0x6C 0x2E
				0x23 2 0x6D 0x1F
				0x23 2 0x6E 0x0C
				0x23 2 0x6F 0x00
				0x23 2 0x70 0x7C
				0x23 2 0x71 0x67
				0x23 2 0x72 0x58
				0x23 2 0x73 0x4C
				0x23 2 0x74 0x48
				0x23 2 0x75 0x38
				0x23 2 0x76 0x3C
				0x23 2 0x77 0x24
				0x23 2 0x78 0x3B
				0x23 2 0x79 0x38
				0x23 2 0x7A 0x36
				0x23 2 0x7B 0x53
				0x23 2 0x7C 0x3F
				0x23 2 0x7D 0x44
				0x23 2 0x7E 0x35
				0x23 2 0x7F 0x2E
				0x23 2 0x80 0x1F
				0x23 2 0x81 0x0C
				0x23 2 0x82 0x00
				0x23 2 0xE0 0x02
				0x23 2 0x00 0x45
				0x23 2 0x01 0x45
				0x23 2 0x02 0x47
				0x23 2 0x03 0x47
				0x23 2 0x04 0x41
				0x23 2 0x05 0x41
				0x23 2 0x06 0x1F
				0x23 2 0x07 0x1F
				0x23 2 0x08 0x1F
				0x23 2 0x09 0x1F
				0x23 2 0x0A 0x1F
				0x23 2 0x0B 0x1F
				0x23 2 0x0C 0x1F
				0x23 2 0x0D 0x1D
				0x23 2 0x0E 0x1D
				0x23 2 0x0F 0x1D
				0x23 2 0x10 0x1F
				0x23 2 0x11 0x1F
				0x23 2 0x12 0x1F
				0x23 2 0x13 0x1F
				0x23 2 0x14 0x1F
				0x23 2 0x15 0x1F
				0x23 2 0x16 0x44
				0x23 2 0x17 0x44
				0x23 2 0x18 0x46
				0x23 2 0x19 0x46
				0x23 2 0x1A 0x40
				0x23 2 0x1B 0x40
				0x23 2 0x1C 0x1F
				0x23 2 0x1D 0x1F
				0x23 2 0x1E 0x1F
				0x23 2 0x1F 0x1F
				0x23 2 0x20 0x1F
				0x23 2 0x21 0x1F
				0x23 2 0x22 0x1F
				0x23 2 0x23 0x1D
				0x23 2 0x24 0x1D
				0x23 2 0x25 0x1D
				0x23 2 0x26 0x1F
				0x23 2 0x27 0x1F
				0x23 2 0x28 0x1F
				0x23 2 0x29 0x1F
				0x23 2 0x2A 0x1F
				0x23 2 0x2B 0x1F
				0x23 2 0x58 0x40
				0x23 2 0x59 0x00
				0x23 2 0x5A 0x00
				0x23 2 0x5B 0x10
				0x23 2 0x5C 0x06
				0x23 2 0x5D 0x20
				0x23 2 0x5E 0x00
				0x23 2 0x5F 0x00
				0x23 2 0x61 0x00
				0x23 2 0x62 0x00
				0x23 2 0x63 0x7A
				0x23 2 0x64 0x7A
				0x23 2 0x65 0x00
				0x23 2 0x66 0x00
				0x23 2 0x67 0x32
				0x23 2 0x68 0x08
				0x23 2 0x69 0x7A
				0x23 2 0x6A 0x7A
				0x23 2 0x6B 0x00
				0x23 2 0x6C 0x00
				0x23 2 0x6D 0x04
				0x23 2 0x6E 0x04
				0x23 2 0x6F 0x88
				0x23 2 0x70 0x00
				0x23 2 0x71 0x00
				0x23 2 0x72 0x06
				0x23 2 0x73 0x7B
				0x23 2 0x74 0x00
				0x23 2 0x75 0x07
				0x23 2 0x76 0x00
				0x23 2 0x77 0x5D
				0x23 2 0x78 0x17
				0x23 2 0x79 0x1F
				0x23 2 0x7A 0x00
				0x23 2 0x7B 0x00
				0x23 2 0x7C 0x00
				0x23 2 0x7D 0x03
				0x23 2 0x7E 0x7B
				0x23 2 0xE0 0x03
				0x23 2 0xAF 0x20
				0x23 2 0xE0 0x04
				0x23 2 0x09 0x11
				0x23 2 0x0E 0x48
				0x23 2 0x2B 0x2B
				0x23 2 0x2E 0x44
				0x23 2 0x41 0xFF
				0x23 2 0xE0 0x00
				0x23 2 0xE6 0x02
				0x23 2 0xE7 0x0C
				0x05 1 0x11
				0xff 120 /* delay 120ms */

				0x23 2 0xE0 0x03
				0x23 2 0x2B 0x01
				0x23 2 0x2C 0x00
				0x23 2 0x30 0x03
				0x23 2 0x31 0xCC
				0x23 2 0x32 0x03
				0x23 2 0x33 0xC9
				0x23 2 0x34 0x03
				0x23 2 0x35 0xC0
				0x23 2 0x36 0x03
				0x23 2 0x37 0xB3
				0x23 2 0x38 0x03
				0x23 2 0x39 0xAB
				0x23 2 0x3A 0x03
				0x23 2 0x3B 0x9D
				0x23 2 0x3C 0x03
				0x23 2 0x3D 0x8F
				0x23 2 0x3E 0x03
				0x23 2 0x3F 0x6D
				0x23 2 0x40 0x03
				0x23 2 0x41 0x51
				0x23 2 0x42 0x03
				0x23 2 0x43 0x17
				0x23 2 0x44 0x02
				0x23 2 0x45 0xD8
				0x23 2 0x46 0x02
				0x23 2 0x47 0x60
				0x23 2 0x48 0x01
				0x23 2 0x49 0xEB
				0x23 2 0x4A 0x01
				0x23 2 0x4B 0xE5
				0x23 2 0x4C 0x01
				0x23 2 0x4D 0x6C
				0x23 2 0x4E 0x00
				0x23 2 0x4F 0xF2
				0x23 2 0x50 0x00
				0x23 2 0x51 0xB4
				0x23 2 0x52 0x00
				0x23 2 0x53 0x74
				0x23 2 0x54 0x00
				0x23 2 0x55 0x54
				0x23 2 0x56 0x00
				0x23 2 0x57 0x34
				0x23 2 0x58 0x00
				0x23 2 0x59 0x26
				0x23 2 0x5A 0x00
				0x23 2 0x5B 0x18
				0x23 2 0x5C 0x00
				0x23 2 0x5D 0x11
				0x23 2 0x5E 0x00
				0x23 2 0x5F 0x0A
				0x23 2 0x60 0x00
				0x23 2 0x61 0x03
				0x23 2 0x62 0x00
				0x23 2 0x63 0x00
				0x23 2 0x64 0x03
				0x23 2 0x65 0x9E
				0x23 2 0x66 0x03
				0x23 2 0x67 0x9B
				0x23 2 0x68 0x03
				0x23 2 0x69 0x94
				0x23 2 0x6A 0x03
				0x23 2 0x6B 0x8C
				0x23 2 0x6C 0x03
				0x23 2 0x6D 0x85
				0x23 2 0x6E 0x03
				0x23 2 0x6F 0x76
				0x23 2 0x70 0x03
				0x23 2 0x71 0x67
				0x23 2 0x72 0x03
				0x23 2 0x73 0x4B
				0x23 2 0x74 0x03
				0x23 2 0x75 0x2E
				0x23 2 0x76 0x02
				0x23 2 0x77 0xF7
				0x23 2 0x78 0x02
				0x23 2 0x79 0xB8
				0x23 2 0x7A 0x02
				0x23 2 0x7B 0x46
				0x23 2 0x7C 0x01
				0x23 2 0x7D 0xD6
				0x23 2 0x7E 0x01
				0x23 2 0x7F 0xD0
				0x23 2 0x80 0x01
				0x23 2 0x81 0x5C
				0x23 2 0x82 0x00
				0x23 2 0x83 0xE7
				0x23 2 0x84 0x00
				0x23 2 0x85 0xAA
				0x23 2 0x86 0x00
				0x23 2 0x87 0x74
				0x23 2 0x88 0x00
				0x23 2 0x89 0x5A
				0x23 2 0x8A 0x00
				0x23 2 0x8B 0x3C
				0x23 2 0x8C 0x00
				0x23 2 0x8D 0x2C
				0x23 2 0x8E 0x00
				0x23 2 0x8F 0x1C
				0x23 2 0x90 0x00
				0x23 2 0x91 0x14
				0x23 2 0x92 0x00
				0x23 2 0x93 0x0C
				0x23 2 0x94 0x00
				0x23 2 0x95 0x04
				0x23 2 0x96 0x00
				0x23 2 0x97 0x00
				0x23 2 0xE0 0x00
				0x05 1 0x29
				0xff 5
				0xff  0xff  /* ending flag */
				>;
			init_off = <
				0xff 5
				0x05 1 0x28 /* display off */
				0xff 30   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xff 10  /* delay 150ms */
				0xff 0xff>;    /*ending*/
		};

		extern_4{
			index = <4>;
			extern_name = "mipi_default";/*P070ACB_FT*/
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0x23 2 0xE0 0x00 /* Page 0 */
				0x23 2 0xE1 0x93 /* PASSWORD */
				0x23 2 0xE2 0x65
				0x23 2 0xE3 0xF8
				0x23 2 0x80 0x03
				0x23 2 0xE0 0x01 /* Page 01 */
				0x23 2 0x0C 0x74 /* Set PWRIC */
				0x23 2 0x17 0x00 /* Set Gamma Power */
				0x23 2 0x18 0xEF /* VGMP=5.1V */
				0x23 2 0x19 0x00
				0x23 2 0x1A 0x00
				0x23 2 0x1B 0xEF /* VGMN=-5.1V */
				0x23 2 0x1C 0x00
				0x23 2 0x1F 0x70 /* Set Gate Power */
				0x23 2 0x20 0x2D
				0x23 2 0x21 0x2D
				0x23 2 0x22 0x7E
				0x23 2 0x26 0xF3 /* VDDD from IOVCC */
				0x23 2 0x37 0x09 /* SetPanel */
				0x23 2 0x38 0x04 /* SET RGBCYC */
				0x23 2 0x39 0x00
				0x23 2 0x3A 0x01
				0x23 2 0x3C 0x90
				0x23 2 0x3D 0xFF
				0x23 2 0x3E 0xFF
				0x23 2 0x3F 0xFF
				0x23 2 0x40 0x02 /* Set TCON */
				0x23 2 0x41 0x80
				0x23 2 0x42 0x99
				0x23 2 0x43 0x14
				0x23 2 0x44 0x19
				0x23 2 0x45 0x5A
				0x23 2 0x4B 0x04
				0x23 2 0x55 0x02 /* power voltage */
				0x23 2 0x56 0x01
				0x23 2 0x57 0x69
				0x23 2 0x58 0x0A
				0x23 2 0x59 0x0A
				0x23 2 0x5A 0x2E /* VGH = 16.2V */
				0x23 2 0x5B 0x19 /* VGL = -12V */
				0x23 2 0x5C 0x15
				0x23 2 0x5D 0x77 /* Gamma */
				0x23 2 0x5E 0x56
				0x23 2 0x5F 0x45
				0x23 2 0x60 0x38
				0x23 2 0x61 0x35
				0x23 2 0x62 0x27
				0x23 2 0x63 0x2D
				0x23 2 0x64 0x18
				0x23 2 0x65 0x33
				0x23 2 0x66 0x34
				0x23 2 0x67 0x35
				0x23 2 0x68 0x56
				0x23 2 0x69 0x45
				0x23 2 0x6A 0x4F
				0x23 2 0x6B 0x42
				0x23 2 0x6C 0x40
				0x23 2 0x6D 0x34
				0x23 2 0x6E 0x25
				0x23 2 0x6F 0x02
				0x23 2 0x70 0x77
				0x23 2 0x71 0x56
				0x23 2 0x72 0x45
				0x23 2 0x73 0x38
				0x23 2 0x74 0x35
				0x23 2 0x75 0x27
				0x23 2 0x76 0x2D
				0x23 2 0x77 0x18
				0x23 2 0x78 0x33
				0x23 2 0x79 0x34
				0x23 2 0x7A 0x35
				0x23 2 0x7B 0x56
				0x23 2 0x7C 0x45
				0x23 2 0x7D 0x4F
				0x23 2 0x7E 0x42
				0x23 2 0x7F 0x40
				0x23 2 0x80 0x34
				0x23 2 0x81 0x25
				0x23 2 0x82 0x02
				0x23 2 0xE0 0x02 /* Page2 */
				0x23 2 0x00 0x53
					/* GIP_L Pin mapping RESET_EVEN */
				0x23 2 0x01 0x55 /* VSSG_EVEN */
				0x23 2 0x02 0x55 /* VSSA_EVEN */
				0x23 2 0x03 0x51 /* STV2_EVEN */
				0x23 2 0x04 0x77 /* VDD2_EVEN */
				0x23 2 0x05 0x57 /* VDD1_EVEN */
				0x23 2 0x06 0x1F
				0x23 2 0x07 0x4F  /* CK12 */
				0x23 2 0x08 0x4D  /* CK10 */
				0x23 2 0x09 0x1F
				0x23 2 0x0A 0x4B  /* CK8 */
				0x23 2 0x0B 0x49  /* CK6 */
				0x23 2 0x0C 0x1F
				0x23 2 0x0D 0x47  /* CK4 */
				0x23 2 0x0E 0x45  /* CK2 */
				0x23 2 0x0F 0x41  /* STV1_EVEN */
				0x23 2 0x10 0x1F
				0x23 2 0x11 0x1F
				0x23 2 0x12 0x1F
				0x23 2 0x13 0x55  /* VGG */
				0x23 2 0x14 0x1F
				0x23 2 0x15 0x1F
				0x23 2 0x16 0x52
					/* GIP_R Pin mapping RESET_ODD */
				0x23 2 0x17 0x55 /* VSSG_ODD */
				0x23 2 0x18 0x55 /* VSSA_ODD */
				0x23 2 0x19 0x50 /* STV2_ODD */
				0x23 2 0x1A 0x77 /* VDD2_ODD */
				0x23 2 0x1B 0x57 /* VDD1_ODD */
				0x23 2 0x1C 0x1F
				0x23 2 0x1D 0x4E /* CK11 */
				0x23 2 0x1E 0x4C /* CK9 */
				0x23 2 0x1F 0x1F
				0x23 2 0x20 0x4A /* CK7 */
				0x23 2 0x21 0x48 /* CK5 */
				0x23 2 0x22 0x1F
				0x23 2 0x23 0x46 /* CK3 */
				0x23 2 0x24 0x44 /* CK1 */
				0x23 2 0x25 0x40 /* STV1_ODD */
				0x23 2 0x26 0x1F
				0x23 2 0x27 0x1F
				0x23 2 0x28 0x1F
				0x23 2 0x29 0x1F
				0x23 2 0x2A 0x1F
				0x23 2 0x2B 0x55 /* VGG */
				0x23 2 0x2C 0x12 /* GIP_L_GS Pin mapping */
				0x23 2 0x2D 0x15
				0x23 2 0x2E 0x15
				0x23 2 0x2F 0x00
				0x23 2 0x30 0x37
				0x23 2 0x31 0x17
				0x23 2 0x32 0x1F
				0x23 2 0x33 0x08
				0x23 2 0x34 0x0A
				0x23 2 0x35 0x1F
				0x23 2 0x36 0x0C
				0x23 2 0x37 0x0E
				0x23 2 0x38 0x1F
				0x23 2 0x39 0x04
				0x23 2 0x3A 0x06
				0x23 2 0x3B 0x10
				0x23 2 0x3C 0x1F
				0x23 2 0x3D 0x1F
				0x23 2 0x3E 0x1F
				0x23 2 0x3F 0x15
				0x23 2 0x40 0x1F
				0x23 2 0x41 0x1F
				0x23 2 0x42 0x13 /* GIP_R_GS Pin mapping */
				0x23 2 0x43 0x15
				0x23 2 0x44 0x15
				0x23 2 0x45 0x01
				0x23 2 0x46 0x37
				0x23 2 0x47 0x17
				0x23 2 0x48 0x1F
				0x23 2 0x49 0x09
				0x23 2 0x4A 0x0B
				0x23 2 0x4B 0x1F
				0x23 2 0x4C 0x0D
				0x23 2 0x4D 0x0F
				0x23 2 0x4E 0x1F
				0x23 2 0x4F 0x05
				0x23 2 0x50 0x07
				0x23 2 0x51 0x11
				0x23 2 0x52 0x1F
				0x23 2 0x53 0x1F
				0x23 2 0x54 0x1F
				0x23 2 0x55 0x1F
				0x23 2 0x56 0x1F
				0x23 2 0x57 0x15
				0x23 2 0x58 0x40 /* GIP Timing */
				0x23 2 0x59 0x00
				0x23 2 0x5A 0x00
				0x23 2 0x5B 0x10
				0x23 2 0x5C 0x14
				0x23 2 0x5D 0x40
				0x23 2 0x5E 0x01
				0x23 2 0x5F 0x02
				0x23 2 0x60 0x40
				0x23 2 0x61 0x03
				0x23 2 0x62 0x04
				0x23 2 0x63 0x7A
				0x23 2 0x64 0x7A
				0x23 2 0x65 0x74
				0x23 2 0x66 0x16
				0x23 2 0x67 0xB4
				0x23 2 0x68 0x16
				0x23 2 0x69 0x7A
				0x23 2 0x6A 0x7A
				0x23 2 0x6B 0x0C
				0x23 2 0x6C 0x00
				0x23 2 0x6D 0x04
				0x23 2 0x6E 0x04
				0x23 2 0x6F 0x88
				0x23 2 0x70 0x00
				0x23 2 0x71 0x00
				0x23 2 0x72 0x06
				0x23 2 0x73 0x7B
				0x23 2 0x74 0x00
				0x23 2 0x75 0xBC
				0x23 2 0x76 0x00
				0x23 2 0x77 0x04
				0x23 2 0x78 0x2C
				0x23 2 0x79 0x00
				0x23 2 0x7A 0x00
				0x23 2 0x7B 0x00
				0x23 2 0x7C 0x00
				0x23 2 0x7D 0x03
				0x23 2 0x7E 0x7B
				0x23 2 0xE0 0x04 /* Page4 */
				0x23 2 0x09 0x11 /* Set RGBCYC2 */
				0x23 2 0x0E 0x48
				0x23 2 0x2B 0x2B /* ESD Protect */
				0x23 2 0x2E 0x44
				0x23 2 0xE0 0x00 /* Page0 */
				0x23 2 0xE6 0x02 /* Watch dog */
				0x23 2 0xE7 0x0C
				0x05 1 0x11  /* sleep out */
				0xfd 1 120
				0x05 1 0x29 /* display on */
				0x05 1 0x35
				0xfd 1 20    /* delay(ms) */
				0xFF 0>;     /*ending*/
			init_off = <
				0x05 1 0x28 /* display off */
				0xff 10   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xff 150  /* delay 150ms */
				0xff 0xff>;    /*ending*/
		};
	};

	backlight{
		compatible = "amlogic, backlight-g12a";
		status = "okay";
		key_valid = <0>;
		pinctrl-names = "pwm_on","pwm_off";
		pinctrl-0 = <&pwm_f_pins2>;
		pinctrl-1 = <&bl_pwm_off_pins>;
		pinctrl_version = <2>; /* for uboot */
		bl_pwm_config = <&bl_pwm_conf>;
		bl-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH
			&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
		bl_gpio_names = "GPIOH_4","GPIOH_5";

		/* pwm port: PWM_A, PWM_B, PWM_C, PWM_D, PWM_E, PWM_F, PWM_VS*/
		/* power index:(point gpios_index, 0xff=invalid)
		 * power value:(0=output low, 1=output high, 2=input)
		 * power delay:(unit in ms)
		 */

		backlight_0{
			index = <0>;
			bl_name = "backlight_pwm";
			bl_level_default_uboot_kernel = <100 100>;
			bl_level_attr = <255 10 /*max, min*/
				128 128>; /*mid, mid_mapping*/
			bl_ctrl_method = <1>; /* 1=pwm, 2=pwm_combo, 4=extern */
			bl_power_attr = <0 /*en_gpio_index*/
				1 0 /*on_value, off_value*/
				200 200>; /*on_delay(ms), off_delay(ms)*/
			bl_pwm_port = "PWM_F";
			bl_pwm_attr = <0 /*pwm_method*/
				180 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
				100 25>; /*duty_max(%), duty_min(%)*/
			bl_pwm_power = <1 1 /*pwm_gpio_index, pwm_gpio_off*/
				10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
			bl_pwm_en_sequence_reverse = <0>; /* 1 for reverse */
		};
		backlight_1{
			index = <1>;
			bl_name = "bl_extern";
			bl_level_default_uboot_kernel = <100 100>;
			bl_level_attr = <255 10 /*max, min*/
				128 128>; /*mid, mid_mapping*/
			bl_ctrl_method = <4>; /*1=pwm, 2=pwm_combo, 4=extern*/
			bl_power_attr = <1 /*en_gpio_index*/
				1 0 /*on_value, off_value*/
				200 200>; /*on_delay(ms), off_delay(ms)*/
			bl_extern_index = <0>;
		};
	};
	bl_pwm_conf:bl_pwm_conf{
		pwm_channel_0 {
			pwm_port_index = <5>;
			pwms = <&pwm_ef MESON_PWM_1 30040 0>;
		};
	};

	bl_extern{
		compatible = "amlogic, bl_extern";
		status = "disabled";
		i2c_bus = "i2c_bus_3";

		extern_0{
			index = <0>;
			extern_name = "i2c_lp8556";
			type = <0>; /*0=i2c, 1=spi, 2=mipi*/
			i2c_address = <0x2c>; /*7bit i2c address*/
			dim_max_min = <255 10>;
		};

		extern_1{
			index = <1>;
			extern_name = "mipi_lt070me05";
			type = <2>; /*0=i2c, 1=spi, 2=mipi*/
			dim_max_min = <255 10>;
		};
	};
};/* end of panel */

