]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
ARM: tegra12: ardbeg: put DSIC/D into DPD mode
authorTerry Wang <terwang@nvidia.com>
Tue, 3 Dec 2013 10:11:07 +0000 (18:11 +0800)
committerBitan Biswas <bbiswas@nvidia.com>
Fri, 6 Dec 2013 13:57:26 +0000 (05:57 -0800)
Put DSIC/D pads into DPD mode to save additional power for
Ardbeg and TN8 when 19x12 Dumb panel is used.

Bug 1416110

Change-Id: I6944435a83c4541a5334e46ac1a510d1bced84ee
Signed-off-by: Terry Wang <terwang@nvidia.com>
Reviewed-on: http://git-master/r/337249
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
arch/arm/mach-tegra/board-ardbeg-panel.c

index 01559fc0673c87b2a63648b4c389fbc8b52dbf28..b58e4920d4ea89a43f80b4199936df641b5f3160 100644 (file)
@@ -33,6 +33,7 @@
 
 #include <mach/irqs.h>
 #include <mach/dc.h>
+#include <mach/io_dpd.h>
 
 #include "board.h"
 #include "devices.h"
@@ -460,6 +461,16 @@ static struct platform_device ardbeg_nvmap_device  = {
                .platform_data = &ardbeg_nvmap_data,
        },
 };
+static struct tegra_io_dpd dsic_io = {
+       .name                   = "DSIC",
+       .io_dpd_reg_index       = 1,
+       .io_dpd_bit             = 8,
+};
+static struct tegra_io_dpd dsid_io = {
+       .name                   = "DSID",
+       .io_dpd_reg_index       = 1,
+       .io_dpd_bit             = 9,
+};
 
 #ifndef CONFIG_TEGRA_HDMI_PRIMARY
 /* can be called multiple times */
@@ -487,6 +498,8 @@ static struct tegra_panel *ardbeg_panel_configure(struct board_info *board_out,
        case BOARD_E1627:
                panel = &dsi_p_wuxga_10_1;
                dsi_instance = DSI_INSTANCE_0;
+               tegra_io_dpd_enable(&dsic_io);
+               tegra_io_dpd_enable(&dsid_io);
                break;
        case BOARD_E1549:
                panel = &dsi_lgd_wxga_7_0;
@@ -510,6 +523,8 @@ static struct tegra_panel *ardbeg_panel_configure(struct board_info *board_out,
        default:
                panel = &dsi_p_wuxga_10_1;
                dsi_instance = DSI_INSTANCE_0;
+               tegra_io_dpd_enable(&dsic_io);
+               tegra_io_dpd_enable(&dsid_io);
                break;
        }
        if (dsi_instance_out)