226
227
{} /* Terminator */
229
static struct regulator_consumer_supply zoom_vpll2_supplies[] = {
230
REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
231
REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
234
static struct regulator_consumer_supply zoom_vdda_dac_supply =
235
REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
237
static struct regulator_init_data zoom_vpll2 = {
241
.valid_modes_mask = REGULATOR_MODE_NORMAL
242
| REGULATOR_MODE_STANDBY,
243
.valid_ops_mask = REGULATOR_CHANGE_MODE
244
| REGULATOR_CHANGE_STATUS,
246
.num_consumer_supplies = ARRAY_SIZE(zoom_vpll2_supplies),
247
.consumer_supplies = zoom_vpll2_supplies,
250
static struct regulator_init_data zoom_vdac = {
254
.valid_modes_mask = REGULATOR_MODE_NORMAL
255
| REGULATOR_MODE_STANDBY,
256
.valid_ops_mask = REGULATOR_CHANGE_MODE
257
| REGULATOR_CHANGE_STATUS,
259
.num_consumer_supplies = 1,
260
.consumer_supplies = &zoom_vdda_dac_supply,
263
230
static int zoom_twl_gpio_setup(struct device *dev,
264
231
unsigned gpio, unsigned ngpio)
276
243
zoom_vsim_supply.dev = mmc[0].dev;
277
244
zoom_vmmc2_supply.dev = mmc[1].dev;
279
ret = gpio_request(LCD_PANEL_ENABLE_GPIO, "lcd enable");
246
ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW,
281
249
pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n",
282
250
LCD_PANEL_ENABLE_GPIO);
285
gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 0);
293
258
gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute);
296
static int zoom_batt_table[] = {
298
30800, 29500, 28300, 27100,
299
26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
300
17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
301
11600, 11200, 10800, 10400, 10000, 9630, 9280, 8950, 8620, 8310,
302
8020, 7730, 7460, 7200, 6950, 6710, 6470, 6250, 6040, 5830,
303
5640, 5450, 5260, 5090, 4920, 4760, 4600, 4450, 4310, 4170,
304
4040, 3910, 3790, 3670, 3550
307
static struct twl4030_bci_platform_data zoom_bci_data = {
308
.battery_tmp_tbl = zoom_batt_table,
309
.tblsize = ARRAY_SIZE(zoom_batt_table),
312
static struct twl4030_usb_data zoom_usb_data = {
313
.usb_mode = T2_USB_MODE_ULPI,
316
261
static struct twl4030_gpio_platform_data zoom_gpio_data = {
317
262
.gpio_base = OMAP_MAX_GPIO_LINES,
318
263
.irq_base = TWL4030_GPIO_IRQ_BASE,
320
265
.setup = zoom_twl_gpio_setup,
323
static struct twl4030_madc_platform_data zoom_madc_data = {
327
static struct twl4030_codec_audio_data zoom_audio_data;
329
static struct twl4030_codec_data zoom_codec_data = {
330
.audio_mclk = 26000000,
331
.audio = &zoom_audio_data,
334
268
static struct twl4030_platform_data zoom_twldata = {
335
.irq_base = TWL4030_IRQ_BASE,
336
.irq_end = TWL4030_IRQ_END,
338
269
/* platform_data for children goes here */
339
.bci = &zoom_bci_data,
340
.madc = &zoom_madc_data,
341
.usb = &zoom_usb_data,
342
270
.gpio = &zoom_gpio_data,
343
271
.keypad = &zoom_kp_twl4030_data,
344
.codec = &zoom_codec_data,
345
272
.vmmc1 = &zoom_vmmc1,
346
273
.vmmc2 = &zoom_vmmc2,
347
274
.vsim = &zoom_vsim,
348
.vpll2 = &zoom_vpll2,
352
static struct i2c_board_info __initdata zoom_i2c_boardinfo[] = {
354
I2C_BOARD_INFO("twl5030", 0x48),
355
.flags = I2C_CLIENT_WAKE,
356
.irq = INT_34XX_SYS_NIRQ,
357
.platform_data = &zoom_twldata,
361
277
static int __init omap_i2c_init(void)
279
omap3_pmic_get_config(&zoom_twldata,
280
TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI |
281
TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
282
TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
363
284
if (machine_is_omap_zoom2()) {
364
zoom_audio_data.ramp_delay_value = 3; /* 161 ms */
365
zoom_audio_data.hs_extmute = 1;
366
zoom_audio_data.set_hs_extmute = zoom2_set_hs_extmute;
285
struct twl4030_codec_data *codec_data;
286
codec_data = zoom_twldata.audio->codec;
288
codec_data->ramp_delay_value = 3; /* 161 ms */
289
codec_data->hs_extmute = 1;
290
codec_data->set_hs_extmute = zoom2_set_hs_extmute;
368
omap_register_i2c_bus(1, 2400, zoom_i2c_boardinfo,
369
ARRAY_SIZE(zoom_i2c_boardinfo));
292
omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ, &zoom_twldata);
370
293
omap_register_i2c_bus(2, 400, NULL, 0);
371
294
omap_register_i2c_bus(3, 400, NULL, 0);
375
static struct omap_musb_board_data musb_board_data = {
376
.interface_type = MUSB_INTERFACE_ULPI,
381
298
static void enable_board_wakeup_source(void)
383
300
/* T2 interrupt line (keypad) */