15 #include <linux/kernel.h>
24 #include <linux/input.h>
74 static u8 omap3_beagle_version;
100 static void __init omap3_beagle_init_rev(
void)
123 switch (beagle_rev) {
127 beagle_config.mmc1_gpio_wp = 29;
128 beagle_config.dvi_pd_gpio = 170;
129 beagle_config.usr_button_gpio = 7;
134 beagle_config.mmc1_gpio_wp = 23;
135 beagle_config.dvi_pd_gpio = 170;
136 beagle_config.usr_button_gpio = 7;
141 beagle_config.mmc1_gpio_wp = 23;
142 beagle_config.dvi_pd_gpio = 170;
143 beagle_config.usr_button_gpio = 7;
162 static struct mtd_partition omap3beagle_nand_partitions[] = {
177 .name =
"U-Boot Env",
187 .name =
"File System",
197 .power_down_gpio = -1,
203 .driver_name =
"tfp410",
205 .phy.dpi.data_lines = 24,
210 .driver_name =
"venc",
221 .num_devices =
ARRAY_SIZE(beagle_dss_devices),
222 .devices = beagle_dss_devices,
223 .default_device = &beagle_dvi_device,
248 static int beagle_twl_gpio_setup(
struct device *
dev,
249 unsigned gpio,
unsigned ngpio)
253 mmc[0].
gpio_wp = beagle_config.mmc1_gpio_wp;
256 omap_hsmmc_late_init(mmc);
274 pr_err(
"%s: unable to configure nDVI_PWR_EN\n",
277 beagle_config.dvi_pd_gpio = gpio + 2;
285 pr_err(
"%s: unable to configure EHCI_nOC\n", __func__);
303 .setup = beagle_twl_gpio_setup,
317 .num_consumer_supplies =
ARRAY_SIZE(beagle_vmmc1_supply),
318 .consumer_supplies = beagle_vmmc1_supply,
332 .num_consumer_supplies =
ARRAY_SIZE(beagle_vsim_supply),
333 .consumer_supplies = beagle_vsim_supply,
338 .gpio = &beagle_gpio_data,
339 .vmmc1 = &beagle_vmmc1,
340 .vsim = &beagle_vsim,
349 static int __init omap3_beagle_i2c_init(
void)
356 beagle_twldata.
vpll2->constraints.name =
"VDVI";
358 omap3_pmic_init(
"twl4030", &beagle_twldata);
365 static struct gpio_led gpio_leds[] = {
367 .name =
"beagleboard::usr0",
368 .default_trigger =
"heartbeat",
372 .name =
"beagleboard::usr1",
373 .default_trigger =
"mmc0",
377 .name =
"beagleboard::pmu_stat",
392 .platform_data = &gpio_led_info,
407 .buttons = gpio_buttons,
415 .platform_data = &gpio_key_info,
420 .name =
"twl4030_madc_hwmon",
437 .reset_gpio_port[0] = -
EINVAL,
438 .reset_gpio_port[1] = 147,
439 .reset_gpio_port[2] = -
EINVAL
442 #ifdef CONFIG_OMAP_MUX
448 static int __init beagle_opp_init(
void)
452 if (!machine_is_omap3_beagle())
458 pr_err(
"%s: opp default init failed\n", __func__);
464 struct device *mpu_dev, *iva_dev;
469 if (IS_ERR(mpu_dev) || IS_ERR(iva_dev)) {
470 pr_err(
"%s: Aiee.. no mpu/dsp devices? %p %p\n",
471 __func__, mpu_dev, iva_dev);
482 pr_err(
"%s: failed to enable higher opp %d\n",
496 static void __init omap3_beagle_init(
void)
499 omap3_beagle_init_rev();
501 if (gpio_is_valid(beagle_config.mmc1_gpio_wp))
503 mmc[0].
caps = beagle_config.mmc_caps;
504 omap_hsmmc_init(mmc);
506 omap3_beagle_i2c_init();
508 gpio_buttons[0].
gpio = beagle_config.usr_button_gpio;
512 if (gpio_is_valid(beagle_config.dvi_pd_gpio))
517 mt46h32m32lf6_sdrc_params);
535 .atag_offset = 0x100,
540 .handle_irq = omap3_intc_handle_irq,
541 .init_machine = omap3_beagle_init,