diff options
Diffstat (limited to 'drivers/video/omap2/dss/dpi.c')
-rw-r--r-- | drivers/video/omap2/dss/dpi.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c index 75fb0a515430..2d3ca4ca4a05 100644 --- a/drivers/video/omap2/dss/dpi.c +++ b/drivers/video/omap2/dss/dpi.c | |||
@@ -57,13 +57,13 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft, | |||
57 | if (r) | 57 | if (r) |
58 | return r; | 58 | return r; |
59 | 59 | ||
60 | dss_select_dispc_clk_source(DSS_SRC_DSI1_PLL_FCLK); | 60 | dss_select_dispc_clk_source(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC); |
61 | 61 | ||
62 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); | 62 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); |
63 | if (r) | 63 | if (r) |
64 | return r; | 64 | return r; |
65 | 65 | ||
66 | *fck = dsi_cinfo.dsi1_pll_fclk; | 66 | *fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk; |
67 | *lck_div = dispc_cinfo.lck_div; | 67 | *lck_div = dispc_cinfo.lck_div; |
68 | *pck_div = dispc_cinfo.pck_div; | 68 | *pck_div = dispc_cinfo.pck_div; |
69 | 69 | ||
@@ -107,7 +107,7 @@ static int dpi_set_mode(struct omap_dss_device *dssdev) | |||
107 | bool is_tft; | 107 | bool is_tft; |
108 | int r = 0; | 108 | int r = 0; |
109 | 109 | ||
110 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1); | 110 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK); |
111 | 111 | ||
112 | dispc_set_pol_freq(dssdev->manager->id, dssdev->panel.config, | 112 | dispc_set_pol_freq(dssdev->manager->id, dssdev->panel.config, |
113 | dssdev->panel.acbi, dssdev->panel.acb); | 113 | dssdev->panel.acbi, dssdev->panel.acb); |
@@ -137,7 +137,7 @@ static int dpi_set_mode(struct omap_dss_device *dssdev) | |||
137 | dispc_set_lcd_timings(dssdev->manager->id, t); | 137 | dispc_set_lcd_timings(dssdev->manager->id, t); |
138 | 138 | ||
139 | err0: | 139 | err0: |
140 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1); | 140 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK); |
141 | return r; | 141 | return r; |
142 | } | 142 | } |
143 | 143 | ||
@@ -173,14 +173,14 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev) | |||
173 | goto err1; | 173 | goto err1; |
174 | } | 174 | } |
175 | 175 | ||
176 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1); | 176 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK); |
177 | 177 | ||
178 | r = dpi_basic_init(dssdev); | 178 | r = dpi_basic_init(dssdev); |
179 | if (r) | 179 | if (r) |
180 | goto err2; | 180 | goto err2; |
181 | 181 | ||
182 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL | 182 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL |
183 | dss_clk_enable(DSS_CLK_FCK2); | 183 | dss_clk_enable(DSS_CLK_SYSCK); |
184 | r = dsi_pll_init(dssdev, 0, 1); | 184 | r = dsi_pll_init(dssdev, 0, 1); |
185 | if (r) | 185 | if (r) |
186 | goto err3; | 186 | goto err3; |
@@ -199,10 +199,10 @@ err4: | |||
199 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL | 199 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL |
200 | dsi_pll_uninit(); | 200 | dsi_pll_uninit(); |
201 | err3: | 201 | err3: |
202 | dss_clk_disable(DSS_CLK_FCK2); | 202 | dss_clk_disable(DSS_CLK_SYSCK); |
203 | #endif | 203 | #endif |
204 | err2: | 204 | err2: |
205 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1); | 205 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK); |
206 | if (cpu_is_omap34xx()) | 206 | if (cpu_is_omap34xx()) |
207 | regulator_disable(dpi.vdds_dsi_reg); | 207 | regulator_disable(dpi.vdds_dsi_reg); |
208 | err1: | 208 | err1: |
@@ -217,12 +217,12 @@ void omapdss_dpi_display_disable(struct omap_dss_device *dssdev) | |||
217 | dssdev->manager->disable(dssdev->manager); | 217 | dssdev->manager->disable(dssdev->manager); |
218 | 218 | ||
219 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL | 219 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL |
220 | dss_select_dispc_clk_source(DSS_SRC_DSS1_ALWON_FCLK); | 220 | dss_select_dispc_clk_source(DSS_CLK_SRC_FCK); |
221 | dsi_pll_uninit(); | 221 | dsi_pll_uninit(); |
222 | dss_clk_disable(DSS_CLK_FCK2); | 222 | dss_clk_disable(DSS_CLK_SYSCK); |
223 | #endif | 223 | #endif |
224 | 224 | ||
225 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1); | 225 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK); |
226 | 226 | ||
227 | if (cpu_is_omap34xx()) | 227 | if (cpu_is_omap34xx()) |
228 | regulator_disable(dpi.vdds_dsi_reg); | 228 | regulator_disable(dpi.vdds_dsi_reg); |
@@ -271,7 +271,7 @@ int dpi_check_timings(struct omap_dss_device *dssdev, | |||
271 | if (r) | 271 | if (r) |
272 | return r; | 272 | return r; |
273 | 273 | ||
274 | fck = dsi_cinfo.dsi1_pll_fclk; | 274 | fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk; |
275 | lck_div = dispc_cinfo.lck_div; | 275 | lck_div = dispc_cinfo.lck_div; |
276 | pck_div = dispc_cinfo.pck_div; | 276 | pck_div = dispc_cinfo.pck_div; |
277 | } | 277 | } |
@@ -303,22 +303,27 @@ int dpi_init_display(struct omap_dss_device *dssdev) | |||
303 | { | 303 | { |
304 | DSSDBG("init_display\n"); | 304 | DSSDBG("init_display\n"); |
305 | 305 | ||
306 | return 0; | 306 | if (cpu_is_omap34xx() && dpi.vdds_dsi_reg == NULL) { |
307 | } | 307 | struct regulator *vdds_dsi; |
308 | 308 | ||
309 | int dpi_init(struct platform_device *pdev) | 309 | vdds_dsi = dss_get_vdds_dsi(); |
310 | { | 310 | |
311 | if (cpu_is_omap34xx()) { | 311 | if (IS_ERR(vdds_dsi)) { |
312 | dpi.vdds_dsi_reg = dss_get_vdds_dsi(); | ||
313 | if (IS_ERR(dpi.vdds_dsi_reg)) { | ||
314 | DSSERR("can't get VDDS_DSI regulator\n"); | 312 | DSSERR("can't get VDDS_DSI regulator\n"); |
315 | return PTR_ERR(dpi.vdds_dsi_reg); | 313 | return PTR_ERR(vdds_dsi); |
316 | } | 314 | } |
315 | |||
316 | dpi.vdds_dsi_reg = vdds_dsi; | ||
317 | } | 317 | } |
318 | 318 | ||
319 | return 0; | 319 | return 0; |
320 | } | 320 | } |
321 | 321 | ||
322 | int dpi_init(void) | ||
323 | { | ||
324 | return 0; | ||
325 | } | ||
326 | |||
322 | void dpi_exit(void) | 327 | void dpi_exit(void) |
323 | { | 328 | { |
324 | } | 329 | } |