30 #include <linux/types.h>
35 #include <linux/input.h>
44 #include <asm/memblock.h>
46 #include <mach/common.h>
47 #include <mach/hardware.h>
54 static unsigned int moboard_pins[] = {
115 static struct resource mx31moboard_flash_resource = {
122 .name =
"physmap-flash",
125 .platform_data = &mx31moboard_flash_data,
127 .resource = &mx31moboard_flash_resource,
150 .init = moboard_uart0_init,
151 .exit = moboard_uart0_exit,
166 static int moboard_spi1_cs[] = {
171 static const struct spi_imx_master moboard_spi1_pdata __initconst = {
172 .chipselect = moboard_spi1_cs,
173 .num_chipselect =
ARRAY_SIZE(moboard_spi1_cs),
178 .dev_name =
"mxc-mmc.0",
179 .supply =
"sdhc0_vcc",
182 .dev_name =
"mxc-mmc.1",
183 .supply =
"sdhc1_vcc",
198 .num_consumer_supplies =
ARRAY_SIZE(sdhc_consumers),
199 .consumer_supplies = sdhc_consumers,
204 .dev_name =
"mx3_camera.0",
220 .num_consumer_supplies =
ARRAY_SIZE(cam_consumers),
221 .consumer_supplies = cam_consumers,
227 .init_data = &sdhc_vreg_data,
231 .init_data = &cam_vreg_data,
238 .name =
"coreboard-led-4:red",
243 .name =
"coreboard-led-4:green",
248 .name =
"coreboard-led-4:blue",
253 .name =
"coreboard-led-5:red",
258 .name =
"coreboard-led-5:green",
263 .name =
"coreboard-led-5:blue",
290 .regulators = moboard_regulators,
291 .num_regulators =
ARRAY_SIZE(moboard_regulators),
293 .leds = &moboard_leds,
294 .buttons = &moboard_buttons,
295 .codec = &moboard_codec,
305 .modalias =
"mc13783",
307 .max_speed_hz = 300000,
310 .platform_data = &moboard_pmic,
315 static int moboard_spi2_cs[] = {
319 static const struct spi_imx_master moboard_spi2_pdata __initconst = {
321 .num_chipselect =
ARRAY_SIZE(moboard_spi2_cs),
324 #define SDHC1_CD IOMUX_TO_GPIO(MX31_PIN_ATA_CS0)
325 #define SDHC1_WP IOMUX_TO_GPIO(MX31_PIN_ATA_CS1)
327 static int moboard_sdhc1_get_ro(
struct device *
dev)
350 "sdhc1-card-detect", data);
352 goto err_gpio_free_2;
364 static void moboard_sdhc1_exit(
struct device *dev,
void *data)
372 .get_ro = moboard_sdhc1_get_ro,
373 .init = moboard_sdhc1_init,
374 .exit = moboard_sdhc1_exit,
380 #define USB_RESET_B IOMUX_TO_GPIO(MX31_PIN_GPIO1_0)
381 #define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \
384 #define OTG_EN_B IOMUX_TO_GPIO(MX31_PIN_USB_OC)
385 #define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6)
387 static void usb_xcvr_reset(
void)
434 .init = moboard_usbh2_init_hw,
438 static int __init moboard_usbh2_init(
void)
444 if (!usbh2_pdata.otg)
449 return PTR_ERR(pdev);
454 static const struct gpio_led mx31moboard_leds[] __initconst = {
456 .name =
"coreboard-led-0:red:running",
457 .default_trigger =
"heartbeat",
460 .name =
"coreboard-led-1:red",
463 .name =
"coreboard-led-2:red",
466 .name =
"coreboard-led-3:red",
473 .leds = mx31moboard_leds,
486 #define MX3_CAMERA_BUF_SIZE SZ_4M
488 static int __init mx31moboard_init_cam(
void)
497 return PTR_ERR(pdev);
500 mx3_camera_base, mx3_camera_base,
515 static void mx31moboard_poweroff(
void)
520 clk_prepare_enable(clk);
527 static int mx31moboard_baseboard;
528 core_param(mx31moboard_baseboard, mx31moboard_baseboard,
int, 0444);
533 static void __init mx31moboard_init(
void)
556 moboard_spi_board_info[0].irq =
563 mx31moboard_init_cam();
567 moboard_usbh2_init();
571 imx_add_platform_device(
"imx_mc13783", 0,
NULL, 0,
NULL, 0);
575 switch (mx31moboard_baseboard) {
590 mx31moboard_baseboard);
594 static void __init mx31moboard_timer_init(
void)
599 static struct sys_timer mx31moboard_timer = {
600 .init = mx31moboard_timer_init,
603 static void __init mx31moboard_reserve(
void)
612 .atag_offset = 0x100,
613 .reserve = mx31moboard_reserve,
618 .timer = &mx31moboard_timer,
619 .init_machine = mx31moboard_init,