/*
 * arch/arm64/boot/dts/amlogic/meson-g12b_skt-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-g12b";
		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 GPIOZ_9 GPIO_ACTIVE_HIGH
				&gpio GPIOZ_8 GPIO_ACTIVE_HIGH>;
		lcd_cpu_gpio_names = "GPIOZ_9","GPIOZ_8";

		lcd_0{
			model_name = "B080XAN01";
			interface = "mipi";
			basic_setting = <768 1024 /*h_active, v_active*/
				948 1140 /*h_period, v_period*/
				8 /*lcd_bits*/
				119 159>; /*screen_widht, screen_height*/
			lcd_timing = <64 56 0 /*hs_width, hs_bp, hs_pol*/
				50 30 0>; /*vs_width, vs_bp, vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clk, 1=htotal, 2=vtotal)*/
				0 /*clk_ss_level */
				1 /*clk_auto_generate*/
				64843200>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				550 /*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)
				   */
				1 /*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 = <0x05 1 0x11
					0xfd 1 20   /*delay(ms)*/
					0x05 1 0x29
					0xfd 1 20   /*delay(ms)*/
					0xff 0>;    /*ending*/
			dsi_init_off = <0x05 1 0x28
					0xfd 1 10   /*delay(ms)*/
					0x05 1 0x10
					0xfd 1 10   /*delay(ms)*/
					0xff 0>;    /*ending*/
			extern_init = <0xff>; /*0xff for invalid*/

			/* power step: type, index, value, delay(ms) */
			power_on_step = <
				0 1 0 100
				0 0 0 10
				0 0 1 20
				2 0 0 0
				0xff 0 0 0>; /*ending*/
			power_off_step = <
				2 0 0 50
				0 0 0 10
				0 1 1 100
				0xff 0 0 0>; /*ending*/
			backlight_index = <0>;
		};

		lcd_1{
			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 0>; /* ending flag */
			dsi_init_off = <0xff 0>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <2>;
				/* 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_3{
			model_name = "TL050FHV02CT";
			interface = "mipi";
			basic_setting = <1080 1920 /*h_active, v_active*/
				1125 2100 /*h_period, v_period*/
				8 /*lcd_bits*/
				65 119>; /*screen_widht, screen_height*/
			lcd_timing = <5 30 0 /*hs_width,hs_bp,hs_pol*/
				44 108 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*/
				118125000>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				960 /*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)
				   */
				1 /*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 0>; /* ending flag */
			dsi_init_off = <0xff 0>; /* ending flag */
				/* extern_init: 0xff for invalid */
			extern_init = <3>;
				/* power step: type,index,value,delay(ms) */
			power_on_step = <
					0 1 0 200
					0 0 1 20
					0 0 0 10
					0 0 1 20
					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 = "TL070WSH27";
			interface = "mipi";
			basic_setting = <1024 600 /*h_active, v_active*/
				1250 630 /*h_period, v_period*/
				8 /*lcd_bits*/
				154 86>; /*screen_widht, screen_height*/
			lcd_timing = <80 100 0 /*hs_width, hs_bp, hs_pol*/
				5 20 0>; /*vs_width, vs_bp, vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clk, 1=htotal, 2=vtotal)*/
				0 /*clk_ss_level */
				1 /*clk_auto_generate*/
				47250000>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				300 /*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)
				   */
				1 /*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 = <0x05 1 0x11
					0xfd 1 20     /*delay(ms)*/
					0x05 1 0x29
					0xfd 1 20     /*delay(ms)*/
					0xff 0>; /*ending*/
			dsi_init_off = <0x05 1 0x28
					0xfd 1 10     /*delay(ms)*/
					0x05 1 0x10
					0xfd 1 10     /*delay(ms)*/
					0xff 0>; /*ending*/
			extern_init = <0xff>; /*0xff for invalid*/

			/* power step: type, index, value, delay(ms) */
			power_on_step = <
				0 1 0 100
				0 0 0 10
				0 0 1 20
				2 0 0 0
				0xff 0 0 0>; /*ending*/
			power_off_step = <
				2 0 0 50
				0 0 0 10
				0 1 1 100
				0xff 0 0 0>; /*ending*/
			backlight_index = <0>;
		};
	};

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

		extern_0{
			index = <0>;
			extern_name = "mipi_default";/*default*/
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0xfd 1 10
				0x05 1 0x11
				0xfd 1 120  /* delay 120ms */
				0x05 1 0x29
				0xff 0>; /*ending*/
			init_off = <
				0x05 1 0x28 /* display off */
				0xfd 1 10   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xfd 1 150  /* delay 150ms */
				0xff 0>; /*ending*/
		};

		extern_2{
			index = <2>;
			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 */
				0xfd 1 10   /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xfd 1 150  /* delay 150ms */
				0xff 0>;    /*ending*/
		};

		extern_3{
			index = <3>;
			extern_name = "mipi_default";/*TL050FHV02CT*/
			status = "okay";
			type = <2>; /* 0=i2c, 1=spi, 2=mipi */
			cmd_size = <0xff>;
			init_on = <
				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x03
				0x29 10 0x90 0x03 0x14 0x09 0x00 0x00
					0x00 0x38 0x00 0x00
				0x29 10 0x91 0x00 0x00 0x00 0x00 0x00
					0x00 0x00 0x00 0x00
				0x29 12 0x92 0x40 0x0B 0x0C 0x0D 0x0E
					0x00 0x38 0x00 0x10 0x03 0x04
				0x29 9 0x94 0x00 0x08 0x0B 0x03 0xD2
					0x03 0xD3 0x0C
				0x29 17 0x95 0x00 0x00 0x00 0x00 0x00
					0x00 0x00 0x00 0x00 0x00 0x00 0x00
					0x00 0x00 0x00 0x00
				0x29 3 0x99 0x00 0x00
				0x29 12 0x9A 0x00 0x00 0x00 0x00 0x00
					0x00 0x00 0x00 0x00 0x00 0x00
				0x29 7 0x9B 0x01 0x38 0x00 0x00 0x00 0x00
				0x29 3 0x9C 0x00 0x00
				0x29 9 0x9D 0x10 0x10 0x10 0x10 0x10
					0x10 0x00 0x00
				0x29 3 0x9E 0x00 0x00
				0x29 11 0xA0 0x9F 0x1F 0x08 0x1F 0x0A
					0x1F 0x00 0x1F 0x14 0x1F
				0x29 11 0xA1 0x15 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xA2 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xA4 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xA5 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x15
				0x29 11 0xA6 0x1F 0x14 0x1F 0x01 0x1F
					0x0B 0x1F 0x09 0x1F 0x1F
				0x29 11 0xA7 0x1F 0x1F 0x0B 0x1F 0x09
					0x1F 0x01 0x1F 0x15 0x1F
				0x29 11 0xA8 0x14 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xA9 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xAB 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x1F
				0x29 11 0xAC 0x1F 0x1F 0x1F 0x1F 0x1F
					0x1F 0x1F 0x1F 0x1F 0x14
				0x29 11 0xAD 0x1F 0x15 0x1F 0x00 0x1F
					0x08 0x1F 0x0A 0x1F 0x1F
				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x00
				0x29 4 0xBC 0x00 0x00 0x00
				0x29 5 0xB8 0x01 0xAF 0x8F 0x8F
				0x29 6 0xF0 0x55 0xAA 0x52 0x08 0x01
				0x29 17 0xD1 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xD2 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xD3 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xD4 0x03 0xC5 0x03 0xFF
				0x29 17 0xD5 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xD6 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xD7 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xD8 0x03 0xC5 0x03 0xFF
				0x29 17 0xD9 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xDD 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xDE 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xDF 0x03 0xC5 0x03 0xFF
				0x29 17 0xE0 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xE1 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xE2 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xE3 0x03 0xC5 0x03 0xFF
				0x29 17 0xE4 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xE5 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xE6 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xE7 0x03 0xC5 0x03 0xFF
				0x29 17 0xE8 0x00 0x00 0x00 0x09 0x00
					0x1F 0x00 0x30 0x00 0x3F 0x00 0x5D
					0x00 0x79 0x00 0xA7
				0x29 17 0xE9 0x00 0xCF 0x01 0x12 0x01
					0x49 0x01 0xA1 0x01 0xEB 0x01 0xED
					0x02 0x2F 0x02 0x74
				0x29 17 0xEA 0x02 0x9F 0x02 0xD5 0x02
					0xFB 0x03 0x2C 0x03 0x4B 0x03 0x73
					0x03 0x8C 0x03 0xA5
				0x29 5 0xEB 0x03 0xC5 0x03 0xFF
				0x29 4 0xB0 0x05 0x05 0x05
				0x29 4 0xB1 0x05 0x05 0x05
				0x29 4 0xB3 0x10 0x10 0x10
				0x29 4 0xB4 0x06 0x06 0x06
				0x29 4 0xB6 0x44 0x44 0x44
				0x29 4 0xB7 0x34 0x34 0x34
				0x29 4 0xB8 0x34 0x34 0x34
				0x29 4 0xB9 0x24 0x24 0x24
				0x29 4 0xBA 0x24 0x24 0x24
				0x29 4 0xBC 0x00 0x70 0x00
				0x29 4 0xBD 0x00 0x70 0x00
				0x23 2 0xBE 0x50
				0x23 2 0x35 0x00
				0x13 1 0x11
				0xfd 1 200
				0x13 1 0x29
				0xfd 1 200
				0xFF 0>; /*ending*/
			init_off = <
				0x05 1 0x28 /* display off */
				0xfd 1 10     /* delay 10ms */
				0x05 1 0x10 /* sleep in */
				0xfd 1 150    /* delay 150ms */
				0xff 0>; /*ending*/
		};
	};

	backlight{
		compatible = "amlogic, backlight-g12b";
		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 */

