lcd: add more panel clk ss step for tl1 [2/2]
authorShaochan Liu <shaochan.liu@amlogic.com>
Tue, 5 Mar 2019 02:58:00 +0000 (10:58 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Tue, 12 Mar 2019 05:44:25 +0000 (21:44 -0800)
PD#SWPL-5290

Problem:
add more panel clk ss step for tl1

Solution:
change 5000ppm to 2000ppm for a step

Verify:
verify by t962x2-x301

Change-Id: Id8e6795f657cc4edf1fa0411721f741e87a0fcba
Signed-off-by: Shaochan Liu <shaochan.liu@amlogic.com>
arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi
arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi
arch/arm64/boot/dts/amlogic/mesontl1_t309-panel.dtsi
arch/arm64/boot/dts/amlogic/mesontl1_x301-panel.dtsi
drivers/amlogic/media/vout/lcd/lcd_clk_ctrl.h
drivers/amlogic/media/vout/lcd/lcd_common.h

index 244e0b6..04ac124 100644 (file)
@@ -78,7 +78,7 @@
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
index 4ef780f..00b4c73 100644 (file)
@@ -81,7 +81,7 @@
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
index 86d619f..906c6c5 100644 (file)
@@ -78,7 +78,7 @@
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
index 028d173..c75c6c7 100644 (file)
@@ -81,7 +81,7 @@
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               6 /*clk_ss_level*/
+                               15 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        lvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               1 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        vbyone_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        p2p_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
                                   *(0=clk, 1=htotal, 2=vtotal, 3=auto_range,
                                   * 4=hdmi_mode)
                                   */
-                               0 /*clk_ss_level*/
+                               3 /*clk_ss_level*/
                                1 /*clk_auto_generate*/
                                0>; /*pixel_clk(unit in Hz)*/
                        minilvds_attr = <
index e9b2777..cc52650 100644 (file)
@@ -259,18 +259,36 @@ static char *lcd_ss_level_table_txlx[] = {
 
 static char *lcd_ss_level_table_tl1[] = {
        "0, disable",
-       "1, 5000ppm",
-       "2, 10000ppm",
-       "3, 15000ppm",
-       "4, 20000ppm",
-       "5, 25000ppm",
-       "6, 30000ppm",
-       "7, 35000ppm",
-       "8, 40000ppm",
-       "9, 45000ppm",
-       "10, 50000ppm",
-       "11, 55000ppm",
-       "12, 60000ppm",
+       "1, 2000ppm",
+       "2, 4000ppm",
+       "3, 6000ppm",
+       "4, 8000ppm",
+       "5, 10000ppm",
+       "6, 12000ppm",
+       "7, 14000ppm",
+       "8, 16000ppm",
+       "9, 18000ppm",
+       "10, 20000ppm",
+       "11, 22000ppm",
+       "12, 24000ppm",
+       "13, 25000ppm",
+       "14, 28000ppm",
+       "15, 30000ppm",
+       "16, 32000ppm",
+       "17, 33000ppm",
+       "18, 36000ppm",
+       "19, 38500ppm",
+       "20, 40000ppm",
+       "21, 42000ppm",
+       "22, 44000ppm",
+       "23, 45000ppm",
+       "24, 48000ppm",
+       "25, 50000ppm",
+       "26, 50000ppm",
+       "27, 54000ppm",
+       "28, 55000ppm",
+       "29, 55000ppm",
+       "30, 60000ppm",
 };
 
 static char *lcd_ss_freq_table_tl1[] = {
@@ -311,6 +329,7 @@ static unsigned int pll_ss_reg_txlx[][3] = {
 
 static unsigned int pll_ss_reg_tl1[][2] = {
        /* dep_sel,  str_m  */
+#if 0
        { 0,          0}, /* 0: disable */
        {10,          1}, /* 1: +/-0.25% */
        {10,          2}, /* 2: +/-0.50% */
@@ -324,6 +343,39 @@ static unsigned int pll_ss_reg_tl1[][2] = {
        {10,         10}, /* 10: +/-2.50% */
        {11,         10}, /* 11: +/-2.75% */
        {12,         10}, /* 12: +/-3.00% */
+#else
+       { 0,          0}, /* 0: disable */
+       { 4,          1}, /* 1: +/-0.1% */
+       { 4,          2}, /* 2: +/-0.2% */
+       { 4,          3}, /* 3: +/-0.3% */
+       { 4,          4}, /* 4: +/-0.4% */
+       { 4,          5}, /* 5: +/-0.5% */
+       { 4,          6}, /* 6: +/-0.6% */
+       { 4,          7}, /* 7: +/-0.7% */
+       { 4,          8}, /* 8: +/-0.8% */
+       { 4,          9}, /* 9: +/-0.9% */
+       { 4,         10}, /* 10: +/-1.0% */
+       { 11,         4}, /* 11: +/-1.1% */
+       { 12,         4}, /* 12: +/-1.2% */
+       { 10,         5}, /* 13: +/-1.25% */
+       { 8,          7}, /* 14: +/-1.4% */
+       { 6,         10}, /* 15: +/-1.5% */
+       { 8,          8}, /* 16: +/-1.6% */
+       { 11,         6}, /* 17: +/-1.65% */
+       { 8,          9}, /* 18: +/-1.8% */
+       { 11,         7}, /* 19: +/-1.925% */
+       { 10,         8}, /* 20: +/-2.0% */
+       { 12,         7}, /* 21: +/-2.1% */
+       { 11,         8}, /* 22: +/-2.2% */
+       { 9,         10}, /* 23: +/-2.25% */
+       { 12,         8}, /* 24: +/-2.4% */
+       { 10,        10}, /* 25: +/-2.5% */
+       { 10,        10}, /* 26: +/-2.5% */
+       { 12,         9}, /* 27: +/-2.7% */
+       { 11,        10}, /* 28: +/-2.75% */
+       { 11,        10}, /* 29: +/-2.75% */
+       { 12,        10}, /* 30: +/-3.0% */
+#endif
 };
 
 /* **********************************
index 175b191..1c571c1 100644 (file)
@@ -38,7 +38,8 @@
 /* 20190108: tl1 support tablet mode */
 /* 20190115: tl1 tcon all interface support */
 /* 20190225: optimize unifykey read flow to avoid crash */
-#define LCD_DRV_VERSION    "20190225"
+/* 20190308: add more panel clk_ss_level step for tl1 */
+#define LCD_DRV_VERSION    "20190308"
 
 #define VPP_OUT_SATURATE            (1 << 0)