diff options
author | Tony Lindgren <tony@atomide.com> | 2013-04-17 20:09:04 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2013-04-17 20:09:04 -0400 |
commit | 4de2a2b4aeabe5c8b11ab8655ad59c55b3d91962 (patch) | |
tree | 8ac400520b4d946c9a4735cac27c1a7b8a9d626c | |
parent | 07961ac7c0ee8b546658717034fe692fd12eefa9 (diff) | |
parent | 29cdecabe22fbf5806ec64d12954b795ba248b77 (diff) |
Merge branch '3.10-lo/board-cleanup' of git://gitorious.org/linux-omap-dss2/linux into omap-for-v3.10/dss
28 files changed, 349 insertions, 679 deletions
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index a3e0aaa4886b..e551aae7d5f4 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "gpmc-smc91x.h" | 38 | #include "gpmc-smc91x.h" |
39 | 39 | ||
40 | #include <video/omapdss.h> | 40 | #include <video/omapdss.h> |
41 | #include <video/omap-panel-generic-dpi.h> | 41 | #include <video/omap-panel-data.h> |
42 | 42 | ||
43 | #include "mux.h" | 43 | #include "mux.h" |
44 | #include "hsmmc.h" | 44 | #include "hsmmc.h" |
@@ -108,24 +108,13 @@ static struct platform_device *sdp2430_devices[] __initdata = { | |||
108 | #define SDP2430_LCD_PANEL_BACKLIGHT_GPIO 91 | 108 | #define SDP2430_LCD_PANEL_BACKLIGHT_GPIO 91 |
109 | #define SDP2430_LCD_PANEL_ENABLE_GPIO 154 | 109 | #define SDP2430_LCD_PANEL_ENABLE_GPIO 154 |
110 | 110 | ||
111 | static int sdp2430_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
112 | { | ||
113 | gpio_direction_output(SDP2430_LCD_PANEL_ENABLE_GPIO, 1); | ||
114 | gpio_direction_output(SDP2430_LCD_PANEL_BACKLIGHT_GPIO, 1); | ||
115 | |||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | static void sdp2430_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
120 | { | ||
121 | gpio_direction_output(SDP2430_LCD_PANEL_ENABLE_GPIO, 0); | ||
122 | gpio_direction_output(SDP2430_LCD_PANEL_BACKLIGHT_GPIO, 0); | ||
123 | } | ||
124 | |||
125 | static struct panel_generic_dpi_data sdp2430_panel_data = { | 111 | static struct panel_generic_dpi_data sdp2430_panel_data = { |
126 | .name = "nec_nl2432dr22-11b", | 112 | .name = "nec_nl2432dr22-11b", |
127 | .platform_enable = sdp2430_panel_enable_lcd, | 113 | .num_gpios = 2, |
128 | .platform_disable = sdp2430_panel_disable_lcd, | 114 | .gpios = { |
115 | SDP2430_LCD_PANEL_ENABLE_GPIO, | ||
116 | SDP2430_LCD_PANEL_BACKLIGHT_GPIO, | ||
117 | }, | ||
129 | }; | 118 | }; |
130 | 119 | ||
131 | static struct omap_dss_device sdp2430_lcd_device = { | 120 | static struct omap_dss_device sdp2430_lcd_device = { |
@@ -146,26 +135,6 @@ static struct omap_dss_board_info sdp2430_dss_data = { | |||
146 | .default_device = &sdp2430_lcd_device, | 135 | .default_device = &sdp2430_lcd_device, |
147 | }; | 136 | }; |
148 | 137 | ||
149 | static void __init sdp2430_display_init(void) | ||
150 | { | ||
151 | int r; | ||
152 | |||
153 | static struct gpio gpios[] __initdata = { | ||
154 | { SDP2430_LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, | ||
155 | "LCD reset" }, | ||
156 | { SDP2430_LCD_PANEL_BACKLIGHT_GPIO, GPIOF_OUT_INIT_LOW, | ||
157 | "LCD Backlight" }, | ||
158 | }; | ||
159 | |||
160 | r = gpio_request_array(gpios, ARRAY_SIZE(gpios)); | ||
161 | if (r) { | ||
162 | pr_err("Cannot request LCD GPIOs, error %d\n", r); | ||
163 | return; | ||
164 | } | ||
165 | |||
166 | omap_display_init(&sdp2430_dss_data); | ||
167 | } | ||
168 | |||
169 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91x_MODULE) | 138 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91x_MODULE) |
170 | 139 | ||
171 | static struct omap_smc91x_platform_data board_smc91x_data = { | 140 | static struct omap_smc91x_platform_data board_smc91x_data = { |
@@ -273,7 +242,7 @@ static void __init omap_2430sdp_init(void) | |||
273 | gpio_request_one(SECONDARY_LCD_GPIO, GPIOF_OUT_INIT_LOW, | 242 | gpio_request_one(SECONDARY_LCD_GPIO, GPIOF_OUT_INIT_LOW, |
274 | "Secondary LCD backlight"); | 243 | "Secondary LCD backlight"); |
275 | 244 | ||
276 | sdp2430_display_init(); | 245 | omap_display_init(&sdp2430_dss_data); |
277 | } | 246 | } |
278 | 247 | ||
279 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") | 248 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") |
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index ce812decfaca..594c6335496e 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include "common.h" | 35 | #include "common.h" |
36 | #include <linux/omap-dma.h> | 36 | #include <linux/omap-dma.h> |
37 | #include <video/omapdss.h> | 37 | #include <video/omapdss.h> |
38 | #include <video/omap-panel-tfp410.h> | 38 | #include <video/omap-panel-data.h> |
39 | 39 | ||
40 | #include "gpmc.h" | 40 | #include "gpmc.h" |
41 | #include "gpmc-smc91x.h" | 41 | #include "gpmc-smc91x.h" |
@@ -108,53 +108,38 @@ static struct twl4030_keypad_data sdp3430_kp_data = { | |||
108 | #define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 8 | 108 | #define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 8 |
109 | #define SDP3430_LCD_PANEL_ENABLE_GPIO 5 | 109 | #define SDP3430_LCD_PANEL_ENABLE_GPIO 5 |
110 | 110 | ||
111 | static struct gpio sdp3430_dss_gpios[] __initdata = { | ||
112 | {SDP3430_LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, "LCD reset" }, | ||
113 | {SDP3430_LCD_PANEL_BACKLIGHT_GPIO, GPIOF_OUT_INIT_LOW, "LCD Backlight"}, | ||
114 | }; | ||
115 | |||
116 | static void __init sdp3430_display_init(void) | 111 | static void __init sdp3430_display_init(void) |
117 | { | 112 | { |
118 | int r; | 113 | int r; |
119 | 114 | ||
120 | r = gpio_request_array(sdp3430_dss_gpios, | 115 | /* |
121 | ARRAY_SIZE(sdp3430_dss_gpios)); | 116 | * the backlight GPIO doesn't directly go to the panel, it enables |
117 | * an internal circuit on 3430sdp to create the signal V_BKL_28V, | ||
118 | * this is connected to LED+ pin of the sharp panel. This GPIO | ||
119 | * is left enabled in the board file, and not passed to the panel | ||
120 | * as platform_data. | ||
121 | */ | ||
122 | r = gpio_request_one(SDP3430_LCD_PANEL_BACKLIGHT_GPIO, | ||
123 | GPIOF_OUT_INIT_HIGH, "LCD Backlight"); | ||
122 | if (r) | 124 | if (r) |
123 | printk(KERN_ERR "failed to get LCD control GPIOs\n"); | 125 | pr_err("failed to get LCD Backlight GPIO\n"); |
124 | |||
125 | } | ||
126 | 126 | ||
127 | static int sdp3430_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
128 | { | ||
129 | gpio_direction_output(SDP3430_LCD_PANEL_ENABLE_GPIO, 1); | ||
130 | gpio_direction_output(SDP3430_LCD_PANEL_BACKLIGHT_GPIO, 1); | ||
131 | |||
132 | return 0; | ||
133 | } | ||
134 | |||
135 | static void sdp3430_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
136 | { | ||
137 | gpio_direction_output(SDP3430_LCD_PANEL_ENABLE_GPIO, 0); | ||
138 | gpio_direction_output(SDP3430_LCD_PANEL_BACKLIGHT_GPIO, 0); | ||
139 | } | ||
140 | |||
141 | static int sdp3430_panel_enable_tv(struct omap_dss_device *dssdev) | ||
142 | { | ||
143 | return 0; | ||
144 | } | ||
145 | |||
146 | static void sdp3430_panel_disable_tv(struct omap_dss_device *dssdev) | ||
147 | { | ||
148 | } | 127 | } |
149 | 128 | ||
129 | static struct panel_sharp_ls037v7dw01_data sdp3430_lcd_data = { | ||
130 | .resb_gpio = SDP3430_LCD_PANEL_ENABLE_GPIO, | ||
131 | .ini_gpio = -1, | ||
132 | .mo_gpio = -1, | ||
133 | .lr_gpio = -1, | ||
134 | .ud_gpio = -1, | ||
135 | }; | ||
150 | 136 | ||
151 | static struct omap_dss_device sdp3430_lcd_device = { | 137 | static struct omap_dss_device sdp3430_lcd_device = { |
152 | .name = "lcd", | 138 | .name = "lcd", |
153 | .driver_name = "sharp_ls_panel", | 139 | .driver_name = "sharp_ls_panel", |
154 | .type = OMAP_DISPLAY_TYPE_DPI, | 140 | .type = OMAP_DISPLAY_TYPE_DPI, |
155 | .phy.dpi.data_lines = 16, | 141 | .phy.dpi.data_lines = 16, |
156 | .platform_enable = sdp3430_panel_enable_lcd, | 142 | .data = &sdp3430_lcd_data, |
157 | .platform_disable = sdp3430_panel_disable_lcd, | ||
158 | }; | 143 | }; |
159 | 144 | ||
160 | static struct tfp410_platform_data dvi_panel = { | 145 | static struct tfp410_platform_data dvi_panel = { |
@@ -175,8 +160,6 @@ static struct omap_dss_device sdp3430_tv_device = { | |||
175 | .driver_name = "venc", | 160 | .driver_name = "venc", |
176 | .type = OMAP_DISPLAY_TYPE_VENC, | 161 | .type = OMAP_DISPLAY_TYPE_VENC, |
177 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, | 162 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, |
178 | .platform_enable = sdp3430_panel_enable_tv, | ||
179 | .platform_disable = sdp3430_panel_disable_tv, | ||
180 | }; | 163 | }; |
181 | 164 | ||
182 | 165 | ||
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index 9fb85908a61e..2b9eb3de7aa6 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c | |||
@@ -35,8 +35,7 @@ | |||
35 | 35 | ||
36 | #include "common.h" | 36 | #include "common.h" |
37 | #include <video/omapdss.h> | 37 | #include <video/omapdss.h> |
38 | #include <video/omap-panel-generic-dpi.h> | 38 | #include <video/omap-panel-data.h> |
39 | #include <video/omap-panel-tfp410.h> | ||
40 | 39 | ||
41 | #include "am35xx-emac.h" | 40 | #include "am35xx-emac.h" |
42 | #include "mux.h" | 41 | #include "mux.h" |
@@ -121,63 +120,14 @@ static int __init am3517_evm_i2c_init(void) | |||
121 | return 0; | 120 | return 0; |
122 | } | 121 | } |
123 | 122 | ||
124 | static int lcd_enabled; | ||
125 | static int dvi_enabled; | ||
126 | |||
127 | #if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \ | ||
128 | defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE) | ||
129 | static struct gpio am3517_evm_dss_gpios[] __initdata = { | ||
130 | /* GPIO 182 = LCD Backlight Power */ | ||
131 | { LCD_PANEL_BKLIGHT_PWR, GPIOF_OUT_INIT_HIGH, "lcd_backlight_pwr" }, | ||
132 | /* GPIO 181 = LCD Panel PWM */ | ||
133 | { LCD_PANEL_PWM, GPIOF_OUT_INIT_HIGH, "lcd bl enable" }, | ||
134 | /* GPIO 176 = LCD Panel Power enable pin */ | ||
135 | { LCD_PANEL_PWR, GPIOF_OUT_INIT_HIGH, "dvi enable" }, | ||
136 | }; | ||
137 | |||
138 | static void __init am3517_evm_display_init(void) | ||
139 | { | ||
140 | int r; | ||
141 | |||
142 | omap_mux_init_gpio(LCD_PANEL_PWR, OMAP_PIN_INPUT_PULLUP); | ||
143 | omap_mux_init_gpio(LCD_PANEL_BKLIGHT_PWR, OMAP_PIN_INPUT_PULLDOWN); | ||
144 | omap_mux_init_gpio(LCD_PANEL_PWM, OMAP_PIN_INPUT_PULLDOWN); | ||
145 | |||
146 | r = gpio_request_array(am3517_evm_dss_gpios, | ||
147 | ARRAY_SIZE(am3517_evm_dss_gpios)); | ||
148 | if (r) { | ||
149 | printk(KERN_ERR "failed to get DSS panel control GPIOs\n"); | ||
150 | return; | ||
151 | } | ||
152 | |||
153 | printk(KERN_INFO "Display initialized successfully\n"); | ||
154 | } | ||
155 | #else | ||
156 | static void __init am3517_evm_display_init(void) {} | ||
157 | #endif | ||
158 | |||
159 | static int am3517_evm_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
160 | { | ||
161 | if (dvi_enabled) { | ||
162 | printk(KERN_ERR "cannot enable LCD, DVI is enabled\n"); | ||
163 | return -EINVAL; | ||
164 | } | ||
165 | gpio_set_value(LCD_PANEL_PWR, 1); | ||
166 | lcd_enabled = 1; | ||
167 | |||
168 | return 0; | ||
169 | } | ||
170 | |||
171 | static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
172 | { | ||
173 | gpio_set_value(LCD_PANEL_PWR, 0); | ||
174 | lcd_enabled = 0; | ||
175 | } | ||
176 | |||
177 | static struct panel_generic_dpi_data lcd_panel = { | 123 | static struct panel_generic_dpi_data lcd_panel = { |
178 | .name = "sharp_lq", | 124 | .name = "sharp_lq", |
179 | .platform_enable = am3517_evm_panel_enable_lcd, | 125 | .num_gpios = 3, |
180 | .platform_disable = am3517_evm_panel_disable_lcd, | 126 | .gpios = { |
127 | LCD_PANEL_PWR, | ||
128 | LCD_PANEL_BKLIGHT_PWR, | ||
129 | LCD_PANEL_PWM, | ||
130 | }, | ||
181 | }; | 131 | }; |
182 | 132 | ||
183 | static struct omap_dss_device am3517_evm_lcd_device = { | 133 | static struct omap_dss_device am3517_evm_lcd_device = { |
@@ -188,22 +138,11 @@ static struct omap_dss_device am3517_evm_lcd_device = { | |||
188 | .phy.dpi.data_lines = 16, | 138 | .phy.dpi.data_lines = 16, |
189 | }; | 139 | }; |
190 | 140 | ||
191 | static int am3517_evm_panel_enable_tv(struct omap_dss_device *dssdev) | ||
192 | { | ||
193 | return 0; | ||
194 | } | ||
195 | |||
196 | static void am3517_evm_panel_disable_tv(struct omap_dss_device *dssdev) | ||
197 | { | ||
198 | } | ||
199 | |||
200 | static struct omap_dss_device am3517_evm_tv_device = { | 141 | static struct omap_dss_device am3517_evm_tv_device = { |
201 | .type = OMAP_DISPLAY_TYPE_VENC, | 142 | .type = OMAP_DISPLAY_TYPE_VENC, |
202 | .name = "tv", | 143 | .name = "tv", |
203 | .driver_name = "venc", | 144 | .driver_name = "venc", |
204 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, | 145 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, |
205 | .platform_enable = am3517_evm_panel_enable_tv, | ||
206 | .platform_disable = am3517_evm_panel_disable_tv, | ||
207 | }; | 146 | }; |
208 | 147 | ||
209 | static struct tfp410_platform_data dvi_panel = { | 148 | static struct tfp410_platform_data dvi_panel = { |
@@ -363,8 +302,6 @@ static void __init am3517_evm_init(void) | |||
363 | omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); | 302 | omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); |
364 | usbhs_init(&usbhs_bdata); | 303 | usbhs_init(&usbhs_bdata); |
365 | am3517_evm_hecc_init(&am3517_evm_hecc_pdata); | 304 | am3517_evm_hecc_init(&am3517_evm_hecc_pdata); |
366 | /* DSS */ | ||
367 | am3517_evm_display_init(); | ||
368 | 305 | ||
369 | /* RTC - S35390A */ | 306 | /* RTC - S35390A */ |
370 | am3517_evm_rtc_init(); | 307 | am3517_evm_rtc_init(); |
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index af2bb219e214..710e99da266c 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -41,8 +41,7 @@ | |||
41 | 41 | ||
42 | #include <linux/platform_data/mtd-nand-omap2.h> | 42 | #include <linux/platform_data/mtd-nand-omap2.h> |
43 | #include <video/omapdss.h> | 43 | #include <video/omapdss.h> |
44 | #include <video/omap-panel-generic-dpi.h> | 44 | #include <video/omap-panel-data.h> |
45 | #include <video/omap-panel-tfp410.h> | ||
46 | #include <linux/platform_data/spi-omap2-mcspi.h> | 45 | #include <linux/platform_data/spi-omap2-mcspi.h> |
47 | 46 | ||
48 | #include "common.h" | 47 | #include "common.h" |
@@ -191,45 +190,12 @@ static inline void cm_t35_init_nand(void) {} | |||
191 | #define CM_T35_LCD_BL_GPIO 58 | 190 | #define CM_T35_LCD_BL_GPIO 58 |
192 | #define CM_T35_DVI_EN_GPIO 54 | 191 | #define CM_T35_DVI_EN_GPIO 54 |
193 | 192 | ||
194 | static int lcd_enabled; | ||
195 | static int dvi_enabled; | ||
196 | |||
197 | static int cm_t35_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
198 | { | ||
199 | if (dvi_enabled) { | ||
200 | printk(KERN_ERR "cannot enable LCD, DVI is enabled\n"); | ||
201 | return -EINVAL; | ||
202 | } | ||
203 | |||
204 | gpio_set_value(CM_T35_LCD_EN_GPIO, 1); | ||
205 | gpio_set_value(CM_T35_LCD_BL_GPIO, 1); | ||
206 | |||
207 | lcd_enabled = 1; | ||
208 | |||
209 | return 0; | ||
210 | } | ||
211 | |||
212 | static void cm_t35_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
213 | { | ||
214 | lcd_enabled = 0; | ||
215 | |||
216 | gpio_set_value(CM_T35_LCD_BL_GPIO, 0); | ||
217 | gpio_set_value(CM_T35_LCD_EN_GPIO, 0); | ||
218 | } | ||
219 | |||
220 | static int cm_t35_panel_enable_tv(struct omap_dss_device *dssdev) | ||
221 | { | ||
222 | return 0; | ||
223 | } | ||
224 | |||
225 | static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev) | ||
226 | { | ||
227 | } | ||
228 | |||
229 | static struct panel_generic_dpi_data lcd_panel = { | 193 | static struct panel_generic_dpi_data lcd_panel = { |
230 | .name = "toppoly_tdo35s", | 194 | .name = "toppoly_tdo35s", |
231 | .platform_enable = cm_t35_panel_enable_lcd, | 195 | .num_gpios = 1, |
232 | .platform_disable = cm_t35_panel_disable_lcd, | 196 | .gpios = { |
197 | CM_T35_LCD_BL_GPIO, | ||
198 | }, | ||
233 | }; | 199 | }; |
234 | 200 | ||
235 | static struct omap_dss_device cm_t35_lcd_device = { | 201 | static struct omap_dss_device cm_t35_lcd_device = { |
@@ -258,8 +224,6 @@ static struct omap_dss_device cm_t35_tv_device = { | |||
258 | .driver_name = "venc", | 224 | .driver_name = "venc", |
259 | .type = OMAP_DISPLAY_TYPE_VENC, | 225 | .type = OMAP_DISPLAY_TYPE_VENC, |
260 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, | 226 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, |
261 | .platform_enable = cm_t35_panel_enable_tv, | ||
262 | .platform_disable = cm_t35_panel_disable_tv, | ||
263 | }; | 227 | }; |
264 | 228 | ||
265 | static struct omap_dss_device *cm_t35_dss_devices[] = { | 229 | static struct omap_dss_device *cm_t35_dss_devices[] = { |
@@ -293,11 +257,6 @@ static struct spi_board_info cm_t35_lcd_spi_board_info[] __initdata = { | |||
293 | }, | 257 | }, |
294 | }; | 258 | }; |
295 | 259 | ||
296 | static struct gpio cm_t35_dss_gpios[] __initdata = { | ||
297 | { CM_T35_LCD_EN_GPIO, GPIOF_OUT_INIT_LOW, "lcd enable" }, | ||
298 | { CM_T35_LCD_BL_GPIO, GPIOF_OUT_INIT_LOW, "lcd bl enable" }, | ||
299 | }; | ||
300 | |||
301 | static void __init cm_t35_init_display(void) | 260 | static void __init cm_t35_init_display(void) |
302 | { | 261 | { |
303 | int err; | 262 | int err; |
@@ -305,23 +264,21 @@ static void __init cm_t35_init_display(void) | |||
305 | spi_register_board_info(cm_t35_lcd_spi_board_info, | 264 | spi_register_board_info(cm_t35_lcd_spi_board_info, |
306 | ARRAY_SIZE(cm_t35_lcd_spi_board_info)); | 265 | ARRAY_SIZE(cm_t35_lcd_spi_board_info)); |
307 | 266 | ||
308 | err = gpio_request_array(cm_t35_dss_gpios, | 267 | |
309 | ARRAY_SIZE(cm_t35_dss_gpios)); | 268 | err = gpio_request_one(CM_T35_LCD_EN_GPIO, GPIOF_OUT_INIT_LOW, |
269 | "lcd bl enable"); | ||
310 | if (err) { | 270 | if (err) { |
311 | pr_err("CM-T35: failed to request DSS control GPIOs\n"); | 271 | pr_err("CM-T35: failed to request LCD EN GPIO\n"); |
312 | return; | 272 | return; |
313 | } | 273 | } |
314 | 274 | ||
315 | gpio_export(CM_T35_LCD_EN_GPIO, 0); | ||
316 | gpio_export(CM_T35_LCD_BL_GPIO, 0); | ||
317 | |||
318 | msleep(50); | 275 | msleep(50); |
319 | gpio_set_value(CM_T35_LCD_EN_GPIO, 1); | 276 | gpio_set_value(CM_T35_LCD_EN_GPIO, 1); |
320 | 277 | ||
321 | err = omap_display_init(&cm_t35_dss_data); | 278 | err = omap_display_init(&cm_t35_dss_data); |
322 | if (err) { | 279 | if (err) { |
323 | pr_err("CM-T35: failed to register DSS device\n"); | 280 | pr_err("CM-T35: failed to register DSS device\n"); |
324 | gpio_free_array(cm_t35_dss_gpios, ARRAY_SIZE(cm_t35_dss_gpios)); | 281 | gpio_free(CM_T35_LCD_EN_GPIO); |
325 | } | 282 | } |
326 | } | 283 | } |
327 | 284 | ||
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 53056c3b0836..34944cfdfbd9 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -43,8 +43,7 @@ | |||
43 | #include "gpmc.h" | 43 | #include "gpmc.h" |
44 | #include <linux/platform_data/mtd-nand-omap2.h> | 44 | #include <linux/platform_data/mtd-nand-omap2.h> |
45 | #include <video/omapdss.h> | 45 | #include <video/omapdss.h> |
46 | #include <video/omap-panel-generic-dpi.h> | 46 | #include <video/omap-panel-data.h> |
47 | #include <video/omap-panel-tfp410.h> | ||
48 | 47 | ||
49 | #include <linux/platform_data/spi-omap2-mcspi.h> | 48 | #include <linux/platform_data/spi-omap2-mcspi.h> |
50 | #include <linux/input/matrix_keypad.h> | 49 | #include <linux/input/matrix_keypad.h> |
@@ -104,19 +103,6 @@ static struct omap2_hsmmc_info mmc[] = { | |||
104 | {} /* Terminator */ | 103 | {} /* Terminator */ |
105 | }; | 104 | }; |
106 | 105 | ||
107 | static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
108 | { | ||
109 | if (gpio_is_valid(dssdev->reset_gpio)) | ||
110 | gpio_set_value_cansleep(dssdev->reset_gpio, 1); | ||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | static void devkit8000_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
115 | { | ||
116 | if (gpio_is_valid(dssdev->reset_gpio)) | ||
117 | gpio_set_value_cansleep(dssdev->reset_gpio, 0); | ||
118 | } | ||
119 | |||
120 | static struct regulator_consumer_supply devkit8000_vmmc1_supply[] = { | 106 | static struct regulator_consumer_supply devkit8000_vmmc1_supply[] = { |
121 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), | 107 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), |
122 | }; | 108 | }; |
@@ -128,8 +114,7 @@ static struct regulator_consumer_supply devkit8000_vio_supply[] = { | |||
128 | 114 | ||
129 | static struct panel_generic_dpi_data lcd_panel = { | 115 | static struct panel_generic_dpi_data lcd_panel = { |
130 | .name = "innolux_at070tn83", | 116 | .name = "innolux_at070tn83", |
131 | .platform_enable = devkit8000_panel_enable_lcd, | 117 | /* gpios filled in code */ |
132 | .platform_disable = devkit8000_panel_disable_lcd, | ||
133 | }; | 118 | }; |
134 | 119 | ||
135 | static struct omap_dss_device devkit8000_lcd_device = { | 120 | static struct omap_dss_device devkit8000_lcd_device = { |
@@ -211,8 +196,6 @@ static struct gpio_led gpio_leds[]; | |||
211 | static int devkit8000_twl_gpio_setup(struct device *dev, | 196 | static int devkit8000_twl_gpio_setup(struct device *dev, |
212 | unsigned gpio, unsigned ngpio) | 197 | unsigned gpio, unsigned ngpio) |
213 | { | 198 | { |
214 | int ret; | ||
215 | |||
216 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | 199 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ |
217 | mmc[0].gpio_cd = gpio + 0; | 200 | mmc[0].gpio_cd = gpio + 0; |
218 | omap_hsmmc_late_init(mmc); | 201 | omap_hsmmc_late_init(mmc); |
@@ -221,13 +204,8 @@ static int devkit8000_twl_gpio_setup(struct device *dev, | |||
221 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; | 204 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; |
222 | 205 | ||
223 | /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */ | 206 | /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */ |
224 | devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0; | 207 | lcd_panel.num_gpios = 1; |
225 | ret = gpio_request_one(devkit8000_lcd_device.reset_gpio, | 208 | lcd_panel.gpios[0] = gpio + TWL4030_GPIO_MAX + 0; |
226 | GPIOF_OUT_INIT_LOW, "LCD_PWREN"); | ||
227 | if (ret < 0) { | ||
228 | devkit8000_lcd_device.reset_gpio = -EINVAL; | ||
229 | printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n"); | ||
230 | } | ||
231 | 209 | ||
232 | /* gpio + 7 is "DVI_PD" (out, active low) */ | 210 | /* gpio + 7 is "DVI_PD" (out, active low) */ |
233 | dvi_panel.power_down_gpio = gpio + 7; | 211 | dvi_panel.power_down_gpio = gpio + 7; |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 812c829fa46f..0c1bdd7ee32d 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
35 | 35 | ||
36 | #include <video/omapdss.h> | 36 | #include <video/omapdss.h> |
37 | #include <video/omap-panel-generic-dpi.h> | 37 | #include <video/omap-panel-data.h> |
38 | 38 | ||
39 | #include "common.h" | 39 | #include "common.h" |
40 | #include "mux.h" | 40 | #include "mux.h" |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index bf92678a01d0..e979d48270c9 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | 32 | ||
33 | #include <video/omapdss.h> | 33 | #include <video/omapdss.h> |
34 | #include <video/omap-panel-tfp410.h> | 34 | #include <video/omap-panel-data.h> |
35 | #include <linux/platform_data/mtd-onenand-omap2.h> | 35 | #include <linux/platform_data/mtd-onenand-omap2.h> |
36 | 36 | ||
37 | #include "common.h" | 37 | #include "common.h" |
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index b12fe966a7b9..d0d17bc58d9b 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
@@ -41,7 +41,7 @@ | |||
41 | #include "gpmc-smsc911x.h" | 41 | #include "gpmc-smsc911x.h" |
42 | 42 | ||
43 | #include <video/omapdss.h> | 43 | #include <video/omapdss.h> |
44 | #include <video/omap-panel-generic-dpi.h> | 44 | #include <video/omap-panel-data.h> |
45 | 45 | ||
46 | #include "board-flash.h" | 46 | #include "board-flash.h" |
47 | #include "mux.h" | 47 | #include "mux.h" |
@@ -181,34 +181,13 @@ static inline void __init ldp_init_smsc911x(void) | |||
181 | 181 | ||
182 | /* LCD */ | 182 | /* LCD */ |
183 | 183 | ||
184 | static int ldp_backlight_gpio; | ||
185 | static int ldp_lcd_enable_gpio; | ||
186 | |||
187 | #define LCD_PANEL_RESET_GPIO 55 | 184 | #define LCD_PANEL_RESET_GPIO 55 |
188 | #define LCD_PANEL_QVGA_GPIO 56 | 185 | #define LCD_PANEL_QVGA_GPIO 56 |
189 | 186 | ||
190 | static int ldp_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
191 | { | ||
192 | if (gpio_is_valid(ldp_lcd_enable_gpio)) | ||
193 | gpio_direction_output(ldp_lcd_enable_gpio, 1); | ||
194 | if (gpio_is_valid(ldp_backlight_gpio)) | ||
195 | gpio_direction_output(ldp_backlight_gpio, 1); | ||
196 | |||
197 | return 0; | ||
198 | } | ||
199 | |||
200 | static void ldp_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
201 | { | ||
202 | if (gpio_is_valid(ldp_lcd_enable_gpio)) | ||
203 | gpio_direction_output(ldp_lcd_enable_gpio, 0); | ||
204 | if (gpio_is_valid(ldp_backlight_gpio)) | ||
205 | gpio_direction_output(ldp_backlight_gpio, 0); | ||
206 | } | ||
207 | |||
208 | static struct panel_generic_dpi_data ldp_panel_data = { | 187 | static struct panel_generic_dpi_data ldp_panel_data = { |
209 | .name = "nec_nl2432dr22-11b", | 188 | .name = "nec_nl2432dr22-11b", |
210 | .platform_enable = ldp_panel_enable_lcd, | 189 | .num_gpios = 4, |
211 | .platform_disable = ldp_panel_disable_lcd, | 190 | /* gpios filled in code */ |
212 | }; | 191 | }; |
213 | 192 | ||
214 | static struct omap_dss_device ldp_lcd_device = { | 193 | static struct omap_dss_device ldp_lcd_device = { |
@@ -231,41 +210,19 @@ static struct omap_dss_board_info ldp_dss_data = { | |||
231 | 210 | ||
232 | static void __init ldp_display_init(void) | 211 | static void __init ldp_display_init(void) |
233 | { | 212 | { |
234 | int r; | 213 | ldp_panel_data.gpios[2] = LCD_PANEL_RESET_GPIO; |
235 | 214 | ldp_panel_data.gpios[3] = LCD_PANEL_QVGA_GPIO; | |
236 | static struct gpio gpios[] __initdata = { | ||
237 | {LCD_PANEL_RESET_GPIO, GPIOF_OUT_INIT_HIGH, "LCD RESET"}, | ||
238 | {LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "LCD QVGA"}, | ||
239 | }; | ||
240 | |||
241 | r = gpio_request_array(gpios, ARRAY_SIZE(gpios)); | ||
242 | if (r) { | ||
243 | pr_err("Cannot request LCD GPIOs, error %d\n", r); | ||
244 | return; | ||
245 | } | ||
246 | 215 | ||
247 | omap_display_init(&ldp_dss_data); | 216 | omap_display_init(&ldp_dss_data); |
248 | } | 217 | } |
249 | 218 | ||
250 | static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) | 219 | static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) |
251 | { | 220 | { |
252 | int r; | 221 | ldp_panel_data.gpios[0] = gpio + 7; |
253 | 222 | ldp_panel_data.gpio_invert[0] = true; | |
254 | struct gpio gpios[] = { | 223 | |
255 | {gpio + 7 , GPIOF_OUT_INIT_LOW, "LCD ENABLE"}, | 224 | ldp_panel_data.gpios[1] = gpio + 15; |
256 | {gpio + 15, GPIOF_OUT_INIT_LOW, "LCD BACKLIGHT"}, | 225 | ldp_panel_data.gpio_invert[1] = true; |
257 | }; | ||
258 | |||
259 | r = gpio_request_array(gpios, ARRAY_SIZE(gpios)); | ||
260 | if (r) { | ||
261 | pr_err("Cannot request LCD GPIOs, error %d\n", r); | ||
262 | ldp_backlight_gpio = -EINVAL; | ||
263 | ldp_lcd_enable_gpio = -EINVAL; | ||
264 | return r; | ||
265 | } | ||
266 | |||
267 | ldp_backlight_gpio = gpio + 15; | ||
268 | ldp_lcd_enable_gpio = gpio + 7; | ||
269 | 226 | ||
270 | return 0; | 227 | return 0; |
271 | } | 228 | } |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index c3558f93d42c..0ce91af753fa 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -43,7 +43,7 @@ | |||
43 | #include <asm/mach/flash.h> | 43 | #include <asm/mach/flash.h> |
44 | 44 | ||
45 | #include <video/omapdss.h> | 45 | #include <video/omapdss.h> |
46 | #include <video/omap-panel-tfp410.h> | 46 | #include <video/omap-panel-data.h> |
47 | #include <linux/platform_data/mtd-nand-omap2.h> | 47 | #include <linux/platform_data/mtd-nand-omap2.h> |
48 | 48 | ||
49 | #include "common.h" | 49 | #include "common.h" |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 48789e0bb915..5eecc178f8bf 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -51,7 +51,7 @@ | |||
51 | #include "common.h" | 51 | #include "common.h" |
52 | #include <linux/platform_data/spi-omap2-mcspi.h> | 52 | #include <linux/platform_data/spi-omap2-mcspi.h> |
53 | #include <video/omapdss.h> | 53 | #include <video/omapdss.h> |
54 | #include <video/omap-panel-tfp410.h> | 54 | #include <video/omap-panel-data.h> |
55 | 55 | ||
56 | #include "soc.h" | 56 | #include "soc.h" |
57 | #include "mux.h" | 57 | #include "mux.h" |
@@ -155,61 +155,43 @@ static inline void __init omap3evm_init_smsc911x(void) { return; } | |||
155 | #define OMAP3EVM_LCD_PANEL_LR 2 | 155 | #define OMAP3EVM_LCD_PANEL_LR 2 |
156 | #define OMAP3EVM_LCD_PANEL_UD 3 | 156 | #define OMAP3EVM_LCD_PANEL_UD 3 |
157 | #define OMAP3EVM_LCD_PANEL_INI 152 | 157 | #define OMAP3EVM_LCD_PANEL_INI 152 |
158 | #define OMAP3EVM_LCD_PANEL_ENVDD 153 | ||
159 | #define OMAP3EVM_LCD_PANEL_QVGA 154 | 158 | #define OMAP3EVM_LCD_PANEL_QVGA 154 |
160 | #define OMAP3EVM_LCD_PANEL_RESB 155 | 159 | #define OMAP3EVM_LCD_PANEL_RESB 155 |
160 | |||
161 | #define OMAP3EVM_LCD_PANEL_ENVDD 153 | ||
161 | #define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210 | 162 | #define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210 |
163 | |||
164 | /* | ||
165 | * OMAP3EVM DVI control signals | ||
166 | */ | ||
162 | #define OMAP3EVM_DVI_PANEL_EN_GPIO 199 | 167 | #define OMAP3EVM_DVI_PANEL_EN_GPIO 199 |
163 | 168 | ||
164 | static struct gpio omap3_evm_dss_gpios[] __initdata = { | 169 | static struct panel_sharp_ls037v7dw01_data omap3_evm_lcd_data = { |
165 | { OMAP3EVM_LCD_PANEL_RESB, GPIOF_OUT_INIT_HIGH, "lcd_panel_resb" }, | 170 | .resb_gpio = OMAP3EVM_LCD_PANEL_RESB, |
166 | { OMAP3EVM_LCD_PANEL_INI, GPIOF_OUT_INIT_HIGH, "lcd_panel_ini" }, | 171 | .ini_gpio = OMAP3EVM_LCD_PANEL_INI, |
167 | { OMAP3EVM_LCD_PANEL_QVGA, GPIOF_OUT_INIT_LOW, "lcd_panel_qvga" }, | 172 | .mo_gpio = OMAP3EVM_LCD_PANEL_QVGA, |
168 | { OMAP3EVM_LCD_PANEL_LR, GPIOF_OUT_INIT_HIGH, "lcd_panel_lr" }, | 173 | .lr_gpio = OMAP3EVM_LCD_PANEL_LR, |
169 | { OMAP3EVM_LCD_PANEL_UD, GPIOF_OUT_INIT_HIGH, "lcd_panel_ud" }, | 174 | .ud_gpio = OMAP3EVM_LCD_PANEL_UD, |
170 | { OMAP3EVM_LCD_PANEL_ENVDD, GPIOF_OUT_INIT_LOW, "lcd_panel_envdd" }, | ||
171 | }; | 175 | }; |
172 | 176 | ||
173 | static int lcd_enabled; | ||
174 | static int dvi_enabled; | ||
175 | |||
176 | static void __init omap3_evm_display_init(void) | 177 | static void __init omap3_evm_display_init(void) |
177 | { | 178 | { |
178 | int r; | 179 | int r; |
179 | 180 | ||
180 | r = gpio_request_array(omap3_evm_dss_gpios, | 181 | r = gpio_request_one(OMAP3EVM_LCD_PANEL_ENVDD, GPIOF_OUT_INIT_LOW, |
181 | ARRAY_SIZE(omap3_evm_dss_gpios)); | 182 | "lcd_panel_envdd"); |
182 | if (r) | 183 | if (r) |
183 | printk(KERN_ERR "failed to get lcd_panel_* gpios\n"); | 184 | pr_err("failed to get lcd_panel_envdd GPIO\n"); |
184 | } | ||
185 | 185 | ||
186 | static int omap3_evm_enable_lcd(struct omap_dss_device *dssdev) | 186 | r = gpio_request_one(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, |
187 | { | 187 | GPIOF_OUT_INIT_LOW, "lcd_panel_bklight"); |
188 | if (dvi_enabled) { | 188 | if (r) |
189 | printk(KERN_ERR "cannot enable LCD, DVI is enabled\n"); | 189 | pr_err("failed to get lcd_panel_bklight GPIO\n"); |
190 | return -EINVAL; | ||
191 | } | ||
192 | gpio_set_value(OMAP3EVM_LCD_PANEL_ENVDD, 0); | ||
193 | 190 | ||
194 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) | 191 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) |
195 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); | 192 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); |
196 | else | 193 | else |
197 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); | 194 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); |
198 | |||
199 | lcd_enabled = 1; | ||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static void omap3_evm_disable_lcd(struct omap_dss_device *dssdev) | ||
204 | { | ||
205 | gpio_set_value(OMAP3EVM_LCD_PANEL_ENVDD, 1); | ||
206 | |||
207 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) | ||
208 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); | ||
209 | else | ||
210 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); | ||
211 | |||
212 | lcd_enabled = 0; | ||
213 | } | 195 | } |
214 | 196 | ||
215 | static struct omap_dss_device omap3_evm_lcd_device = { | 197 | static struct omap_dss_device omap3_evm_lcd_device = { |
@@ -217,26 +199,14 @@ static struct omap_dss_device omap3_evm_lcd_device = { | |||
217 | .driver_name = "sharp_ls_panel", | 199 | .driver_name = "sharp_ls_panel", |
218 | .type = OMAP_DISPLAY_TYPE_DPI, | 200 | .type = OMAP_DISPLAY_TYPE_DPI, |
219 | .phy.dpi.data_lines = 18, | 201 | .phy.dpi.data_lines = 18, |
220 | .platform_enable = omap3_evm_enable_lcd, | 202 | .data = &omap3_evm_lcd_data, |
221 | .platform_disable = omap3_evm_disable_lcd, | ||
222 | }; | 203 | }; |
223 | 204 | ||
224 | static int omap3_evm_enable_tv(struct omap_dss_device *dssdev) | ||
225 | { | ||
226 | return 0; | ||
227 | } | ||
228 | |||
229 | static void omap3_evm_disable_tv(struct omap_dss_device *dssdev) | ||
230 | { | ||
231 | } | ||
232 | |||
233 | static struct omap_dss_device omap3_evm_tv_device = { | 205 | static struct omap_dss_device omap3_evm_tv_device = { |
234 | .name = "tv", | 206 | .name = "tv", |
235 | .driver_name = "venc", | 207 | .driver_name = "venc", |
236 | .type = OMAP_DISPLAY_TYPE_VENC, | 208 | .type = OMAP_DISPLAY_TYPE_VENC, |
237 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, | 209 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, |
238 | .platform_enable = omap3_evm_enable_tv, | ||
239 | .platform_disable = omap3_evm_disable_tv, | ||
240 | }; | 210 | }; |
241 | 211 | ||
242 | static struct tfp410_platform_data dvi_panel = { | 212 | static struct tfp410_platform_data dvi_panel = { |
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 2bba362148a0..533180f8bf41 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c | |||
@@ -44,6 +44,7 @@ | |||
44 | 44 | ||
45 | #include "common.h" | 45 | #include "common.h" |
46 | #include <video/omapdss.h> | 46 | #include <video/omapdss.h> |
47 | #include <video/omap-panel-data.h> | ||
47 | #include <linux/platform_data/mtd-nand-omap2.h> | 48 | #include <linux/platform_data/mtd-nand-omap2.h> |
48 | 49 | ||
49 | #include "mux.h" | 50 | #include "mux.h" |
@@ -230,12 +231,16 @@ static struct twl4030_keypad_data pandora_kp_data = { | |||
230 | .rep = 1, | 231 | .rep = 1, |
231 | }; | 232 | }; |
232 | 233 | ||
234 | static struct panel_tpo_td043_data lcd_data = { | ||
235 | .nreset_gpio = 157, | ||
236 | }; | ||
237 | |||
233 | static struct omap_dss_device pandora_lcd_device = { | 238 | static struct omap_dss_device pandora_lcd_device = { |
234 | .name = "lcd", | 239 | .name = "lcd", |
235 | .driver_name = "tpo_td043mtea1_panel", | 240 | .driver_name = "tpo_td043mtea1_panel", |
236 | .type = OMAP_DISPLAY_TYPE_DPI, | 241 | .type = OMAP_DISPLAY_TYPE_DPI, |
237 | .phy.dpi.data_lines = 24, | 242 | .phy.dpi.data_lines = 24, |
238 | .reset_gpio = 157, | 243 | .data = &lcd_data, |
239 | }; | 244 | }; |
240 | 245 | ||
241 | static struct omap_dss_device pandora_tv_device = { | 246 | static struct omap_dss_device pandora_tv_device = { |
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 95c10b3aa678..5e63f0758cef 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -44,8 +44,7 @@ | |||
44 | #include "gpmc.h" | 44 | #include "gpmc.h" |
45 | #include <linux/platform_data/mtd-nand-omap2.h> | 45 | #include <linux/platform_data/mtd-nand-omap2.h> |
46 | #include <video/omapdss.h> | 46 | #include <video/omapdss.h> |
47 | #include <video/omap-panel-generic-dpi.h> | 47 | #include <video/omap-panel-data.h> |
48 | #include <video/omap-panel-tfp410.h> | ||
49 | 48 | ||
50 | #include <linux/platform_data/spi-omap2-mcspi.h> | 49 | #include <linux/platform_data/spi-omap2-mcspi.h> |
51 | 50 | ||
@@ -95,15 +94,6 @@ static void __init omap3_stalker_display_init(void) | |||
95 | return; | 94 | return; |
96 | } | 95 | } |
97 | 96 | ||
98 | static int omap3_stalker_enable_tv(struct omap_dss_device *dssdev) | ||
99 | { | ||
100 | return 0; | ||
101 | } | ||
102 | |||
103 | static void omap3_stalker_disable_tv(struct omap_dss_device *dssdev) | ||
104 | { | ||
105 | } | ||
106 | |||
107 | static struct omap_dss_device omap3_stalker_tv_device = { | 97 | static struct omap_dss_device omap3_stalker_tv_device = { |
108 | .name = "tv", | 98 | .name = "tv", |
109 | .driver_name = "venc", | 99 | .driver_name = "venc", |
@@ -113,8 +103,6 @@ static struct omap_dss_device omap3_stalker_tv_device = { | |||
113 | #elif defined(CONFIG_OMAP2_VENC_OUT_TYPE_COMPOSITE) | 103 | #elif defined(CONFIG_OMAP2_VENC_OUT_TYPE_COMPOSITE) |
114 | .u.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE, | 104 | .u.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE, |
115 | #endif | 105 | #endif |
116 | .platform_enable = omap3_stalker_enable_tv, | ||
117 | .platform_disable = omap3_stalker_disable_tv, | ||
118 | }; | 106 | }; |
119 | 107 | ||
120 | static struct tfp410_platform_data dvi_panel = { | 108 | static struct tfp410_platform_data dvi_panel = { |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index 86bab51154ee..f790ce5aaa34 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
@@ -47,8 +47,7 @@ | |||
47 | #include <asm/mach/map.h> | 47 | #include <asm/mach/map.h> |
48 | 48 | ||
49 | #include <video/omapdss.h> | 49 | #include <video/omapdss.h> |
50 | #include <video/omap-panel-generic-dpi.h> | 50 | #include <video/omap-panel-data.h> |
51 | #include <video/omap-panel-tfp410.h> | ||
52 | 51 | ||
53 | #include "common.h" | 52 | #include "common.h" |
54 | #include "mux.h" | 53 | #include "mux.h" |
@@ -146,28 +145,9 @@ static inline void __init overo_init_smsc911x(void) { return; } | |||
146 | #endif | 145 | #endif |
147 | 146 | ||
148 | /* DSS */ | 147 | /* DSS */ |
149 | static int lcd_enabled; | ||
150 | static int dvi_enabled; | ||
151 | |||
152 | #define OVERO_GPIO_LCD_EN 144 | 148 | #define OVERO_GPIO_LCD_EN 144 |
153 | #define OVERO_GPIO_LCD_BL 145 | 149 | #define OVERO_GPIO_LCD_BL 145 |
154 | 150 | ||
155 | static struct gpio overo_dss_gpios[] __initdata = { | ||
156 | { OVERO_GPIO_LCD_EN, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_EN" }, | ||
157 | { OVERO_GPIO_LCD_BL, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_BL" }, | ||
158 | }; | ||
159 | |||
160 | static void __init overo_display_init(void) | ||
161 | { | ||
162 | if (gpio_request_array(overo_dss_gpios, ARRAY_SIZE(overo_dss_gpios))) { | ||
163 | printk(KERN_ERR "could not obtain DSS control GPIOs\n"); | ||
164 | return; | ||
165 | } | ||
166 | |||
167 | gpio_export(OVERO_GPIO_LCD_EN, 0); | ||
168 | gpio_export(OVERO_GPIO_LCD_BL, 0); | ||
169 | } | ||
170 | |||
171 | static struct tfp410_platform_data dvi_panel = { | 151 | static struct tfp410_platform_data dvi_panel = { |
172 | .i2c_bus_num = 3, | 152 | .i2c_bus_num = 3, |
173 | .power_down_gpio = -1, | 153 | .power_down_gpio = -1, |
@@ -188,30 +168,13 @@ static struct omap_dss_device overo_tv_device = { | |||
188 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, | 168 | .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, |
189 | }; | 169 | }; |
190 | 170 | ||
191 | static int overo_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
192 | { | ||
193 | if (dvi_enabled) { | ||
194 | printk(KERN_ERR "cannot enable LCD, DVI is enabled\n"); | ||
195 | return -EINVAL; | ||
196 | } | ||
197 | |||
198 | gpio_set_value(OVERO_GPIO_LCD_EN, 1); | ||
199 | gpio_set_value(OVERO_GPIO_LCD_BL, 1); | ||
200 | lcd_enabled = 1; | ||
201 | return 0; | ||
202 | } | ||
203 | |||
204 | static void overo_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
205 | { | ||
206 | gpio_set_value(OVERO_GPIO_LCD_EN, 0); | ||
207 | gpio_set_value(OVERO_GPIO_LCD_BL, 0); | ||
208 | lcd_enabled = 0; | ||
209 | } | ||
210 | |||
211 | static struct panel_generic_dpi_data lcd43_panel = { | 171 | static struct panel_generic_dpi_data lcd43_panel = { |
212 | .name = "samsung_lte430wq_f0c", | 172 | .name = "samsung_lte430wq_f0c", |
213 | .platform_enable = overo_panel_enable_lcd, | 173 | .num_gpios = 2, |
214 | .platform_disable = overo_panel_disable_lcd, | 174 | .gpios = { |
175 | OVERO_GPIO_LCD_EN, | ||
176 | OVERO_GPIO_LCD_BL | ||
177 | }, | ||
215 | }; | 178 | }; |
216 | 179 | ||
217 | static struct omap_dss_device overo_lcd43_device = { | 180 | static struct omap_dss_device overo_lcd43_device = { |
@@ -224,13 +187,20 @@ static struct omap_dss_device overo_lcd43_device = { | |||
224 | 187 | ||
225 | #if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \ | 188 | #if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \ |
226 | defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE) | 189 | defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE) |
190 | static struct panel_generic_dpi_data lcd35_panel = { | ||
191 | .num_gpios = 2, | ||
192 | .gpios = { | ||
193 | OVERO_GPIO_LCD_EN, | ||
194 | OVERO_GPIO_LCD_BL | ||
195 | }, | ||
196 | }; | ||
197 | |||
227 | static struct omap_dss_device overo_lcd35_device = { | 198 | static struct omap_dss_device overo_lcd35_device = { |
228 | .type = OMAP_DISPLAY_TYPE_DPI, | 199 | .type = OMAP_DISPLAY_TYPE_DPI, |
229 | .name = "lcd35", | 200 | .name = "lcd35", |
230 | .driver_name = "lgphilips_lb035q02_panel", | 201 | .driver_name = "lgphilips_lb035q02_panel", |
231 | .phy.dpi.data_lines = 24, | 202 | .phy.dpi.data_lines = 24, |
232 | .platform_enable = overo_panel_enable_lcd, | 203 | .data = &lcd35_panel, |
233 | .platform_disable = overo_panel_disable_lcd, | ||
234 | }; | 204 | }; |
235 | #endif | 205 | #endif |
236 | 206 | ||
@@ -505,7 +475,6 @@ static void __init overo_init(void) | |||
505 | usbhs_init(&usbhs_bdata); | 475 | usbhs_init(&usbhs_bdata); |
506 | overo_spi_init(); | 476 | overo_spi_init(); |
507 | overo_init_smsc911x(); | 477 | overo_init_smsc911x(); |
508 | overo_display_init(); | ||
509 | overo_init_led(); | 478 | overo_init_led(); |
510 | overo_init_keys(); | 479 | overo_init_keys(); |
511 | omap_twl4030_audio_init("overo", NULL); | 480 | omap_twl4030_audio_init("overo", NULL); |
diff --git a/arch/arm/mach-omap2/board-rx51-video.c b/arch/arm/mach-omap2/board-rx51-video.c index eb667261df08..bd74f9f6063b 100644 --- a/arch/arm/mach-omap2/board-rx51-video.c +++ b/arch/arm/mach-omap2/board-rx51-video.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
18 | #include <video/omapdss.h> | 18 | #include <video/omapdss.h> |
19 | #include <video/omap-panel-data.h> | ||
20 | |||
19 | #include <linux/platform_data/spi-omap2-mcspi.h> | 21 | #include <linux/platform_data/spi-omap2-mcspi.h> |
20 | 22 | ||
21 | #include "soc.h" | 23 | #include "soc.h" |
@@ -27,25 +29,16 @@ | |||
27 | 29 | ||
28 | #if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) | 30 | #if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) |
29 | 31 | ||
30 | static int rx51_lcd_enable(struct omap_dss_device *dssdev) | 32 | static struct panel_acx565akm_data lcd_data = { |
31 | { | 33 | .reset_gpio = RX51_LCD_RESET_GPIO, |
32 | gpio_set_value(dssdev->reset_gpio, 1); | 34 | }; |
33 | return 0; | ||
34 | } | ||
35 | |||
36 | static void rx51_lcd_disable(struct omap_dss_device *dssdev) | ||
37 | { | ||
38 | gpio_set_value(dssdev->reset_gpio, 0); | ||
39 | } | ||
40 | 35 | ||
41 | static struct omap_dss_device rx51_lcd_device = { | 36 | static struct omap_dss_device rx51_lcd_device = { |
42 | .name = "lcd", | 37 | .name = "lcd", |
43 | .driver_name = "panel-acx565akm", | 38 | .driver_name = "panel-acx565akm", |
44 | .type = OMAP_DISPLAY_TYPE_SDI, | 39 | .type = OMAP_DISPLAY_TYPE_SDI, |
45 | .phy.sdi.datapairs = 2, | 40 | .phy.sdi.datapairs = 2, |
46 | .reset_gpio = RX51_LCD_RESET_GPIO, | 41 | .data = &lcd_data, |
47 | .platform_enable = rx51_lcd_enable, | ||
48 | .platform_disable = rx51_lcd_disable, | ||
49 | }; | 42 | }; |
50 | 43 | ||
51 | static struct omap_dss_device rx51_tv_device = { | 44 | static struct omap_dss_device rx51_tv_device = { |
@@ -76,13 +69,8 @@ static int __init rx51_video_init(void) | |||
76 | return 0; | 69 | return 0; |
77 | } | 70 | } |
78 | 71 | ||
79 | if (gpio_request_one(RX51_LCD_RESET_GPIO, GPIOF_OUT_INIT_HIGH, | ||
80 | "LCD ACX565AKM reset")) { | ||
81 | pr_err("%s failed to get LCD Reset GPIO\n", __func__); | ||
82 | return 0; | ||
83 | } | ||
84 | |||
85 | omap_display_init(&rx51_dss_board_info); | 72 | omap_display_init(&rx51_dss_board_info); |
73 | |||
86 | return 0; | 74 | return 0; |
87 | } | 75 | } |
88 | 76 | ||
diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach-omap2/board-zoom-display.c index 8cef477d6b00..c2a079cb76fc 100644 --- a/arch/arm/mach-omap2/board-zoom-display.c +++ b/arch/arm/mach-omap2/board-zoom-display.c | |||
@@ -12,12 +12,12 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/gpio.h> | 14 | #include <linux/gpio.h> |
15 | #include <linux/i2c/twl.h> | ||
16 | #include <linux/spi/spi.h> | 15 | #include <linux/spi/spi.h> |
17 | #include <linux/platform_data/spi-omap2-mcspi.h> | 16 | #include <linux/platform_data/spi-omap2-mcspi.h> |
18 | #include <video/omapdss.h> | 17 | #include <video/omapdss.h> |
19 | #include "board-zoom.h" | 18 | #include <video/omap-panel-data.h> |
20 | 19 | ||
20 | #include "board-zoom.h" | ||
21 | #include "soc.h" | 21 | #include "soc.h" |
22 | #include "common.h" | 22 | #include "common.h" |
23 | 23 | ||
@@ -25,92 +25,17 @@ | |||
25 | #define LCD_PANEL_RESET_GPIO_PILOT 55 | 25 | #define LCD_PANEL_RESET_GPIO_PILOT 55 |
26 | #define LCD_PANEL_QVGA_GPIO 56 | 26 | #define LCD_PANEL_QVGA_GPIO 56 |
27 | 27 | ||
28 | static struct gpio zoom_lcd_gpios[] __initdata = { | 28 | static struct panel_nec_nl8048_data zoom_lcd_data = { |
29 | { -EINVAL, GPIOF_OUT_INIT_HIGH, "lcd reset" }, | 29 | /* res_gpio filled in code */ |
30 | { LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "lcd qvga" }, | 30 | .qvga_gpio = LCD_PANEL_QVGA_GPIO, |
31 | }; | 31 | }; |
32 | 32 | ||
33 | static void __init zoom_lcd_panel_init(void) | ||
34 | { | ||
35 | zoom_lcd_gpios[0].gpio = (omap_rev() > OMAP3430_REV_ES3_0) ? | ||
36 | LCD_PANEL_RESET_GPIO_PROD : | ||
37 | LCD_PANEL_RESET_GPIO_PILOT; | ||
38 | |||
39 | if (gpio_request_array(zoom_lcd_gpios, ARRAY_SIZE(zoom_lcd_gpios))) | ||
40 | pr_err("%s: Failed to get LCD GPIOs.\n", __func__); | ||
41 | } | ||
42 | |||
43 | static int zoom_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
44 | { | ||
45 | return 0; | ||
46 | } | ||
47 | |||
48 | static void zoom_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | /* Register offsets in TWL4030_MODULE_INTBR */ | ||
53 | #define TWL_INTBR_PMBR1 0xD | ||
54 | #define TWL_INTBR_GPBR1 0xC | ||
55 | |||
56 | /* Register offsets in TWL_MODULE_PWM */ | ||
57 | #define TWL_LED_PWMON 0x3 | ||
58 | #define TWL_LED_PWMOFF 0x4 | ||
59 | |||
60 | static int zoom_set_bl_intensity(struct omap_dss_device *dssdev, int level) | ||
61 | { | ||
62 | #ifdef CONFIG_TWL4030_CORE | ||
63 | unsigned char c; | ||
64 | u8 mux_pwm, enb_pwm; | ||
65 | |||
66 | if (level > 100) | ||
67 | return -1; | ||
68 | |||
69 | twl_i2c_read_u8(TWL4030_MODULE_INTBR, &mux_pwm, TWL_INTBR_PMBR1); | ||
70 | twl_i2c_read_u8(TWL4030_MODULE_INTBR, &enb_pwm, TWL_INTBR_GPBR1); | ||
71 | |||
72 | if (level == 0) { | ||
73 | /* disable pwm1 output and clock */ | ||
74 | enb_pwm = enb_pwm & 0xF5; | ||
75 | /* change pwm1 pin to gpio pin */ | ||
76 | mux_pwm = mux_pwm & 0xCF; | ||
77 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
78 | enb_pwm, TWL_INTBR_GPBR1); | ||
79 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
80 | mux_pwm, TWL_INTBR_PMBR1); | ||
81 | return 0; | ||
82 | } | ||
83 | |||
84 | if (!((enb_pwm & 0xA) && (mux_pwm & 0x30))) { | ||
85 | /* change gpio pin to pwm1 pin */ | ||
86 | mux_pwm = mux_pwm | 0x30; | ||
87 | /* enable pwm1 output and clock*/ | ||
88 | enb_pwm = enb_pwm | 0x0A; | ||
89 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
90 | mux_pwm, TWL_INTBR_PMBR1); | ||
91 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
92 | enb_pwm, TWL_INTBR_GPBR1); | ||
93 | } | ||
94 | |||
95 | c = ((50 * (100 - level)) / 100) + 1; | ||
96 | twl_i2c_write_u8(TWL_MODULE_PWM, 0x7F, TWL_LED_PWMOFF); | ||
97 | twl_i2c_write_u8(TWL_MODULE_PWM, c, TWL_LED_PWMON); | ||
98 | #else | ||
99 | pr_warn("Backlight not enabled\n"); | ||
100 | #endif | ||
101 | |||
102 | return 0; | ||
103 | } | ||
104 | |||
105 | static struct omap_dss_device zoom_lcd_device = { | 33 | static struct omap_dss_device zoom_lcd_device = { |
106 | .name = "lcd", | 34 | .name = "lcd", |
107 | .driver_name = "NEC_8048_panel", | 35 | .driver_name = "NEC_8048_panel", |
108 | .type = OMAP_DISPLAY_TYPE_DPI, | 36 | .type = OMAP_DISPLAY_TYPE_DPI, |
109 | .phy.dpi.data_lines = 24, | 37 | .phy.dpi.data_lines = 24, |
110 | .platform_enable = zoom_panel_enable_lcd, | 38 | .data = &zoom_lcd_data, |
111 | .platform_disable = zoom_panel_disable_lcd, | ||
112 | .max_backlight_level = 100, | ||
113 | .set_backlight = zoom_set_bl_intensity, | ||
114 | }; | 39 | }; |
115 | 40 | ||
116 | static struct omap_dss_device *zoom_dss_devices[] = { | 41 | static struct omap_dss_device *zoom_dss_devices[] = { |
@@ -123,6 +48,13 @@ static struct omap_dss_board_info zoom_dss_data = { | |||
123 | .default_device = &zoom_lcd_device, | 48 | .default_device = &zoom_lcd_device, |
124 | }; | 49 | }; |
125 | 50 | ||
51 | static void __init zoom_lcd_panel_init(void) | ||
52 | { | ||
53 | zoom_lcd_data.res_gpio = (omap_rev() > OMAP3430_REV_ES3_0) ? | ||
54 | LCD_PANEL_RESET_GPIO_PROD : | ||
55 | LCD_PANEL_RESET_GPIO_PILOT; | ||
56 | } | ||
57 | |||
126 | static struct omap2_mcspi_device_config dss_lcd_mcspi_config = { | 58 | static struct omap2_mcspi_device_config dss_lcd_mcspi_config = { |
127 | .turbo_mode = 1, | 59 | .turbo_mode = 1, |
128 | }; | 60 | }; |
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index cdc0c1021863..a90375d5b2b6 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -22,6 +22,9 @@ | |||
22 | #include <linux/platform_data/gpio-omap.h> | 22 | #include <linux/platform_data/gpio-omap.h> |
23 | #include <linux/platform_data/omap-twl4030.h> | 23 | #include <linux/platform_data/omap-twl4030.h> |
24 | #include <linux/usb/phy.h> | 24 | #include <linux/usb/phy.h> |
25 | #include <linux/pwm.h> | ||
26 | #include <linux/leds_pwm.h> | ||
27 | #include <linux/pwm_backlight.h> | ||
25 | 28 | ||
26 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
27 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
@@ -193,6 +196,53 @@ static struct platform_device omap_vwlan_device = { | |||
193 | }, | 196 | }, |
194 | }; | 197 | }; |
195 | 198 | ||
199 | static struct pwm_lookup zoom_pwm_lookup[] = { | ||
200 | PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"), | ||
201 | PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"), | ||
202 | }; | ||
203 | |||
204 | static struct led_pwm zoom_pwm_leds[] = { | ||
205 | { | ||
206 | .name = "zoom::keypad", | ||
207 | .max_brightness = 127, | ||
208 | .pwm_period_ns = 7812500, | ||
209 | }, | ||
210 | }; | ||
211 | |||
212 | static struct led_pwm_platform_data zoom_pwm_data = { | ||
213 | .num_leds = ARRAY_SIZE(zoom_pwm_leds), | ||
214 | .leds = zoom_pwm_leds, | ||
215 | }; | ||
216 | |||
217 | static struct platform_device zoom_leds_pwm = { | ||
218 | .name = "leds_pwm", | ||
219 | .id = -1, | ||
220 | .dev = { | ||
221 | .platform_data = &zoom_pwm_data, | ||
222 | }, | ||
223 | }; | ||
224 | |||
225 | static struct platform_pwm_backlight_data zoom_backlight_data = { | ||
226 | .pwm_id = 1, | ||
227 | .max_brightness = 127, | ||
228 | .dft_brightness = 127, | ||
229 | .pwm_period_ns = 7812500, | ||
230 | }; | ||
231 | |||
232 | static struct platform_device zoom_backlight_pwm = { | ||
233 | .name = "pwm-backlight", | ||
234 | .id = -1, | ||
235 | .dev = { | ||
236 | .platform_data = &zoom_backlight_data, | ||
237 | }, | ||
238 | }; | ||
239 | |||
240 | static struct platform_device *zoom_devices[] __initdata = { | ||
241 | &omap_vwlan_device, | ||
242 | &zoom_leds_pwm, | ||
243 | &zoom_backlight_pwm, | ||
244 | }; | ||
245 | |||
196 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | 246 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { |
197 | .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ | 247 | .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ |
198 | }; | 248 | }; |
@@ -301,7 +351,8 @@ void __init zoom_peripherals_init(void) | |||
301 | 351 | ||
302 | omap_hsmmc_init(mmc); | 352 | omap_hsmmc_init(mmc); |
303 | omap_i2c_init(); | 353 | omap_i2c_init(); |
304 | platform_device_register(&omap_vwlan_device); | 354 | pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup)); |
355 | platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices)); | ||
305 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | 356 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); |
306 | usb_musb_init(NULL); | 357 | usb_musb_init(NULL); |
307 | enable_board_wakeup_source(); | 358 | enable_board_wakeup_source(); |
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c index 4be5cfc81ab8..393aeefaebb0 100644 --- a/arch/arm/mach-omap2/dss-common.c +++ b/arch/arm/mach-omap2/dss-common.c | |||
@@ -27,9 +27,7 @@ | |||
27 | #include <linux/gpio.h> | 27 | #include <linux/gpio.h> |
28 | 28 | ||
29 | #include <video/omapdss.h> | 29 | #include <video/omapdss.h> |
30 | #include <video/omap-panel-tfp410.h> | 30 | #include <video/omap-panel-data.h> |
31 | #include <video/omap-panel-nokia-dsi.h> | ||
32 | #include <video/omap-panel-picodlp.h> | ||
33 | 31 | ||
34 | #include "soc.h" | 32 | #include "soc.h" |
35 | #include "dss-common.h" | 33 | #include "dss-common.h" |
@@ -54,7 +52,6 @@ static struct omap_dss_device omap4_panda_dvi_device = { | |||
54 | .driver_name = "tfp410", | 52 | .driver_name = "tfp410", |
55 | .data = &omap4_dvi_panel, | 53 | .data = &omap4_dvi_panel, |
56 | .phy.dpi.data_lines = 24, | 54 | .phy.dpi.data_lines = 24, |
57 | .reset_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
58 | .channel = OMAP_DSS_CHANNEL_LCD2, | 55 | .channel = OMAP_DSS_CHANNEL_LCD2, |
59 | }; | 56 | }; |
60 | 57 | ||
@@ -179,45 +176,12 @@ static struct picodlp_panel_data sdp4430_picodlp_pdata = { | |||
179 | .pwrgood_gpio = 45, | 176 | .pwrgood_gpio = 45, |
180 | }; | 177 | }; |
181 | 178 | ||
182 | static void sdp4430_picodlp_init(void) | ||
183 | { | ||
184 | int r; | ||
185 | const struct gpio picodlp_gpios[] = { | ||
186 | {DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, | ||
187 | "DLP POWER ON"}, | ||
188 | {sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN, | ||
189 | "DLP EMU DONE"}, | ||
190 | {sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW, | ||
191 | "DLP PWRGOOD"}, | ||
192 | }; | ||
193 | |||
194 | r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios)); | ||
195 | if (r) | ||
196 | pr_err("Cannot request PicoDLP GPIOs, error %d\n", r); | ||
197 | } | ||
198 | |||
199 | static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev) | ||
200 | { | ||
201 | gpio_set_value(DISPLAY_SEL_GPIO, 0); | ||
202 | gpio_set_value(DLP_POWER_ON_GPIO, 1); | ||
203 | |||
204 | return 0; | ||
205 | } | ||
206 | |||
207 | static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev) | ||
208 | { | ||
209 | gpio_set_value(DLP_POWER_ON_GPIO, 0); | ||
210 | gpio_set_value(DISPLAY_SEL_GPIO, 1); | ||
211 | } | ||
212 | |||
213 | static struct omap_dss_device sdp4430_picodlp_device = { | 179 | static struct omap_dss_device sdp4430_picodlp_device = { |
214 | .name = "picodlp", | 180 | .name = "picodlp", |
215 | .driver_name = "picodlp_panel", | 181 | .driver_name = "picodlp_panel", |
216 | .type = OMAP_DISPLAY_TYPE_DPI, | 182 | .type = OMAP_DISPLAY_TYPE_DPI, |
217 | .phy.dpi.data_lines = 24, | 183 | .phy.dpi.data_lines = 24, |
218 | .channel = OMAP_DSS_CHANNEL_LCD2, | 184 | .channel = OMAP_DSS_CHANNEL_LCD2, |
219 | .platform_enable = sdp4430_panel_enable_picodlp, | ||
220 | .platform_disable = sdp4430_panel_disable_picodlp, | ||
221 | .data = &sdp4430_picodlp_pdata, | 185 | .data = &sdp4430_picodlp_pdata, |
222 | }; | 186 | }; |
223 | 187 | ||
@@ -234,17 +198,26 @@ static struct omap_dss_board_info sdp4430_dss_data = { | |||
234 | .default_device = &sdp4430_lcd_device, | 198 | .default_device = &sdp4430_lcd_device, |
235 | }; | 199 | }; |
236 | 200 | ||
201 | /* | ||
202 | * we select LCD2 by default (instead of Pico DLP) by setting DISPLAY_SEL_GPIO. | ||
203 | * Setting DLP_POWER_ON gpio enables the VDLP_2V5 VDLP_1V8 and VDLP_1V0 rails | ||
204 | * used by picodlp on the 4430sdp platform. Keep this gpio disabled as LCD2 is | ||
205 | * selected by default | ||
206 | */ | ||
237 | void __init omap_4430sdp_display_init(void) | 207 | void __init omap_4430sdp_display_init(void) |
238 | { | 208 | { |
239 | int r; | 209 | int r; |
240 | 210 | ||
241 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
242 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | 211 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, |
243 | "display_sel"); | 212 | "display_sel"); |
244 | if (r) | 213 | if (r) |
245 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | 214 | pr_err("%s: Could not get display_sel GPIO\n", __func__); |
246 | 215 | ||
247 | sdp4430_picodlp_init(); | 216 | r = gpio_request_one(DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, |
217 | "DLP POWER ON"); | ||
218 | if (r) | ||
219 | pr_err("%s: Could not get DLP POWER ON GPIO\n", __func__); | ||
220 | |||
248 | omap_display_init(&sdp4430_dss_data); | 221 | omap_display_init(&sdp4430_dss_data); |
249 | /* | 222 | /* |
250 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | 223 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and |
@@ -264,12 +237,15 @@ void __init omap_4430sdp_display_init_of(void) | |||
264 | { | 237 | { |
265 | int r; | 238 | int r; |
266 | 239 | ||
267 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
268 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | 240 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, |
269 | "display_sel"); | 241 | "display_sel"); |
270 | if (r) | 242 | if (r) |
271 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | 243 | pr_err("%s: Could not get display_sel GPIO\n", __func__); |
272 | 244 | ||
273 | sdp4430_picodlp_init(); | 245 | r = gpio_request_one(DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, |
246 | "DLP POWER ON"); | ||
247 | if (r) | ||
248 | pr_err("%s: Could not get DLP POWER ON GPIO\n", __func__); | ||
249 | |||
274 | omap_display_init(&sdp4430_dss_data); | 250 | omap_display_init(&sdp4430_dss_data); |
275 | } | 251 | } |
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c index c904f42d81c1..a0c9396ca43f 100644 --- a/drivers/video/omap2/displays/panel-generic-dpi.c +++ b/drivers/video/omap2/displays/panel-generic-dpi.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <linux/slab.h> | 35 | #include <linux/slab.h> |
36 | #include <video/omapdss.h> | 36 | #include <video/omapdss.h> |
37 | 37 | ||
38 | #include <video/omap-panel-generic-dpi.h> | 38 | #include <video/omap-panel-data.h> |
39 | 39 | ||
40 | struct panel_config { | 40 | struct panel_config { |
41 | struct omap_video_timings timings; | 41 | struct omap_video_timings timings; |
diff --git a/drivers/video/omap2/displays/panel-n8x0.c b/drivers/video/omap2/displays/panel-n8x0.c index dd1294750802..9c6b5fafeb2e 100644 --- a/drivers/video/omap2/displays/panel-n8x0.c +++ b/drivers/video/omap2/displays/panel-n8x0.c | |||
@@ -9,7 +9,7 @@ | |||
9 | #include <linux/fb.h> | 9 | #include <linux/fb.h> |
10 | 10 | ||
11 | #include <video/omapdss.h> | 11 | #include <video/omapdss.h> |
12 | #include <video/omap-panel-n8x0.h> | 12 | #include <video/omap-panel-data.h> |
13 | 13 | ||
14 | #define BLIZZARD_REV_CODE 0x00 | 14 | #define BLIZZARD_REV_CODE 0x00 |
15 | #define BLIZZARD_CONFIG 0x02 | 15 | #define BLIZZARD_CONFIG 0x02 |
diff --git a/drivers/video/omap2/displays/panel-picodlp.c b/drivers/video/omap2/displays/panel-picodlp.c index 1b94018aac3e..974ac29236aa 100644 --- a/drivers/video/omap2/displays/panel-picodlp.c +++ b/drivers/video/omap2/displays/panel-picodlp.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <linux/gpio.h> | 31 | #include <linux/gpio.h> |
32 | 32 | ||
33 | #include <video/omapdss.h> | 33 | #include <video/omapdss.h> |
34 | #include <video/omap-panel-picodlp.h> | 34 | #include <video/omap-panel-data.h> |
35 | 35 | ||
36 | #include "panel-picodlp.h" | 36 | #include "panel-picodlp.h" |
37 | 37 | ||
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index a32407a5735a..031d4069f332 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/mutex.h> | 33 | #include <linux/mutex.h> |
34 | 34 | ||
35 | #include <video/omapdss.h> | 35 | #include <video/omapdss.h> |
36 | #include <video/omap-panel-nokia-dsi.h> | 36 | #include <video/omap-panel-data.h> |
37 | #include <video/mipi_display.h> | 37 | #include <video/mipi_display.h> |
38 | 38 | ||
39 | /* DSI Virtual channel. Hardcoded for now. */ | 39 | /* DSI Virtual channel. Hardcoded for now. */ |
diff --git a/drivers/video/omap2/displays/panel-tfp410.c b/drivers/video/omap2/displays/panel-tfp410.c index 8281baafe1ef..a1dba868cef1 100644 --- a/drivers/video/omap2/displays/panel-tfp410.c +++ b/drivers/video/omap2/displays/panel-tfp410.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <drm/drm_edid.h> | 25 | #include <drm/drm_edid.h> |
26 | 26 | ||
27 | #include <video/omap-panel-tfp410.h> | 27 | #include <video/omap-panel-data.h> |
28 | 28 | ||
29 | static const struct omap_video_timings tfp410_default_timings = { | 29 | static const struct omap_video_timings tfp410_default_timings = { |
30 | .x_res = 640, | 30 | .x_res = 640, |
diff --git a/include/video/omap-panel-data.h b/include/video/omap-panel-data.h new file mode 100644 index 000000000000..6b55839b73fc --- /dev/null +++ b/include/video/omap-panel-data.h | |||
@@ -0,0 +1,152 @@ | |||
1 | /* | ||
2 | * Header containing platform_data structs for omap panels | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments | ||
5 | * Author: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
6 | * Archit Taneja <archit@ti.com> | ||
7 | * | ||
8 | * Copyright (C) 2011 Texas Instruments | ||
9 | * Author: Mayuresh Janorkar <mayur@ti.com> | ||
10 | * | ||
11 | * Copyright (C) 2010 Canonical Ltd. | ||
12 | * Author: Bryan Wu <bryan.wu@canonical.com> | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify it | ||
15 | * under the terms of the GNU General Public License version 2 as published by | ||
16 | * the Free Software Foundation. | ||
17 | * | ||
18 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
19 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
20 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
21 | * more details. | ||
22 | * | ||
23 | * You should have received a copy of the GNU General Public License along with | ||
24 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
25 | */ | ||
26 | |||
27 | #ifndef __OMAP_PANEL_DATA_H | ||
28 | #define __OMAP_PANEL_DATA_H | ||
29 | |||
30 | struct omap_dss_device; | ||
31 | |||
32 | /** | ||
33 | * struct panel_generic_dpi_data - panel driver configuration data | ||
34 | * @name: panel name | ||
35 | * @platform_enable: platform specific panel enable function | ||
36 | * @platform_disable: platform specific panel disable function | ||
37 | * @num_gpios: number of gpios connected to panel | ||
38 | * @gpios: gpio numbers on the platform | ||
39 | * @gpio_invert: configure gpio as active high or low | ||
40 | */ | ||
41 | struct panel_generic_dpi_data { | ||
42 | const char *name; | ||
43 | int (*platform_enable)(struct omap_dss_device *dssdev); | ||
44 | void (*platform_disable)(struct omap_dss_device *dssdev); | ||
45 | |||
46 | int num_gpios; | ||
47 | int gpios[10]; | ||
48 | bool gpio_invert[10]; | ||
49 | }; | ||
50 | |||
51 | /** | ||
52 | * struct panel_n8x0_data - N800 panel driver configuration data | ||
53 | */ | ||
54 | struct panel_n8x0_data { | ||
55 | int (*platform_enable)(struct omap_dss_device *dssdev); | ||
56 | void (*platform_disable)(struct omap_dss_device *dssdev); | ||
57 | int panel_reset; | ||
58 | int ctrl_pwrdown; | ||
59 | |||
60 | int (*set_backlight)(struct omap_dss_device *dssdev, int level); | ||
61 | }; | ||
62 | |||
63 | /** | ||
64 | * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration data | ||
65 | * @name: panel name | ||
66 | * @use_ext_te: use external TE | ||
67 | * @ext_te_gpio: external TE GPIO | ||
68 | * @esd_interval: interval of ESD checks, 0 = disabled (ms) | ||
69 | * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms) | ||
70 | * @use_dsi_backlight: true if panel uses DSI command to control backlight | ||
71 | * @pin_config: DSI pin configuration | ||
72 | */ | ||
73 | |||
74 | struct nokia_dsi_panel_data { | ||
75 | const char *name; | ||
76 | |||
77 | int reset_gpio; | ||
78 | |||
79 | bool use_ext_te; | ||
80 | int ext_te_gpio; | ||
81 | |||
82 | unsigned esd_interval; | ||
83 | unsigned ulps_timeout; | ||
84 | |||
85 | bool use_dsi_backlight; | ||
86 | |||
87 | struct omap_dsi_pin_config pin_config; | ||
88 | }; | ||
89 | |||
90 | /** | ||
91 | * struct picodlp_panel_data - picodlp panel driver configuration data | ||
92 | * @picodlp_adapter_id: i2c_adapter number for picodlp | ||
93 | */ | ||
94 | struct picodlp_panel_data { | ||
95 | int picodlp_adapter_id; | ||
96 | int emu_done_gpio; | ||
97 | int pwrgood_gpio; | ||
98 | }; | ||
99 | |||
100 | /** | ||
101 | * struct tfp410_platform_data - tfp410 panel driver configuration data | ||
102 | * @i2c_bus_num: i2c bus id for the panel | ||
103 | * @power_down_gpio: gpio number for PD pin (or -1 if not available) | ||
104 | */ | ||
105 | struct tfp410_platform_data { | ||
106 | int i2c_bus_num; | ||
107 | int power_down_gpio; | ||
108 | }; | ||
109 | |||
110 | /** | ||
111 | * sharp ls panel driver configuration data | ||
112 | * @resb_gpio: reset signal | ||
113 | * @ini_gpio: power on control | ||
114 | * @mo_gpio: selection for resolution(VGA/QVGA) | ||
115 | * @lr_gpio: selection for horizontal scanning direction | ||
116 | * @ud_gpio: selection for vertical scanning direction | ||
117 | */ | ||
118 | struct panel_sharp_ls037v7dw01_data { | ||
119 | int resb_gpio; | ||
120 | int ini_gpio; | ||
121 | int mo_gpio; | ||
122 | int lr_gpio; | ||
123 | int ud_gpio; | ||
124 | }; | ||
125 | |||
126 | /** | ||
127 | * acx565akm panel driver configuration data | ||
128 | * @reset_gpio: reset signal | ||
129 | */ | ||
130 | struct panel_acx565akm_data { | ||
131 | int reset_gpio; | ||
132 | }; | ||
133 | |||
134 | /** | ||
135 | * nec nl8048 panel driver configuration data | ||
136 | * @res_gpio: reset signal | ||
137 | * @qvga_gpio: selection for resolution(QVGA/WVGA) | ||
138 | */ | ||
139 | struct panel_nec_nl8048_data { | ||
140 | int res_gpio; | ||
141 | int qvga_gpio; | ||
142 | }; | ||
143 | |||
144 | /** | ||
145 | * tpo td043 panel driver configuration data | ||
146 | * @nreset_gpio: reset signal | ||
147 | */ | ||
148 | struct panel_tpo_td043_data { | ||
149 | int nreset_gpio; | ||
150 | }; | ||
151 | |||
152 | #endif /* __OMAP_PANEL_DATA_H */ | ||
diff --git a/include/video/omap-panel-generic-dpi.h b/include/video/omap-panel-generic-dpi.h deleted file mode 100644 index 127e3f20328e..000000000000 --- a/include/video/omap-panel-generic-dpi.h +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /* | ||
2 | * Header for generic DPI panel driver | ||
3 | * | ||
4 | * Copyright (C) 2010 Canonical Ltd. | ||
5 | * Author: Bryan Wu <bryan.wu@canonical.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
14 | * more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along with | ||
17 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
18 | */ | ||
19 | |||
20 | #ifndef __OMAP_PANEL_GENERIC_DPI_H | ||
21 | #define __OMAP_PANEL_GENERIC_DPI_H | ||
22 | |||
23 | struct omap_dss_device; | ||
24 | |||
25 | /** | ||
26 | * struct panel_generic_dpi_data - panel driver configuration data | ||
27 | * @name: panel name | ||
28 | * @platform_enable: platform specific panel enable function | ||
29 | * @platform_disable: platform specific panel disable function | ||
30 | */ | ||
31 | struct panel_generic_dpi_data { | ||
32 | const char *name; | ||
33 | int (*platform_enable)(struct omap_dss_device *dssdev); | ||
34 | void (*platform_disable)(struct omap_dss_device *dssdev); | ||
35 | }; | ||
36 | |||
37 | #endif /* __OMAP_PANEL_GENERIC_DPI_H */ | ||
diff --git a/include/video/omap-panel-n8x0.h b/include/video/omap-panel-n8x0.h deleted file mode 100644 index 50a1302e2cfd..000000000000 --- a/include/video/omap-panel-n8x0.h +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | #ifndef __OMAP_PANEL_N8X0_H | ||
2 | #define __OMAP_PANEL_N8X0_H | ||
3 | |||
4 | struct omap_dss_device; | ||
5 | |||
6 | struct panel_n8x0_data { | ||
7 | int (*platform_enable)(struct omap_dss_device *dssdev); | ||
8 | void (*platform_disable)(struct omap_dss_device *dssdev); | ||
9 | int panel_reset; | ||
10 | int ctrl_pwrdown; | ||
11 | |||
12 | int (*set_backlight)(struct omap_dss_device *dssdev, int level); | ||
13 | }; | ||
14 | |||
15 | #endif | ||
diff --git a/include/video/omap-panel-nokia-dsi.h b/include/video/omap-panel-nokia-dsi.h deleted file mode 100644 index 04219a295539..000000000000 --- a/include/video/omap-panel-nokia-dsi.h +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #ifndef __OMAP_NOKIA_DSI_PANEL_H | ||
2 | #define __OMAP_NOKIA_DSI_PANEL_H | ||
3 | |||
4 | struct omap_dss_device; | ||
5 | |||
6 | /** | ||
7 | * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration | ||
8 | * @name: panel name | ||
9 | * @use_ext_te: use external TE | ||
10 | * @ext_te_gpio: external TE GPIO | ||
11 | * @esd_interval: interval of ESD checks, 0 = disabled (ms) | ||
12 | * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms) | ||
13 | * @use_dsi_backlight: true if panel uses DSI command to control backlight | ||
14 | * @pin_config: DSI pin configuration | ||
15 | */ | ||
16 | struct nokia_dsi_panel_data { | ||
17 | const char *name; | ||
18 | |||
19 | int reset_gpio; | ||
20 | |||
21 | bool use_ext_te; | ||
22 | int ext_te_gpio; | ||
23 | |||
24 | unsigned esd_interval; | ||
25 | unsigned ulps_timeout; | ||
26 | |||
27 | bool use_dsi_backlight; | ||
28 | |||
29 | struct omap_dsi_pin_config pin_config; | ||
30 | }; | ||
31 | |||
32 | #endif /* __OMAP_NOKIA_DSI_PANEL_H */ | ||
diff --git a/include/video/omap-panel-picodlp.h b/include/video/omap-panel-picodlp.h deleted file mode 100644 index 1c342ef6f3a1..000000000000 --- a/include/video/omap-panel-picodlp.h +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /* | ||
2 | * panel data for picodlp panel | ||
3 | * | ||
4 | * Copyright (C) 2011 Texas Instruments | ||
5 | * | ||
6 | * Author: Mayuresh Janorkar <mayur@ti.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | #ifndef __PANEL_PICODLP_H | ||
13 | #define __PANEL_PICODLP_H | ||
14 | /** | ||
15 | * struct : picodlp panel data | ||
16 | * picodlp_adapter_id: i2c_adapter number for picodlp | ||
17 | */ | ||
18 | struct picodlp_panel_data { | ||
19 | int picodlp_adapter_id; | ||
20 | int emu_done_gpio; | ||
21 | int pwrgood_gpio; | ||
22 | }; | ||
23 | #endif /* __PANEL_PICODLP_H */ | ||
diff --git a/include/video/omap-panel-tfp410.h b/include/video/omap-panel-tfp410.h deleted file mode 100644 index aef35e48bc7e..000000000000 --- a/include/video/omap-panel-tfp410.h +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /* | ||
2 | * Header for TFP410 chip driver | ||
3 | * | ||
4 | * Copyright (C) 2011 Texas Instruments Inc | ||
5 | * Author: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
14 | * more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along with | ||
17 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
18 | */ | ||
19 | |||
20 | #ifndef __OMAP_PANEL_TFP410_H | ||
21 | #define __OMAP_PANEL_TFP410_H | ||
22 | |||
23 | struct omap_dss_device; | ||
24 | |||
25 | /** | ||
26 | * struct tfp410_platform_data - panel driver configuration data | ||
27 | * @i2c_bus_num: i2c bus id for the panel | ||
28 | * @power_down_gpio: gpio number for PD pin (or -1 if not available) | ||
29 | */ | ||
30 | struct tfp410_platform_data { | ||
31 | int i2c_bus_num; | ||
32 | int power_down_gpio; | ||
33 | }; | ||
34 | |||
35 | #endif /* __OMAP_PANEL_TFP410_H */ | ||