diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-05-05 21:29:47 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-05-05 21:29:47 -0700 |
commit | 498538535aa59677c7d93e998ce7f36d76776007 (patch) | |
tree | 389cd517d2f2542c0a97c5c2716153994373018b | |
parent | 7e84e0ecceed0c53e28cdab8e7a318d33af5957c (diff) | |
parent | 9e5820a45e061a3616f0d120f73882cc54546338 (diff) |
Merge "target: msm8952: Add swire control support for AMOLED panels"
12 files changed, 100 insertions, 63 deletions
diff --git a/dev/gcdb/display/include/panel_jdi_4k_dualdsi_video_nofbc.h b/dev/gcdb/display/include/panel_jdi_4k_dualdsi_video_nofbc.h index ae738690..0fe301a5 100644 --- a/dev/gcdb/display/include/panel_jdi_4k_dualdsi_video_nofbc.h +++ b/dev/gcdb/display/include/panel_jdi_4k_dualdsi_video_nofbc.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -178,7 +178,7 @@ static struct backlight jdi_4k_dualdsi_video_nofbc_backlight = { }; static struct labibb_desc jdi_4k_dualdsi_video_nofbc_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; #endif /*_PANEL_JDI_4K_DUALDSI_VIDEO_NOFBC__H_*/ diff --git a/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_cmd.h b/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_cmd.h index 91ab5821..6320c60b 100644 --- a/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_cmd.h +++ b/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_cmd.h @@ -319,7 +319,7 @@ static struct backlight nt35597_wqxga_dsc_cmd_backlight = { }; static struct labibb_desc nt35597_wqxga_dsc_cmd_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_video.h b/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_video.h index cebb0a33..af9fe141 100644 --- a/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_video.h +++ b/dev/gcdb/display/include/panel_nt35597_wqxga_dsc_video.h @@ -306,7 +306,7 @@ static struct backlight nt35597_wqxga_dsc_video_backlight = { }; static struct labibb_desc nt35597_wqxga_dsc_video_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_cmd.h b/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_cmd.h index 17248bae..432d40bf 100644 --- a/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_cmd.h +++ b/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_cmd.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -260,7 +260,7 @@ static struct backlight nt35597_wqxga_dualdsi_cmd_backlight = { }; static struct labibb_desc nt35597_wqxga_dualdsi_cmd_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_video.h b/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_video.h index 556d6572..bc149966 100644 --- a/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_video.h +++ b/dev/gcdb/display/include/panel_nt35597_wqxga_dualdsi_video.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -252,7 +252,7 @@ static struct backlight nt35597_wqxga_dualdsi_video_backlight = { }; static struct labibb_desc nt35597_wqxga_dualdsi_video_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_r69006_1080p_cmd.h b/dev/gcdb/display/include/panel_r69006_1080p_cmd.h index 21bf9931..d85f3538 100755 --- a/dev/gcdb/display/include/panel_r69006_1080p_cmd.h +++ b/dev/gcdb/display/include/panel_r69006_1080p_cmd.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -314,6 +314,10 @@ static struct backlight r69006_1080p_cmd_backlight = { 1, 1, 4095, 100, 1, "PMIC_8941" }; +static struct labibb_desc r69006_1080p_cmd_labibb = { + 0, 1, 5700000, 5700000, 5700000, 5700000, 3, 3, 1, 0 +}; + #define R69006_1080P_CMD_SIGNATURE 0xFFFF #endif /*_PANEL_R69006_1080P_CMD_H_*/ diff --git a/dev/gcdb/display/include/panel_r69006_1080p_video.h b/dev/gcdb/display/include/panel_r69006_1080p_video.h index e9c5d261..82be298f 100755 --- a/dev/gcdb/display/include/panel_r69006_1080p_video.h +++ b/dev/gcdb/display/include/panel_r69006_1080p_video.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -300,6 +300,10 @@ static struct panel_timing r69006_1080p_video_timing_info = { 0, 4, 0x20, 0x2c }; +static struct labibb_desc r69006_1080p_video_labibb = { + 0, 1, 5700000, 5700000, 5700000, 5700000, 3, 3, 1, 0 +}; + /*---------------------------------------------------------------------------*/ /* Panel reset sequence */ /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_r69007_wqxga_cmd.h b/dev/gcdb/display/include/panel_r69007_wqxga_cmd.h index 70a52256..dab049bd 100644 --- a/dev/gcdb/display/include/panel_r69007_wqxga_cmd.h +++ b/dev/gcdb/display/include/panel_r69007_wqxga_cmd.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -368,7 +368,7 @@ static struct panel_reset_sequence r69007_wqxga_cmd_reset_seq = { }; static struct labibb_desc r69007_wqxga_cmd_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h b/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h index f82439ac..eb56bbf3 100644 --- a/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h +++ b/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -156,7 +156,7 @@ static struct backlight sharp_wqxga_dualdsi_video_backlight = { }; static struct labibb_desc sharp_wqxga_dualdsi_video_labibb = { - 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1 + 0, 1, 5500000, 5500000, 5500000, 5500000, 3, 3, 1, 0 }; /*---------------------------------------------------------------------------*/ diff --git a/platform/msm_shared/include/msm_panel.h b/platform/msm_shared/include/msm_panel.h index 7780f21a..69b0fcb4 100644 --- a/platform/msm_shared/include/msm_panel.h +++ b/platform/msm_shared/include/msm_panel.h @@ -377,6 +377,7 @@ struct labibb_desc { char pwr_up_delay; /* ndx to => 1250, 2500, 5000 and 10000 us */ char pwr_down_delay; /* ndx to => 1250, 2500, 5000 and 10000 us */ char ibb_discharge_en; + bool swire_control; }; struct msm_panel_info { diff --git a/target/msm8952/target_display.c b/target/msm8952/target_display.c index f3c3c32d..96cbaeac 100644 --- a/target/msm8952/target_display.c +++ b/target/msm8952/target_display.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -422,39 +422,53 @@ static void wled_init(struct msm_panel_info *pinfo) struct qpnp_wled_config_data config = {0}; struct labibb_desc *labibb; int display_type = 0; + bool swire_control = 0; + bool wled_avdd_control = 0; labibb = pinfo->labibb; if (labibb) display_type = labibb->amoled_panel; + if (display_type) { + swire_control = labibb->swire_control; + wled_avdd_control = true; + } else { + swire_control = false; + wled_avdd_control = false; + } + config.display_type = display_type; config.lab_init_volt = 4600000; /* fixed, see pmi register */ config.ibb_init_volt = 1400000; /* fixed, see pmi register */ - - if (labibb && labibb->force_config) { - config.lab_min_volt = labibb->lab_min_volt; - config.lab_max_volt = labibb->lab_max_volt; - config.ibb_min_volt = labibb->ibb_min_volt; - config.ibb_max_volt = labibb->ibb_max_volt; - config.pwr_up_delay = labibb->pwr_up_delay; - config.pwr_down_delay = labibb->pwr_down_delay; - config.ibb_discharge_en = labibb->ibb_discharge_en; - } else { - /* default */ - config.pwr_up_delay = 3; - config.pwr_down_delay = 3; - config.ibb_discharge_en = 1; - if (display_type) { /* amoled */ - config.lab_min_volt = 4600000; - config.lab_max_volt = 4600000; - config.ibb_min_volt = 4000000; - config.ibb_max_volt = 4000000; - } else { /* lcd */ - config.lab_min_volt = 5500000; - config.lab_max_volt = 5500000; - config.ibb_min_volt = 5500000; - config.ibb_max_volt = 5500000; + config.lab_ibb_swire_control = swire_control; + config.wled_avdd_control = wled_avdd_control; + + if(!swire_control) { + if (labibb && labibb->force_config) { + config.lab_min_volt = labibb->lab_min_volt; + config.lab_max_volt = labibb->lab_max_volt; + config.ibb_min_volt = labibb->ibb_min_volt; + config.ibb_max_volt = labibb->ibb_max_volt; + config.pwr_up_delay = labibb->pwr_up_delay; + config.pwr_down_delay = labibb->pwr_down_delay; + config.ibb_discharge_en = labibb->ibb_discharge_en; + } else { + /* default */ + config.pwr_up_delay = 3; + config.pwr_down_delay = 3; + config.ibb_discharge_en = 1; + if (display_type) { /* amoled */ + config.lab_min_volt = 4600000; + config.lab_max_volt = 4600000; + config.ibb_min_volt = 4000000; + config.ibb_max_volt = 4000000; + } else { /* lcd */ + config.lab_min_volt = 5500000; + config.lab_max_volt = 5500000; + config.ibb_min_volt = 5500000; + config.ibb_max_volt = 5500000; + } } } diff --git a/target/msm8996/target_display.c b/target/msm8996/target_display.c index 134e12d0..5930c840 100644 --- a/target/msm8996/target_display.c +++ b/target/msm8996/target_display.c @@ -607,39 +607,53 @@ static void wled_init(struct msm_panel_info *pinfo) struct qpnp_wled_config_data config = {0}; struct labibb_desc *labibb; int display_type = 0; + bool swire_control = 0; + bool wled_avdd_control = 0; labibb = pinfo->labibb; if (labibb) display_type = labibb->amoled_panel; + if (display_type) { + swire_control = labibb->swire_control; + wled_avdd_control = true; + } else { + swire_control = false; + wled_avdd_control = false; + } + config.display_type = display_type; config.lab_init_volt = 4600000; /* fixed, see pmi register */ config.ibb_init_volt = 1400000; /* fixed, see pmi register */ - - if (labibb && labibb->force_config) { - config.lab_min_volt = labibb->lab_min_volt; - config.lab_max_volt = labibb->lab_max_volt; - config.ibb_min_volt = labibb->ibb_min_volt; - config.ibb_max_volt = labibb->ibb_max_volt; - config.pwr_up_delay = labibb->pwr_up_delay; - config.pwr_down_delay = labibb->pwr_down_delay; - config.ibb_discharge_en = labibb->ibb_discharge_en; - } else { - /* default */ - config.pwr_up_delay = 3; - config.pwr_down_delay = 3; - config.ibb_discharge_en = 1; - if (display_type) { /* amoled */ - config.lab_min_volt = 4600000; - config.lab_max_volt = 4600000; - config.ibb_min_volt = 4000000; - config.ibb_max_volt = 4000000; - } else { /* lcd */ - config.lab_min_volt = 5500000; - config.lab_max_volt = 5500000; - config.ibb_min_volt = 5500000; - config.ibb_max_volt = 5500000; + config.lab_ibb_swire_control = swire_control; + config.wled_avdd_control = wled_avdd_control; + + if(!swire_control) { + if (labibb && labibb->force_config) { + config.lab_min_volt = labibb->lab_min_volt; + config.lab_max_volt = labibb->lab_max_volt; + config.ibb_min_volt = labibb->ibb_min_volt; + config.ibb_max_volt = labibb->ibb_max_volt; + config.pwr_up_delay = labibb->pwr_up_delay; + config.pwr_down_delay = labibb->pwr_down_delay; + config.ibb_discharge_en = labibb->ibb_discharge_en; + } else { + /* default */ + config.pwr_up_delay = 3; + config.pwr_down_delay = 3; + config.ibb_discharge_en = 1; + if (display_type) { /* amoled */ + config.lab_min_volt = 4600000; + config.lab_max_volt = 4600000; + config.ibb_min_volt = 4000000; + config.ibb_max_volt = 4000000; + } else { /* lcd */ + config.lab_min_volt = 5500000; + config.lab_max_volt = 5500000; + config.ibb_min_volt = 5500000; + config.ibb_max_volt = 5500000; + } } } |