29 #include <linux/types.h>
44 #include <asm/memblock.h>
46 #include <mach/hardware.h>
47 #include <mach/common.h>
56 #define GPIO_MC9S08DZ60_GPS_ENABLE 0
57 #define GPIO_MC9S08DZ60_HDD_ENABLE 4
58 #define GPIO_MC9S08DZ60_WIFI_ENABLE 5
59 #define GPIO_MC9S08DZ60_LCD_ENABLE 6
60 #define GPIO_MC9S08DZ60_SPEAKER_ENABLE 8
65 .name =
"Ceramate-CLAA070VC01",
83 .name =
"Ceramate-CLAA070VC01",
94 static int lcd_power_gpio = -
ENXIO;
96 static int mc9s08dz60_gpiochip_match(
struct gpio_chip *
chip,
void *
data)
98 return !
strcmp(chip->label, data);
101 static void mx35_3ds_lcd_set_power(
104 struct gpio_chip *
chip;
106 if (!gpio_is_valid(lcd_power_gpio)) {
108 "mc9s08dz60", mc9s08dz60_gpiochip_match);
113 pr_err(
"error: gpio already requested!\n");
114 lcd_power_gpio = -
ENXIO;
117 pr_err(
"error: didn't find mc9s08dz60 gpio chip\n");
121 if (gpio_is_valid(lcd_power_gpio))
126 .set_power = mx35_3ds_lcd_set_power,
130 .name =
"platform-lcd",
131 .dev.platform_data = &mx35_3ds_lcd_data,
142 static struct resource mx35pdk_flash_resource = {
149 .name =
"physmap-flash",
152 .platform_data = &mx35pdk_flash_data,
154 .resource = &mx35pdk_flash_resource,
258 #define MX35_3DS_CAMERA_BUF_SIZE SZ_8M
265 static int __init imx35_3ds_init_camera(
void)
272 return PTR_ERR(pdev);
274 if (!mx3_camera_base)
278 mx3_camera_base, mx3_camera_base,
299 .board_info = &mx35_3ds_i2c_camera,
305 .name =
"soc-camera-pdrv",
308 .platform_data = &iclink_ov2640,
333 .valid_modes_mask = 0,
337 .num_consumer_supplies =
ARRAY_SIZE(sw1_consumers),
338 .consumer_supplies = sw1_consumers,
415 .num_consumer_supplies =
ARRAY_SIZE(vaudio_consumers),
416 .consumer_supplies = vaudio_consumers,
429 .num_consumer_supplies =
ARRAY_SIZE(vcam_consumers),
430 .consumer_supplies = vcam_consumers,
473 .num_regulators =
ARRAY_SIZE(mx35_3ds_regulators),
474 .regulators = mx35_3ds_regulators,
478 #define GPIO_PMIC_INT IMX_GPIO_NR(2, 0)
483 .platform_data = &mx35_3ds_mc13892_data,
487 static void __init imx35_3ds_init_mc13892(
void)
492 pr_err(
"failed to get pmic irq: %d\n", ret);
517 .
init = mx35_3ds_otg_init,
529 .
init = mx35_3ds_usbh_init,
537 if (!
strcmp(options,
"host"))
538 otg_mode_host =
true;
539 else if (!
strcmp(options,
"device"))
540 otg_mode_host =
false;
542 pr_info(
"otg_mode neither \"host\" nor \"device\". "
543 "Defaulting to device\n");
546 __setup(
"otg_mode=", mx35_3ds_otg_mode);
555 static void __init mx35_3ds_init(
void)
582 pr_warn(
"Init of the debugboard failed, all "
583 "devices on the debugboard are unusable.\n");
587 0, i2c_devices_3ds,
ARRAY_SIZE(i2c_devices_3ds));
591 imx35_3ds_init_camera();
594 mx35_3ds_lcd.
dev.parent = &imx35_fb_pdev->
dev;
597 imx35_3ds_init_mc13892();
600 static void __init mx35pdk_timer_init(
void)
605 static struct sys_timer mx35pdk_timer = {
606 .init = mx35pdk_timer_init,
609 static void __init mx35_3ds_reserve(
void)
618 .atag_offset = 0x100,
623 .timer = &mx35pdk_timer,
624 .init_machine = mx35_3ds_init,
625 .reserve = mx35_3ds_reserve,