summaryrefslogtreecommitdiff
authorhualing chen <hualing.chen@amlogic.com>2019-07-03 06:21:20 (GMT)
committer Tao Zeng <tao.zeng@amlogic.com>2019-07-29 05:30:04 (GMT)
commit63db46f23d8a0afb01482d74eea57dfc1cbd0005 (patch)
tree52273b6517070f2f74059bdc3bee3795cb0c4d0e
parent627335e79294e4306f003fd43c8fe583661cedd5 (diff)
downloadcommon-63db46f23d8a0afb01482d74eea57dfc1cbd0005.zip
common-63db46f23d8a0afb01482d74eea57dfc1cbd0005.tar.gz
common-63db46f23d8a0afb01482d74eea57dfc1cbd0005.tar.bz2
dvb: ci mcu: control CAM throw mcu and used api to control mcu. [2/9]
PD#SWPL-10659 Problem: tsin and tsout pin not config. ci mcu dts not add config. Solution: 1 add tsin and tsout pinmux config. 2 add ci mcu dts config. Verify: verified on t962x3-t312 box. Change-Id: Id8c271e41736e337c12141f879e97bc9673bb99e Signed-off-by: hualing chen <hualing.chen@amlogic.com>
Diffstat
-rw-r--r--MAINTAINERS5
-rw-r--r--arch/arm/boot/dts/amlogic/mesontm2.dtsi39
-rw-r--r--arch/arm/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi1066
-rw-r--r--arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts47
-rw-r--r--arch/arm64/boot/dts/amlogic/mesontm2.dtsi39
-rw-r--r--arch/arm64/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi1066
-rw-r--r--arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts62
7 files changed, 2301 insertions, 23 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 70cffc2..d221b8a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15081,3 +15081,8 @@ F: arch/arm64/boot/dts/amlogic/mesonsm1_drm.dtsi
F: arch/arm/boot/dts/amlogic/sm1_s905d3_ac200_drm_buildroot.dts
F: arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200_drm_buildroot.dts
F: drivers/amlogic/drm/meson_vpu.c
+
+AMLOGIC ADD DTS FOR T312 PLATFORM
+M: hualing chen <hualing.chen@amlogic.com>
+F: arch/arm64/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi
+F: arch/arm/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi \ No newline at end of file
diff --git a/arch/arm/boot/dts/amlogic/mesontm2.dtsi b/arch/arm/boot/dts/amlogic/mesontm2.dtsi
index 3691ac8..d754a7f 100644
--- a/arch/arm/boot/dts/amlogic/mesontm2.dtsi
+++ b/arch/arm/boot/dts/amlogic/mesontm2.dtsi
@@ -2425,6 +2425,45 @@
input-enable;
};
};
+
+ dvb_s_ts0_pins: dvb_s_ts0_pins {
+ mux_1 {
+ groups = "tsin_a_din0",
+ "tsin_a_clk",
+ "tsin_a_sop",
+ "tsin_a_valid";
+ function = "tsin_a";
+ };
+
+ mux_2 {
+ groups = "tsout_dout0",
+ "tsout_dout1",
+ "tsout_dout2",
+ "tsout_dout3",
+ "tsout_dout4",
+ "tsout_dout5",
+ "tsout_dout6",
+ "tsout_dout7",
+ "tsout_clk",
+ "tsout_sop",
+ "tsout_valid";
+ function = "tsout";
+ };
+ mux_3 {
+ groups = "tsin_c_din0_z",
+ "tsin_c_din1_z",
+ "tsin_c_din2_z",
+ "tsin_c_din3_z",
+ "tsin_c_din4_z",
+ "tsin_c_din5_z",
+ "tsin_c_din6_z",
+ "tsin_c_din7_z",
+ "tsin_c_clk_z",
+ "tsin_c_sop_z",
+ "tsin_c_valid_z";
+ function = "tsin_c";
+ };
+ };
};
&gpu{
diff --git a/arch/arm/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi b/arch/arm/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi
new file mode 100644
index 0000000..de49763
--- a/dev/null
+++ b/arch/arm/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi
@@ -0,0 +1,1066 @@
+/*
+ * arch/arm/boot/dts/amlogic/mesontm2_t962x3_ab301-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-tm2";
+ status = "okay";
+ mode = "tv";
+ fr_auto_policy = <1>; /* 0=disable, 1=60/50hz, 2=60/50/48hz */
+ key_valid = <1>;
+ clocks = <&clkc CLKID_VCLK2_ENCL
+ &clkc CLKID_VCLK2_VENCL
+ &clkc CLKID_TCON
+ &clkc CLKID_FCLK_DIV5
+ &clkc CLKID_TCON_PLL_COMP>;
+ clock-names = "encl_top_gate",
+ "encl_int_gate",
+ "tcon_gate",
+ "fclk_div5",
+ "clk_tcon";
+ reg = <0xff660000 0x8100
+ 0xff634400 0x300>;
+ interrupts = <0 3 1
+ 0 78 1
+ 0 88 1>;
+ interrupt-names = "vsync","vbyone","tcon";
+ pinctrl-names = "vbyone","vbyone_off","tcon","tcon_off";
+ pinctrl-0 = <&lcd_vbyone_pins>;
+ pinctrl-1 = <&lcd_vbyone_off_pins>;
+ pinctrl-2 = <&lcd_tcon_pins>;
+ pinctrl-3 = <&lcd_tcon_off_pins>;
+ pinctrl_version = <2>; /* for uboot */
+ memory-region = <&lcd_tcon_reserved>;
+
+ /* power type:(0=cpu_gpio, 2=signal, 3=extern, 0xff=ending) */
+ /* power index:(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_ao GPIOAO_4 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_2 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_3 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_12 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_8 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_10 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_14 GPIO_ACTIVE_HIGH>;
+ lcd_cpu_gpio_names = "GPIOAO_4","GPIOH_2","GPIOH_3","GPIOH_12",
+ "GPIOH_8","GPIOH_10","GPIOH_11","GPIOH_14";
+
+ lvds_0{
+ model_name = "1080p-vfreq";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2060 2650 /*h_period_min,max*/
+ 1100 1480 /*v_period_min,max*/
+ 120000000 160000000>; /*pclk_min,max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 15 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 1 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+
+ lvds_1{
+ model_name = "1080p-hfreq_hdmi";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2080 2720 /*h_period min, max*/
+ 1100 1380 /*v_period min, max*/
+ 133940000 156000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 4 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 0 /*clk_ss_level */
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 1 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+ lvds_2{
+ model_name = "768p-vfreq";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1366 768 /*h_active, v_active*/
+ 1560 806 /*h_period, v_period*/
+ 8 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 1460 2000 /*h_period_min, max */
+ 784 1015 /*v_period_min, max */
+ 50000000 85000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 56 64 0 /*hs_width, hs_bp, hs_pol*/
+ 3 28 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 15 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 0 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+ vbyone_0{
+ model_name = "public_2region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable */
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_1{
+ model_name = "public_1region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2790 /*v_period_min, max*/
+ 552000000 632000000>; /*pclk_min,max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 1 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_2{
+ model_name = "public_2region_hdmi";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*v_period_min, max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 4 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 0 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_3{
+ model_name = "BOE_HV550QU2";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 560000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 1 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 0 3 0 10 /*3d_disable*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 3 2 0 /*3d_disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_4{
+ model_name = "BOE_HV550QU2_1region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min,max*/
+ 2200 2760 /*v_period_min,max*/
+ 560000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 1 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 1 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 0 3 0 10 /*3d_disable*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 3 2 0 /*3d_disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ p2p_0{
+ model_name = "p2p_ceds";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 5000 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x0 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 12 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 3 2 0 200 /* extern init voltage */
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_1{
+ model_name = "p2p_ceds";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 5000 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x0 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_2{
+ model_name = "p2p_chpi";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x10 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_3{
+ model_name = "p2p_chpi";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x10 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 12 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ mlvds_0{
+ model_name = "mlvds_1080p";
+ interface = "minilvds"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2080 2720 /*h_period_min, max*/
+ 2200 1125 /*v_period_min, max*/
+ 133940000 156000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ minilvds_attr = <
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0x660 /* clk_phase */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 0>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ mlvds_1{
+ model_name = "mlvds_768p";
+ interface = "minilvds";/*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 1366 768 /*h_active, v_active*/
+ 1560 806 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 1460 2000 /*h_period_min, max*/
+ 784 1015 /*v_period_min, max*/
+ 50000000 85000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 56 64 0 /*hs_width, hs_bp, hs_pol*/
+ 3 28 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ minilvds_attr = <
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0x660 /* clk_phase */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 0>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ };
+
+ lcd_extern{
+ compatible = "amlogic, lcd_extern";
+ status = "okay";
+ key_valid = <1>;
+ i2c_bus = "i2c_bus_1";
+
+ extern_0{
+ index = <0>;
+ extern_name = "ext_default";
+ status = "disabled";
+ type = <0>; /*0=i2c, 1=spi, 2=mipi*/
+ i2c_address = <0x1c>; /*7bit i2c_addr*/
+ i2c_address2 = <0xff>;
+ cmd_size = <0xff>; /*dynamic cmd_size*/
+
+ /* init on/off:
+ * fixed cmd_size: (type, value...);
+ * cmd_size include all data.
+ * dynamic cmd_size: (type, cmd_size, value...);
+ * cmd_size include value.
+ */
+ /* type: 0x00=cmd with delay(bit[3:0]=1 for address2),
+ * 0xc0=cmd(bit[3:0]=1 for address2),
+ * 0xf0=gpio,
+ * 0xfd=delay,
+ * 0xff=ending
+ */
+ /* value: i2c or spi cmd, or gpio index & level */
+ /* delay: unit ms */
+ init_on = <
+ 0xc0 7 0x20 0x01 0x02 0x00 0x40 0xFF 0x00
+ 0xc0 7 0x80 0x02 0x00 0x40 0x62 0x51 0x73
+ 0xc0 7 0x61 0x06 0x00 0x00 0x00 0x00 0x00
+ 0xc0 7 0xC1 0x05 0x0F 0x00 0x08 0x70 0x00
+ 0xc0 7 0x13 0x01 0x00 0x00 0x00 0x00 0x00
+ 0xc0 7 0x3D 0x02 0x01 0x00 0x00 0x00 0x00
+ 0xc0 7 0xED 0x0D 0x01 0x00 0x00 0x00 0x00
+ 0xc0 7 0x23 0x02 0x00 0x00 0x00 0x00 0x00
+ 0xfd 1 10 /* delay 10ms */
+ 0xff 0>; /*ending*/
+ init_off = <0xff 0>; /*ending*/
+ };
+ extern_1{
+ index = <1>;
+ extern_name = "i2c_T5800Q";
+ status = "disabled";
+ type = <0>; /* 0=i2c, 1=spi, 2=mipi */
+ i2c_address = <0x1c>; /* 7bit i2c address */
+ };
+ extern_2{
+ index = <2>;
+ extern_name = "i2c_ANX6862_7911";
+ status = "okay";
+ type = <0>; /* 0=i2c, 1=spi, 2=mipi */
+ i2c_address = <0x20>; /* 7bit i2c address */
+ i2c_address2 = <0x74>; /* 7bit i2c address */
+ cmd_size = <0xff>;
+
+ init_on = <
+ 0xc0 2 0x01 0x2b
+ 0xc0 2 0x02 0x05
+ 0xc0 2 0x03 0x00
+ 0xc0 2 0x04 0x00
+ 0xc0 2 0x05 0x0c
+ 0xc0 2 0x06 0x04
+ 0xc0 2 0x07 0x21
+ 0xc0 2 0x08 0x0f
+ 0xc0 2 0x09 0x04
+ 0xc0 2 0x0a 0x00
+ 0xc0 2 0x0b 0x04
+ 0xc0 2 0xff 0x00
+ 0xfd 1 100 /* delay 100ms */
+
+ 0xc1 2 0x01 0xca
+ 0xc1 2 0x02 0x3b
+ 0xc1 2 0x03 0x33
+ 0xc1 2 0x04 0x05
+ 0xc1 2 0x05 0x2c
+ 0xc1 2 0x06 0xf2
+ 0xc1 2 0x07 0x9c
+ 0xc1 2 0x08 0x1b
+ 0xc1 2 0x09 0x82
+ 0xc1 2 0x0a 0x3d
+ 0xc1 2 0x0b 0x20
+ 0xc1 2 0x0c 0x11
+ 0xc1 2 0x0d 0xc4
+ 0xc1 2 0x0e 0x1a
+ 0xc1 2 0x0f 0x31
+ 0xc1 2 0x10 0x4c
+ 0xc1 2 0x11 0x12
+ 0xc1 2 0x12 0x90
+ 0xc1 2 0x13 0xf7
+ 0xc1 2 0x14 0x0c
+ 0xc1 2 0x15 0x20
+ 0xc1 2 0x16 0x13
+ 0xff 0>; /*ending*/
+ init_off = <0xff 0>; /*ending*/
+ };
+ };
+
+ backlight{
+ compatible = "amlogic, backlight-tm2";
+ status = "okay";
+ key_valid = <1>;
+ pinctrl-names = "pwm_on","pwm_vs_on",
+ "pwm_combo_0_1_on",
+ "pwm_combo_0_vs_1_on",
+ "pwm_combo_0_1_vs_on",
+ "pwm_off",
+ "pwm_combo_off";
+ pinctrl-0 = </*&pwm_c_pins3*/>;
+ pinctrl-1 = <&bl_pwm_vs_on_pins>;
+ pinctrl-2 = </*&pwm_c_pins3*/ &pwm_d_pins2>;
+ pinctrl-3 = <&bl_pwm_combo_0_vs_on_pins &pwm_d_pins2>;
+ pinctrl-4 = </*&pwm_c_pins3*/ &bl_pwm_combo_1_vs_on_pins>;
+ pinctrl-5 = <&bl_pwm_off_pins>;
+ pinctrl-6 = <&bl_pwm_combo_off_pins>;
+ pinctrl_version = <2>; /* for uboot */
+ interrupts = <0 3 1>;
+ interrupt-names = "ldim_vsync";
+ bl_pwm_config = <&bl_pwm_conf>;
+
+ /* 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) */
+ bl-gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_5 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
+ bl_gpio_names = "GPIOAO_11","GPIOZ_5","GPIOZ_6";
+
+ 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,3=ldim*/
+ 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_C";
+ bl_pwm_attr = <1 /*pwm_method(0=negative, 1=positvie)*/
+ 180 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25>; /*duty_max(%), duty_min(%)*/
+ bl_pwm_power = <1 0 /*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 = "backlight_pwm_vs";
+ 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,3=ldim*/
+ 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_VS";
+ bl_pwm_attr = <1 /*pwm_method(0=negative, 1=positvie)*/
+ 2 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25>; /*duty_max(%), duty_min(%)*/
+ bl_pwm_power = <1 0 /*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_2{
+ index = <2>;
+ bl_name = "backlight_pwm_combo";
+ bl_level_default_uboot_kernel = <31 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <2>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 410 110>; /*on_delay(ms), off_delay(ms)*/
+ bl_pwm_combo_level_mapping = <255 10 /*pwm_0 range*/
+ 0 0>; /*pwm_1 range*/
+ bl_pwm_combo_port = "PWM_C","PWM_D";
+ bl_pwm_combo_attr = <1 /*pwm0 method*/
+ 180 /*pwm0 freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25 /*pwm0 duty_max(%), duty_min(%)*/
+ 1 /*pwm1 method*/
+ 18000 /*pwm1 freq(pwm:Hz, pwm_vs:multi of vs)*/
+ 80 80>; /*pwm1 duty_max(%), duty_min(%)*/
+ bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/
+ 2 0 /*pwm1 gpio_index, gpio_off*/
+ 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
+ };
+ backlight_3{
+ index = <3>;
+ bl_name = "pwm_combo_ldim_test";
+ bl_level_default_uboot_kernel = <31 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <2>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 410 110>; /*on_delay(ms), off_delay(ms)*/
+ bl_pwm_combo_level_mapping = <255 10 /*pwm_0 range*/
+ 0 0>; /*pwm_1 range*/
+ bl_pwm_combo_port = "PWM_C","PWM_D";
+ bl_pwm_combo_attr = <1 /*pwm0 method*/
+ 180 /*pwm0 freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25 /*pwm0 duty_max(%), duty_min(%)*/
+ 1 /*pwm1 method*/
+ 18000 /*pwm1 freq(pwm:Hz, pwm_vs:multi of vs)*/
+ 80 80>; /*pwm1 duty_max(%), duty_min(%)*/
+ bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/
+ 2 0 /*pwm1 gpio_index, gpio_off*/
+ 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
+ bl_ldim_region_row_col = <2 10>;
+ };
+ backlight_4{
+ index = <4>;
+ bl_name = "ldim_global";
+ bl_level_default_uboot_kernel = <100 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <3>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0xff /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 200 200>; /*on_delay(ms), off_delay(ms)*/
+ bl_ldim_region_row_col = <1 1>;
+ bl_ldim_mode = <1>; /*0=left/right side
+ *1=top/bottom side
+ *2=direct
+ */
+ ldim_dev_index = <1>;
+ };
+ backlight_5{
+ index = <5>;
+ bl_name = "ldim_iw7027";
+ bl_level_default_uboot_kernel = <100 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <3>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 200 200>; /*on_delay(ms), off_delay(ms)*/
+ bl_ldim_region_row_col = <1 10>;
+ bl_ldim_mode = <1>; /*0=left/right side
+ *1=top/bottom side
+ *2=direct
+ */
+ ldim_dev_index = <2>;
+ };
+ };
+
+ bl_pwm_conf:bl_pwm_conf{
+ pwm_channel_0 {
+ pwm_port_index = <2>;
+ pwms = <&pwm_cd MESON_PWM_0 30040 0>;
+ };
+ pwm_channel_1 {
+ pwm_port_index = <3>;
+ pwms = <&pwm_cd MESON_PWM_1 30040 0>;
+ };
+ };
+
+ local_dimming_device {
+ compatible = "amlogic, ldim_dev";
+ status = "okay";
+ pinctrl-names = "ldim_pwm",
+ "ldim_pwm_vs",
+ "ldim_pwm_combo",
+ "ldim_pwm_vs_combo",
+ "ldim_pwm_off",
+ "ldim_pwm_combo_off";
+ pinctrl-0 = <&pwm_c_pins3>;
+ pinctrl-1 = <&bl_pwm_vs_on_pins>;
+ pinctrl-2 = <&pwm_c_pins3 &pwm_d_pins2>;
+ pinctrl-3 = <&bl_pwm_vs_on_pins &pwm_d_pins2>;
+ pinctrl-4 = <&bl_pwm_off_pins>;
+ pinctrl-5 = <&bl_pwm_combo_off_pins>;
+ pinctrl_version = <1>; /* for uboot */
+ ldim_pwm_config = <&bl_pwm_conf>;
+
+ /* pwm port: PWM_A, PWM_B, PWM_C, PWM_D, PWM_E, PWM_F, PWM_VS*/
+ ldim_dev-gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_5 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
+ ldim_dev_gpio_names = "GPIOAO_11","GPIOZ_5","GPIOZ_6";
+
+ ldim_dev_0 {
+ index = <0>;
+ type = <0>; /*0=normal, 1=spi, 2=i2c*/
+ ldim_dev_name = "ob3350";
+ ldim_pwm_port = "PWM_C";
+ ldim_pwm_attr = <0 /* pol */
+ 200 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ en_gpio_on_off = <0 /*ldim_dev-gpios index*/
+ 1 0>; /*on_level, off_level*/
+ dim_max_min = <100 20>; /*dim_max, dim_min*/
+ };
+ ldim_dev_1 {
+ index = <1>;
+ type = <0>; /*0=normal, 1=spi, 2=i2c*/
+ ldim_dev_name = "global";
+ ldim_pwm_port = "PWM_C";
+ ldim_pwm_attr = <1 /* pol */
+ 180 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ analog_pwm_port = "PWM_D";
+ analog_pwm_attr = <1 /*pol(0=negative, 1=positvie)*/
+ 18000 /*freq(pwm:Hz)*/
+ 100 25 /*duty_max(%), duty_min(%)*/
+ 80>; /*default duty(%)*/
+ en_gpio_on_off = <0 /*ldim_dev-gpios index*/
+ 1 0>; /*on_level, off_level*/
+ dim_max_min = <100 20>; /*dim_max, dim_min*/
+ };
+
+ ldim_dev_2 {
+ index = <2>;
+ type = <1>; /* 0=normal,1=spi,2=i2c */
+ ldim_dev_name = "iw7027";
+ ldim_pwm_port = "PWM_VS";
+ ldim_pwm_attr = <1 /* pol */
+ 2 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ spi_bus_num = <0>;
+ spi_chip_select = <0>;
+ spi_max_frequency = <1000000>; /* unit: hz */
+ spi_mode = <0>; /* mode: 0, 1, 2, 3 */
+ spi_cs_delay = <10 /* hold_high_delay */
+ 100>; /* clk_cs_delay (unit: us) */
+ en_gpio_on_off = <0 /* ldim_dev-gpios index */
+ 1 /* on_level */
+ 0>; /* off_level */
+ lamp_err_gpio = <0xff>;
+ /* ldim_dev-gpios index, 0xff=invalid */
+ spi_write_check = <0>; /* 0=disable, 1=enable */
+
+ dim_max_min = <0xfff 0x7f>; /* dim_max, dim_min */
+ ldim_region_mapping = <0 1 2 3 4 5 6 7 8 9>;
+
+ cmd_size = <0xff>;
+ /* init: (type, data...) */
+ /* type: 0x00=cmd with delay,
+ * 0xc0=cmd,
+ * 0xfd=delay,
+ * 0xff=ending
+ */
+ /* data: spi data, fill 0x0 for no use */
+ /* delay: unit ms */
+ init_on = <
+ 0xc0 2 0x23 0x03
+ 0xc0 2 0x24 0xff
+ 0xc0 2 0x25 0x00
+ 0xc0 2 0x26 0x00
+ 0xc0 2 0x27 0x60
+ 0xc0 2 0x29 0x00
+ 0xc0 2 0x2a 0x00
+ 0xc0 2 0x2b 0x00
+ 0xc0 2 0x2c 0x73
+ 0xc0 2 0x2d 0x37
+ 0xc0 2 0x31 0x93
+ 0xc0 2 0x32 0x0f
+ 0xc0 2 0x33 0xff
+ 0xc0 2 0x34 0xc8
+ 0xc0 2 0x35 0xbf
+ 0xff 0>;
+ init_off = <0xff 0>;
+ };
+ };
+}; /* end of / */
diff --git a/arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts b/arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts
index b3bb67d..b8b84da 100644
--- a/arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts
+++ b/arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts
@@ -19,7 +19,7 @@
#include "mesontm2.dtsi"
#include "partition_mbox_normal.dtsi"
-#include "mesontm2_t962x3_ab301-panel.dtsi"
+#include "mesontm2_t962x3_t312-panel.dtsi"
/ {
model = "Amlogic TM2 T962X3 T312";
@@ -41,7 +41,7 @@
i2c3 = &i2c3;
i2c4 = &i2c_AO;
spi0 = &spicc0;
- spi1 = &spicc1;
+ spi1 = &spicc_b;
};
memory@00000000 {
@@ -459,9 +459,12 @@
fe0_reset_value = <0>;
fe0_reset_gpio = <&gpio GPIODV_11 GPIO_ACTIVE_HIGH>;
+ /*"parallel","serial","disable"*/
ts0 = "serial";
ts0_control = <0x800>;
ts0_invert = <0>;
+ ts_out_invert = <1>;
+
interrupts = <0 23 1
0 5 1
0 53 1
@@ -474,6 +477,7 @@
"demux2_irq",
"dvr0_irq",
"dvr1_irq",
+ "dvr2_irq",
"dvrfill0_fill",
"dvrfill1_flush";
pinctrl-names = "s_ts0";
@@ -485,6 +489,24 @@
clock-names = "demux", "asyncfifo", "ahbarb0", "uparsertop";
};
+ dvbci {
+ compatible = "amlogic, dvbci";
+ dev_name = "dvbci";
+ io_type = <3>; /* 0=iobus,1=spi,2=cimax,3=spi-t312*/
+ dvbci_io {
+ /*mcu irq pin*/
+ mcu_irq_pin = <&gpio GPIOH_9 GPIO_ACTIVE_HIGH>;
+ /*below is spi config*/
+ /*if use iobus you need add iobus config below */
+ spi_bus_num = <1>;
+ spi_chip_select = <0>;
+ spi_max_frequency = <300000>; /* unit: hz */
+ spi_mode = <3>; /* mode: 0, 1, 2, 3 */
+ spi_cs_delay = <10 100>; /*h delay, cs delay(unit:us)*/
+ spi_write_check = <0>; /* 0=disable, 1=enable */
+ };
+ };
+
tvafe_avin_detect {
compatible = "amlogic, tm2_tvafe_avin_detect";
status = "okay";
@@ -1196,7 +1218,7 @@
wifi{
compatible = "amlogic, aml_wifi";
- status = "okay";
+ status = "disabled";
interrupt_pin = <&gpio GPIOC_12 GPIO_ACTIVE_HIGH>;
irq_trigger_type = "GPIO_IRQ_LOW";
dhd_static_buf; //dhd_static_buf support
@@ -1220,7 +1242,7 @@
};
sd_emmc_b: sdio@ffe05000 {
- status = "okay";
+ status = "disabled";
compatible = "amlogic, meson-mmc-tm2";
reg = <0x0 0xffe05000 0x0 0x800>;
interrupts = <0 190 4>;
@@ -1388,8 +1410,8 @@
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
- //pinctrl-names = "tdm_pins";
- //pinctrl-0 = <&tdmout_c &tdmin_c>;
+ pinctrl-names = "tdm_pins";
+ pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
status = "okay";
};
@@ -1459,7 +1481,7 @@
"pdm_sysclk";
pinctrl-names = "pdm_pins";
- pinctrl-0 = <&pdmin>;
+ pinctrl-0 = </*&pdmin*/>;
/* mode 0~4, defalut:1 */
filter_mode = <1>;
@@ -2063,14 +2085,21 @@
};
&spicc0 {
- status = "okay";
+ status = "disable";
pinctrl-names = "default";
pinctrl-0 = <&spicc0_pins_h>;
cs-gpios = <&gpio GPIOH_20 0>;
};
+&spicc1 {
+ status = "disable";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spicc1_pins_h>;
+ cs-gpios = <&gpio GPIOH_0 0>;
+};
+
&spicc_b {
- status = "disabled";
+ status = "okay";
pinctrl-names= "default";
pinctrl-0=<&spicc1_pins_h>;
num_chipselect = <1>;
diff --git a/arch/arm64/boot/dts/amlogic/mesontm2.dtsi b/arch/arm64/boot/dts/amlogic/mesontm2.dtsi
index e0f0be0..d0c1aef 100644
--- a/arch/arm64/boot/dts/amlogic/mesontm2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/mesontm2.dtsi
@@ -2424,6 +2424,45 @@
input-enable;
};
};
+
+ dvb_s_ts0_pins: dvb_s_ts0_pins {
+ mux_1 {
+ groups = "tsin_a_din0",
+ "tsin_a_clk",
+ "tsin_a_sop",
+ "tsin_a_valid";
+ function = "tsin_a";
+ };
+
+ mux_2 {
+ groups = "tsout_dout0",
+ "tsout_dout1",
+ "tsout_dout2",
+ "tsout_dout3",
+ "tsout_dout4",
+ "tsout_dout5",
+ "tsout_dout6",
+ "tsout_dout7",
+ "tsout_clk",
+ "tsout_sop",
+ "tsout_valid";
+ function = "tsout";
+ };
+ mux_3 {
+ groups = "tsin_c_din0_z",
+ "tsin_c_din1_z",
+ "tsin_c_din2_z",
+ "tsin_c_din3_z",
+ "tsin_c_din4_z",
+ "tsin_c_din5_z",
+ "tsin_c_din6_z",
+ "tsin_c_din7_z",
+ "tsin_c_clk_z",
+ "tsin_c_sop_z",
+ "tsin_c_valid_z";
+ function = "tsin_c";
+ };
+ };
};
&gpu{
diff --git a/arch/arm64/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi b/arch/arm64/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi
new file mode 100644
index 0000000..06f3122
--- a/dev/null
+++ b/arch/arm64/boot/dts/amlogic/mesontm2_t962x3_t312-panel.dtsi
@@ -0,0 +1,1066 @@
+/*
+ * arch/arm64/boot/dts/amlogic/mesontm2_t962x3_ab301-panel.dtsi
+ *
+ * Copyright (C) 2018 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-tm2";
+ status = "okay";
+ mode = "tv";
+ fr_auto_policy = <1>; /* 0=disable, 1=60/50hz, 2=60/50/48hz */
+ key_valid = <1>;
+ clocks = <&clkc CLKID_VCLK2_ENCL
+ &clkc CLKID_VCLK2_VENCL
+ &clkc CLKID_TCON
+ &clkc CLKID_FCLK_DIV5
+ &clkc CLKID_TCON_PLL_COMP>;
+ clock-names = "encl_top_gate",
+ "encl_int_gate",
+ "tcon_gate",
+ "fclk_div5",
+ "clk_tcon";
+ reg = <0x0 0xff660000 0x0 0x8100
+ 0x0 0xff634400 0x0 0x300>;
+ interrupts = <0 3 1
+ 0 78 1
+ 0 88 1>;
+ interrupt-names = "vsync","vbyone","tcon";
+ pinctrl-names = "vbyone","vbyone_off","tcon","tcon_off";
+ pinctrl-0 = <&lcd_vbyone_pins>;
+ pinctrl-1 = <&lcd_vbyone_off_pins>;
+ pinctrl-2 = <&lcd_tcon_pins>;
+ pinctrl-3 = <&lcd_tcon_off_pins>;
+ pinctrl_version = <2>; /* for uboot */
+ memory-region = <&lcd_tcon_reserved>;
+
+ /* power type:(0=cpu_gpio, 2=signal, 3=extern, 0xff=ending) */
+ /* power index:(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_ao GPIOAO_4 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_2 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_3 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_12 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_8 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_10 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOH_14 GPIO_ACTIVE_HIGH>;
+ lcd_cpu_gpio_names = "GPIOAO_4","GPIOH_2","GPIOH_3","GPIOH_12",
+ "GPIOH_8","GPIOH_10","GPIOH_11","GPIOH_14";
+
+ lvds_0{
+ model_name = "1080p-vfreq";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2060 2650 /*h_period_min,max*/
+ 1100 1480 /*v_period_min,max*/
+ 120000000 160000000>; /*pclk_min,max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 15 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 1 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+
+ lvds_1{
+ model_name = "1080p-hfreq_hdmi";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2080 2720 /*h_period min, max*/
+ 1100 1380 /*v_period min, max*/
+ 133940000 156000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 4 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 0 /*clk_ss_level */
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 1 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+ lvds_2{
+ model_name = "768p-vfreq";
+ interface = "lvds"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 1366 768 /*h_active, v_active*/
+ 1560 806 /*h_period, v_period*/
+ 8 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 1460 2000 /*h_period_min, max */
+ 784 1015 /*v_period_min, max */
+ 50000000 85000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 56 64 0 /*hs_width, hs_bp, hs_pol*/
+ 3 28 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 15 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ lvds_attr = <
+ 1 /*lvds_repack*/
+ 0 /*dual_port*/
+ 0 /*pn_swap*/
+ 0 /*port_swap*/
+ 0>; /*lane_reverse*/
+ phy_attr=<0xf 0>; /*vswing_level, preem_level*/
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 0 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0>;
+ };
+ vbyone_0{
+ model_name = "public_2region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable */
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_1{
+ model_name = "public_1region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2790 /*v_period_min, max*/
+ 552000000 632000000>; /*pclk_min,max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 1 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_2{
+ model_name = "public_2region_hdmi";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*v_period_min, max*/
+ lcd_timing = <
+ 33 477 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 4 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 0 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 50 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 200 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_3{
+ model_name = "BOE_HV550QU2";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 560000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 1 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 2 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 0 3 0 10 /*3d_disable*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 3 2 0 /*3d_disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ vbyone_4{
+ model_name = "BOE_HV550QU2_1region";
+ interface = "vbyone"; /*lcd_interface(lvds, vbyone)*/
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 10 /*lcd_bits*/
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 4800 /*h_period_min,max*/
+ 2200 2760 /*v_period_min,max*/
+ 560000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 33 477 1 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ vbyone_attr = <
+ 8 /*lane_count*/
+ 1 /*region_num*/
+ 4 /*byte_mode*/
+ 4>; /*color_fmt*/
+ vbyone_intr_enable = <
+ 1 /*vbyone_intr_enable*/
+ 3>; /*vbyone_vsync_intr_enable*/
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 0 3 0 10 /*3d_disable*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 3 2 0 /*3d_disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <2>;
+ };
+ p2p_0{
+ model_name = "p2p_ceds";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 5000 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x0 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 12 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 3 2 0 200 /* extern init voltage */
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_1{
+ model_name = "p2p_ceds";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 5000 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x0 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_2{
+ model_name = "p2p_chpi";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x10 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ p2p_3{
+ model_name = "p2p_chpi";
+ interface = "p2p"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 3840 2160 /*h_active, v_active*/
+ 4400 2250 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 4240 5100 /*h_period_min, max*/
+ 2200 2760 /*v_period_min, max*/
+ 480000000 624000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 16 29 0 /*hs_width, hs_bp, hs_pol*/
+ 6 65 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ p2p_attr = <
+ 0x10 /* p2p_teyp:
+ * 0x0=ceds, 0x1=cmpi, 0x2=isp, 0x3=epi,
+ * 0x10=chpi, 0x11=cspi, 0x12=usit
+ */
+ 12 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 1>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ mlvds_0{
+ model_name = "mlvds_1080p";
+ interface = "minilvds"; /*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 1920 1080 /*h_active, v_active*/
+ 2200 1125 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 2080 2720 /*h_period_min, max*/
+ 2200 1125 /*v_period_min, max*/
+ 133940000 156000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 44 148 0 /*hs_width, hs_bp, hs_pol*/
+ 5 30 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ minilvds_attr = <
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0x660 /* clk_phase */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 0>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ mlvds_1{
+ model_name = "mlvds_768p";
+ interface = "minilvds";/*lcd_interface
+ *(lvds, vbyone, minilvds, p2p)
+ */
+ basic_setting = <
+ 1366 768 /*h_active, v_active*/
+ 1560 806 /*h_period, v_period*/
+ 8 /*lcd_bits */
+ 16 9>; /*screen_widht, screen_height*/
+ range_setting = <
+ 1460 2000 /*h_period_min, max*/
+ 784 1015 /*v_period_min, max*/
+ 50000000 85000000>; /*pclk_min, max*/
+ lcd_timing = <
+ 56 64 0 /*hs_width, hs_bp, hs_pol*/
+ 3 28 0>; /*vs_width, vs_bp, vs_pol*/
+ clk_attr = <
+ 2 /*fr_adj_type
+ *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
+ * 4=hdmi_mode)
+ */
+ 3 /*clk_ss_level*/
+ 1 /*clk_auto_generate*/
+ 0>; /*pixel_clk(unit in Hz)*/
+ minilvds_attr = <
+ 6 /* channel_num */
+ 0x76543210 /* channel_sel0 */
+ 0xba98 /* channel_sel1 */
+ 0x660 /* clk_phase */
+ 0 /* pn_swap */
+ 0>; /* bit_swap */
+ phy_attr=<0xf 0>; /* vswing_level, preem_level */
+
+ /* power step: type, index, value, delay(ms) */
+ power_on_step = <
+ 0 0 1 20 /*panel power on*/
+ 2 0 0 10 /*signal enable*/
+ 0xff 0 0 0>; /*ending*/
+ power_off_step = <
+ 2 0 0 10 /*signal disable*/
+ 0 0 0 100 /*panel power off*/
+ 0xff 0 0 0>; /*ending*/
+ backlight_index = <0xff>;
+ };
+ };
+
+ lcd_extern{
+ compatible = "amlogic, lcd_extern";
+ status = "okay";
+ key_valid = <1>;
+ i2c_bus = "i2c_bus_1";
+
+ extern_0{
+ index = <0>;
+ extern_name = "ext_default";
+ status = "disabled";
+ type = <0>; /*0=i2c, 1=spi, 2=mipi*/
+ i2c_address = <0x1c>; /*7bit i2c_addr*/
+ i2c_address2 = <0xff>;
+ cmd_size = <0xff>; /*dynamic cmd_size*/
+
+ /* init on/off:
+ * fixed cmd_size: (type, value...);
+ * cmd_size include all data.
+ * dynamic cmd_size: (type, cmd_size, value...);
+ * cmd_size include value.
+ */
+ /* type: 0x00=cmd with delay(bit[3:0]=1 for address2),
+ * 0xc0=cmd(bit[3:0]=1 for address2),
+ * 0xf0=gpio,
+ * 0xfd=delay,
+ * 0xff=ending
+ */
+ /* value: i2c or spi cmd, or gpio index & level */
+ /* delay: unit ms */
+ init_on = <
+ 0xc0 7 0x20 0x01 0x02 0x00 0x40 0xFF 0x00
+ 0xc0 7 0x80 0x02 0x00 0x40 0x62 0x51 0x73
+ 0xc0 7 0x61 0x06 0x00 0x00 0x00 0x00 0x00
+ 0xc0 7 0xC1 0x05 0x0F 0x00 0x08 0x70 0x00
+ 0xc0 7 0x13 0x01 0x00 0x00 0x00 0x00 0x00
+ 0xc0 7 0x3D 0x02 0x01 0x00 0x00 0x00 0x00
+ 0xc0 7 0xED 0x0D 0x01 0x00 0x00 0x00 0x00
+ 0xc0 7 0x23 0x02 0x00 0x00 0x00 0x00 0x00
+ 0xfd 1 10 /* delay 10ms */
+ 0xff 0>; /*ending*/
+ init_off = <0xff 0>; /*ending*/
+ };
+ extern_1{
+ index = <1>;
+ extern_name = "i2c_T5800Q";
+ status = "disabled";
+ type = <0>; /* 0=i2c, 1=spi, 2=mipi */
+ i2c_address = <0x1c>; /* 7bit i2c address */
+ };
+ extern_2{
+ index = <2>;
+ extern_name = "i2c_ANX6862_7911";
+ status = "okay";
+ type = <0>; /* 0=i2c, 1=spi, 2=mipi */
+ i2c_address = <0x20>; /* 7bit i2c address */
+ i2c_address2 = <0x74>; /* 7bit i2c address */
+ cmd_size = <0xff>;
+
+ init_on = <
+ 0xc0 2 0x01 0x2b
+ 0xc0 2 0x02 0x05
+ 0xc0 2 0x03 0x00
+ 0xc0 2 0x04 0x00
+ 0xc0 2 0x05 0x0c
+ 0xc0 2 0x06 0x04
+ 0xc0 2 0x07 0x21
+ 0xc0 2 0x08 0x0f
+ 0xc0 2 0x09 0x04
+ 0xc0 2 0x0a 0x00
+ 0xc0 2 0x0b 0x04
+ 0xc0 2 0xff 0x00
+ 0xfd 1 100 /* delay 100ms */
+
+ 0xc1 2 0x01 0xca
+ 0xc1 2 0x02 0x3b
+ 0xc1 2 0x03 0x33
+ 0xc1 2 0x04 0x05
+ 0xc1 2 0x05 0x2c
+ 0xc1 2 0x06 0xf2
+ 0xc1 2 0x07 0x9c
+ 0xc1 2 0x08 0x1b
+ 0xc1 2 0x09 0x82
+ 0xc1 2 0x0a 0x3d
+ 0xc1 2 0x0b 0x20
+ 0xc1 2 0x0c 0x11
+ 0xc1 2 0x0d 0xc4
+ 0xc1 2 0x0e 0x1a
+ 0xc1 2 0x0f 0x31
+ 0xc1 2 0x10 0x4c
+ 0xc1 2 0x11 0x12
+ 0xc1 2 0x12 0x90
+ 0xc1 2 0x13 0xf7
+ 0xc1 2 0x14 0x0c
+ 0xc1 2 0x15 0x20
+ 0xc1 2 0x16 0x13
+ 0xff 0>; /*ending*/
+ init_off = <0xff 0>; /*ending*/
+ };
+ };
+
+ backlight{
+ compatible = "amlogic, backlight-tm2";
+ status = "okay";
+ key_valid = <1>;
+ pinctrl-names = "pwm_on","pwm_vs_on",
+ "pwm_combo_0_1_on",
+ "pwm_combo_0_vs_1_on",
+ "pwm_combo_0_1_vs_on",
+ "pwm_off",
+ "pwm_combo_off";
+ pinctrl-0 = </*&pwm_c_pins3*/>;
+ pinctrl-1 = <&bl_pwm_vs_on_pins>;
+ pinctrl-2 = </*&pwm_c_pins3*/ &pwm_d_pins2>;
+ pinctrl-3 = <&bl_pwm_combo_0_vs_on_pins &pwm_d_pins2>;
+ pinctrl-4 = </*&pwm_c_pins3*/ &bl_pwm_combo_1_vs_on_pins>;
+ pinctrl-5 = <&bl_pwm_off_pins>;
+ pinctrl-6 = <&bl_pwm_combo_off_pins>;
+ pinctrl_version = <2>; /* for uboot */
+ interrupts = <0 3 1>;
+ interrupt-names = "ldim_vsync";
+ bl_pwm_config = <&bl_pwm_conf>;
+
+ /* 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) */
+ bl-gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_5 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
+ bl_gpio_names = "GPIOAO_11","GPIOZ_5","GPIOZ_6";
+
+ 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,3=ldim*/
+ 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_C";
+ bl_pwm_attr = <1 /*pwm_method(0=negative, 1=positvie)*/
+ 180 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25>; /*duty_max(%), duty_min(%)*/
+ bl_pwm_power = <1 0 /*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 = "backlight_pwm_vs";
+ 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,3=ldim*/
+ 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_VS";
+ bl_pwm_attr = <1 /*pwm_method(0=negative, 1=positvie)*/
+ 2 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25>; /*duty_max(%), duty_min(%)*/
+ bl_pwm_power = <1 0 /*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_2{
+ index = <2>;
+ bl_name = "backlight_pwm_combo";
+ bl_level_default_uboot_kernel = <31 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <2>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 410 110>; /*on_delay(ms), off_delay(ms)*/
+ bl_pwm_combo_level_mapping = <255 10 /*pwm_0 range*/
+ 0 0>; /*pwm_1 range*/
+ bl_pwm_combo_port = "PWM_C","PWM_D";
+ bl_pwm_combo_attr = <1 /*pwm0 method*/
+ 180 /*pwm0 freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25 /*pwm0 duty_max(%), duty_min(%)*/
+ 1 /*pwm1 method*/
+ 18000 /*pwm1 freq(pwm:Hz, pwm_vs:multi of vs)*/
+ 80 80>; /*pwm1 duty_max(%), duty_min(%)*/
+ bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/
+ 2 0 /*pwm1 gpio_index, gpio_off*/
+ 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
+ };
+ backlight_3{
+ index = <3>;
+ bl_name = "pwm_combo_ldim_test";
+ bl_level_default_uboot_kernel = <31 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <2>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 410 110>; /*on_delay(ms), off_delay(ms)*/
+ bl_pwm_combo_level_mapping = <255 10 /*pwm_0 range*/
+ 0 0>; /*pwm_1 range*/
+ bl_pwm_combo_port = "PWM_C","PWM_D";
+ bl_pwm_combo_attr = <1 /*pwm0 method*/
+ 180 /*pwm0 freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 100 25 /*pwm0 duty_max(%), duty_min(%)*/
+ 1 /*pwm1 method*/
+ 18000 /*pwm1 freq(pwm:Hz, pwm_vs:multi of vs)*/
+ 80 80>; /*pwm1 duty_max(%), duty_min(%)*/
+ bl_pwm_combo_power = <1 0 /*pwm0 gpio_index, gpio_off*/
+ 2 0 /*pwm1 gpio_index, gpio_off*/
+ 10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
+ bl_ldim_region_row_col = <2 10>;
+ };
+ backlight_4{
+ index = <4>;
+ bl_name = "ldim_global";
+ bl_level_default_uboot_kernel = <100 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <3>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0xff /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 200 200>; /*on_delay(ms), off_delay(ms)*/
+ bl_ldim_region_row_col = <1 1>;
+ bl_ldim_mode = <1>; /*0=left/right side
+ *1=top/bottom side
+ *2=direct
+ */
+ ldim_dev_index = <1>;
+ };
+ backlight_5{
+ index = <5>;
+ bl_name = "ldim_iw7027";
+ bl_level_default_uboot_kernel = <100 100>;
+ bl_level_attr = <255 10 /*max, min*/
+ 128 128>; /*mid, mid_mapping*/
+ bl_ctrl_method = <3>; /*1=pwm,2=pwm_combo,3=ldim*/
+ bl_power_attr = <0 /*en_gpio_index*/
+ 1 0 /*on_value, off_value*/
+ 200 200>; /*on_delay(ms), off_delay(ms)*/
+ bl_ldim_region_row_col = <1 10>;
+ bl_ldim_mode = <1>; /*0=left/right side
+ *1=top/bottom side
+ *2=direct
+ */
+ ldim_dev_index = <2>;
+ };
+ };
+
+ bl_pwm_conf:bl_pwm_conf{
+ pwm_channel_0 {
+ pwm_port_index = <2>;
+ pwms = <&pwm_cd MESON_PWM_0 30040 0>;
+ };
+ pwm_channel_1 {
+ pwm_port_index = <3>;
+ pwms = <&pwm_cd MESON_PWM_1 30040 0>;
+ };
+ };
+
+ local_dimming_device {
+ compatible = "amlogic, ldim_dev";
+ status = "okay";
+ pinctrl-names = "ldim_pwm",
+ "ldim_pwm_vs",
+ "ldim_pwm_combo",
+ "ldim_pwm_vs_combo",
+ "ldim_pwm_off",
+ "ldim_pwm_combo_off";
+ pinctrl-0 = <&pwm_c_pins3>;
+ pinctrl-1 = <&bl_pwm_vs_on_pins>;
+ pinctrl-2 = <&pwm_c_pins3 &pwm_d_pins2>;
+ pinctrl-3 = <&bl_pwm_vs_on_pins &pwm_d_pins2>;
+ pinctrl-4 = <&bl_pwm_off_pins>;
+ pinctrl-5 = <&bl_pwm_combo_off_pins>;
+ pinctrl_version = <1>; /* for uboot */
+ ldim_pwm_config = <&bl_pwm_conf>;
+
+ /* pwm port: PWM_A, PWM_B, PWM_C, PWM_D, PWM_E, PWM_F, PWM_VS*/
+ ldim_dev-gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_5 GPIO_ACTIVE_HIGH
+ &gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
+ ldim_dev_gpio_names = "GPIOAO_11","GPIOZ_5","GPIOZ_6";
+
+ ldim_dev_0 {
+ index = <0>;
+ type = <0>; /*0=normal, 1=spi, 2=i2c*/
+ ldim_dev_name = "ob3350";
+ ldim_pwm_port = "PWM_C";
+ ldim_pwm_attr = <0 /* pol */
+ 200 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ en_gpio_on_off = <0 /*ldim_dev-gpios index*/
+ 1 0>; /*on_level, off_level*/
+ dim_max_min = <100 20>; /*dim_max, dim_min*/
+ };
+ ldim_dev_1 {
+ index = <1>;
+ type = <0>; /*0=normal, 1=spi, 2=i2c*/
+ ldim_dev_name = "global";
+ ldim_pwm_port = "PWM_C";
+ ldim_pwm_attr = <1 /* pol */
+ 180 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ analog_pwm_port = "PWM_D";
+ analog_pwm_attr = <1 /*pol(0=negative, 1=positvie)*/
+ 18000 /*freq(pwm:Hz)*/
+ 100 25 /*duty_max(%), duty_min(%)*/
+ 80>; /*default duty(%)*/
+ en_gpio_on_off = <0 /*ldim_dev-gpios index*/
+ 1 0>; /*on_level, off_level*/
+ dim_max_min = <100 20>; /*dim_max, dim_min*/
+ };
+
+ ldim_dev_2 {
+ index = <2>;
+ type = <1>; /* 0=normal,1=spi,2=i2c */
+ ldim_dev_name = "iw7027";
+ ldim_pwm_port = "PWM_VS";
+ ldim_pwm_attr = <1 /* pol */
+ 2 /*freq(pwm:Hz, pwm_vs:multiple of vs)*/
+ 50>;/*default duty(%)*/
+ spi_bus_num = <0>;
+ spi_chip_select = <0>;
+ spi_max_frequency = <1000000>; /* unit: hz */
+ spi_mode = <0>; /* mode: 0, 1, 2, 3 */
+ spi_cs_delay = <10 /* hold_high_delay */
+ 100>; /* clk_cs_delay (unit: us) */
+ en_gpio_on_off = <0 /* ldim_dev-gpios index */
+ 1 /* on_level */
+ 0>; /* off_level */
+ lamp_err_gpio = <0xff>;
+ /* ldim_dev-gpios index, 0xff=invalid */
+ spi_write_check = <0>; /* 0=disable, 1=enable */
+
+ dim_max_min = <0xfff 0x7f>; /* dim_max, dim_min */
+ ldim_region_mapping = <0 1 2 3 4 5 6 7 8 9>;
+
+ cmd_size = <0xff>;
+ /* init: (type, data...) */
+ /* type: 0x00=cmd with delay,
+ * 0xc0=cmd,
+ * 0xfd=delay,
+ * 0xff=ending
+ */
+ /* data: spi data, fill 0x0 for no use */
+ /* delay: unit ms */
+ init_on = <
+ 0xc0 2 0x23 0x03
+ 0xc0 2 0x24 0xff
+ 0xc0 2 0x25 0x00
+ 0xc0 2 0x26 0x00
+ 0xc0 2 0x27 0x60
+ 0xc0 2 0x29 0x00
+ 0xc0 2 0x2a 0x00
+ 0xc0 2 0x2b 0x00
+ 0xc0 2 0x2c 0x73
+ 0xc0 2 0x2d 0x37
+ 0xc0 2 0x31 0x93
+ 0xc0 2 0x32 0x0f
+ 0xc0 2 0x33 0xff
+ 0xc0 2 0x34 0xc8
+ 0xc0 2 0x35 0xbf
+ 0xff 0>;
+ init_off = <0xff 0>;
+ };
+ };
+}; /* end of / */
diff --git a/arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts b/arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts
index 2c150bf9..e650b79 100644
--- a/arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts
+++ b/arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts
@@ -19,7 +19,7 @@
#include "mesontm2.dtsi"
#include "partition_mbox_normal_P_32.dtsi"
-#include "mesontm2_t962x3_ab301-panel.dtsi"
+#include "mesontm2_t962x3_t312-panel.dtsi"
/ {
model = "Amlogic TM2 T962X3 T312";
@@ -40,6 +40,8 @@
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c_AO;
+ spi0 = &spicc0;
+ spi1 = &spicc_b;
};
memory@00000000 {
@@ -449,6 +451,7 @@
compatible = "amlogic, dvb";
dev_name = "dvb";
status = "okay";
+
fe0_mode = "external";
fe0_demod = "Si2168";
fe0_i2c_adap_id = <&i2c0>;
@@ -457,9 +460,12 @@
fe0_reset_value = <0>;
fe0_reset_gpio = <&gpio GPIODV_11 GPIO_ACTIVE_HIGH>;
+ /*"parallel","serial","disable"*/
ts0 = "serial";
ts0_control = <0x800>;
ts0_invert = <0>;
+ ts_out_invert = <1>;
+
interrupts = <0 23 1
0 5 1
0 53 1
@@ -468,14 +474,17 @@
0 18 1
0 24 1>;
interrupt-names = "demux0_irq",
- "demux1_irq",
- "demux2_irq",
- "dvr0_irq",
- "dvr1_irq",
- "dvrfill0_fill",
- "dvrfill1_flush";
+ "demux1_irq",
+ "demux2_irq",
+ "dvr0_irq",
+ "dvr1_irq",
+ "dvr2_irq",
+ "dvrfill0_fill",
+ "dvrfill1_flush";
+
pinctrl-names = "s_ts0";
pinctrl-0 = <&dvb_s_ts0_pins>;
+
clocks = <&clkc CLKID_DEMUX
&clkc CLKID_ASYNC_FIFO
&clkc CLKID_AHB_ARB0
@@ -483,6 +492,24 @@
clock-names = "demux", "asyncfifo", "ahbarb0", "uparsertop";
};
+ dvbci {
+ compatible = "amlogic, dvbci";
+ dev_name = "dvbci";
+ io_type = <3>; /* 0=iobus,1=spi,2=cimax,3=spi-t312*/
+ dvbci_io {
+ /*mcu irq pin*/
+ mcu_irq_pin = <&gpio GPIOH_9 GPIO_ACTIVE_HIGH>;
+ /*below is spi config*/
+ /*if use iobus you need add iobus config below */
+ spi_bus_num = <1>;
+ spi_chip_select = <0>;
+ spi_max_frequency = <300000>; /* unit: hz */
+ spi_mode = <3>; /* mode: 0, 1, 2, 3 */
+ spi_cs_delay = <10 100>; /*h delay, cs delay(unit:us)*/
+ spi_write_check = <0>; /* 0=disable, 1=enable */
+ };
+ };
+
tvafe_avin_detect {
compatible = "amlogic, tm2_tvafe_avin_detect";
status = "okay";
@@ -1194,7 +1221,7 @@
wifi{
compatible = "amlogic, aml_wifi";
- status = "okay";
+ status = "disabled";
interrupt_pin = <&gpio GPIOC_12 GPIO_ACTIVE_HIGH>;
irq_trigger_type = "GPIO_IRQ_LOW";
dhd_static_buf; //dhd_static_buf support
@@ -1218,7 +1245,7 @@
};
sd_emmc_b: sdio@ffe05000 {
- status = "okay";
+ status = "disabled";
compatible = "amlogic, meson-mmc-tm2";
reg = <0x0 0xffe05000 0x0 0x800>;
interrupts = <0 190 4>;
@@ -1385,8 +1412,8 @@
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
- //pinctrl-names = "tdm_pins";
- //pinctrl-0 = <&tdmout_c &tdmin_c>;
+ pinctrl-names = "tdm_pins";
+ pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
status = "okay";
};
@@ -1456,7 +1483,7 @@
"pdm_sysclk";
pinctrl-names = "pdm_pins";
- pinctrl-0 = <&pdmin>;
+ pinctrl-0 = </*&pdmin*/>;
/* mode 0~4, defalut:1 */
filter_mode = <1>;
@@ -2053,14 +2080,21 @@
};
&spicc0 {
- status = "okay";
+ status = "disable";
pinctrl-names = "default";
pinctrl-0 = <&spicc0_pins_h>;
cs-gpios = <&gpio GPIOH_20 0>;
};
+&spicc1 {
+ status = "disable";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spicc1_pins_h>;
+ cs-gpios = <&gpio GPIOH_0 0>;
+};
+
&spicc_b {
- status = "disabled";
+ status = "okay";
pinctrl-names= "default";
pinctrl-0=<&spicc1_pins_h>;
num_chipselect = <1>;