blob: 28966b1046fb44bbc172b5d66c310f52844e26eb [file] [log] [blame]
/*
* arch/arm64/boot/dts/amlogic/mesongxm_q200-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-g12a";
dev_name = "lcd";
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>;
clock-names = "dsi_host_gate",
"dsi_phy_gate",
"dsi_meas",
"encl_top_gate",
"encl_int_gate";
reg = <0x0 0xffd07000 0x0 0x400
0x0 0xff644000 0x0 0x2000>;
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_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_lp_continuous(0=stop,1=continue)*/
0>; /*phy_stop_wait(0=auto,1=standard,2=slow)*/
/* dsi_init: data_type, num, data... */
dsi_init_on = <0x05 1 0x11
0xff 20 /*delay(ms)*/
0x05 1 0x29
0xff 20 /*delay(ms)*/
0xff 0xff>; /*ending*/
dsi_init_off = <0x05 1 0x28
0xff 10 /*delay(ms)*/
0x05 1 0x10
0xff 10 /*delay(ms)*/
0xff 0xff>; /*ending*/
extern_init = <0xff>; /*0xff for invalid*/
/* power step: type, index, value, delay(ms) */
power_on_step = <
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 100
0xff 0 0 0>; /*ending*/
backlight_index = <0>;
};
lcd_1{
model_name = "TV070WSM";
interface = "mipi";
basic_setting = <600 1024 /*h_active, v_active*/
680 1040 /*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*/
42400000>; /*pixel_clk(unit in Hz)*/
check_state = <0x04 /* check_reg */
3>; /* check_cnt */
mipi_attr = <4 /*lane_num*/
350 /*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_lp_continuous(0=stop,1=continue)*/
0>; /*phy_stop_wait(0=auto,1=standard,2=slow)*/
/* dsi_init: data_type, num, data... */
dsi_init_on = <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 = <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 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)*/
check_state = <0x04 /* check_reg */
3>; /* check_cnt */
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_lp_continuous(0=stop,1=continue)*/
0>; /*phy_stop_wait(0=auto,1=standard,2=slow)*/
/* dsi_init: data_type, num, data... */
dsi_init_on = <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 = <
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 50
0 0 0 100
0xff 0 0 0>;
backlight_index = <1>;
};
};
lcd_extern{
compatible = "amlogic, lcd_extern";
dev_name = "lcd_extern";
status = "okay";
key_valid = <0>;
extern_0{
index = <0>;
extern_name = "ext_default";
status = "disabled";
type = <0>; /*0=i2c, 1=spi, 2=mipi*/
i2c_address = <0x37>; /*7bit i2c address*/
i2c_second_address = <0xff>; /*0xff for none*/
i2c_bus = "i2c_bus_c";
cmd_size = <4>;
/* init on/off: (type, value..., delay),
* must match cmd_size for every group
* type: 0x00=cmd(bit[3:0]=1 for second_addr),
* 0xf0=gpio, 0xff=ending
* value: i2c or spi cmd, or gpio index & level,
* fill 0x0 for no use
* delay: unit ms
*/
init_on = <0x00 0x00 0x00 0x00
0x00 0x08 0x01 0x00
0x00 0x10 0x3F 0x00
0x00 0x11 0x00 0x00
0x00 0x12 0x00 0x00
0x00 0x13 0xE4 0x00
0x00 0x14 0x02 0x00
0x00 0x15 0x02 0x00
0x00 0x16 0x24 0x00
0x00 0x17 0x00 0x00
0x00 0x18 0x21 0x00
0x00 0x20 0x3F 0x00
0x00 0x21 0xFF 0x00
0x00 0x22 0x00 0x00
0x00 0x23 0x00 0x00
0x00 0x24 0x00 0x00
0x00 0x25 0x00 0x00
0x00 0x26 0xE4 0x00
0x00 0x27 0x00 0x00
0x00 0x28 0x28 0x00
0x00 0x29 0x01 0x00
0x00 0x2A 0x00 0x00
0x00 0x2B 0x01 0x00
0x00 0x2C 0x0E 0x00
0x00 0x2D 0x00 0x00
0x00 0x2E 0x18 0x00
0x00 0x2F 0x02 0x00
0x00 0x30 0x02 0x00
0x00 0x31 0x00 0x00
0x00 0x32 0x63 0x00
0x00 0x40 0x00 0x00
0x00 0x41 0x00 0x00
0x00 0x42 0x00 0x00
0x00 0x12 0x00 0x00
0x00 0x13 0xE4 0x00
0x00 0x14 0x02 0x00
0x00 0x15 0x00 0x00
0x00 0x16 0x0D 0x00
0x00 0x17 0x00 0x00
0x00 0x18 0x21 0x00
0x00 0x41 0x06 0x00
0x00 0x00 0x01 0x00
0x00 0x08 0x00 0x00
0x00 0x10 0x00 0x00
0x00 0x11 0x0F 0x00
0xff 0x00 0x00 0x00>; /*ending*/
init_off = <0x00 0x00 0x01 0x00
0x00 0x08 0x00 0x00
0x00 0x10 0x00 0x00
0x00 0x11 0x0F 0x00
0xff 0x00 0x00 0x00>; /*ending*/
};
extern_1{
index = <1>;
extern_name = "mipi_TV070WSM";
status = "okay";
type = <2>; /* 0=i2c, 1=spi, 2=mipi */
};
extern_2{
index = <2>;
extern_name = "mipi_P070ACB";
status = "okay";
type = <2>; /* 0=i2c, 1=spi, 2=mipi */
};
};
};/* end of panel */