17 #include <linux/types.h>
22 #include <linux/i2c.h>
29 #include <asm/memory.h>
31 #include <mach/common.h>
34 #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
43 #define PBC_BASE_ADDRESS MX31_CS4_BASE_ADDR_VIRT
46 #define PBC_INTSTATUS 0x000016
49 #define PBC_INTCURR_STATUS 0x000018
52 #define PBC_INTMASK_SET 0x00001A
55 #define PBC_INTMASK_CLEAR 0x00001C
58 #define PBC_SC16C652_UARTA 0x010000
61 #define PBC_SC16C652_UARTB 0x010010
63 #define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS)
64 #define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS)
65 #define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS)
67 #define EXPIO_INT_XUART_INTA 10
68 #define EXPIO_INT_XUART_INTB 11
70 #define MXC_MAX_EXP_IO_LINES 16
73 #define EXPIO_INT_ENET_INT 8
74 #define CS4_CS8900_MMIO_START 0x20000
101 .name =
"serial8250",
104 .platform_data = serial_platform_data,
116 .res = mx31ads_cs8900_resources,
117 .num_res =
ARRAY_SIZE(mx31ads_cs8900_resources),
120 static int __init mxc_init_extuart(
void)
129 static void __init mxc_init_ext_ethernet(
void)
131 mx31ads_cs8900_resources[1].start =
133 mx31ads_cs8900_resources[1].end =
143 static unsigned int uart_pins[] = {
150 static inline void mxc_init_imx_uart(
void)
166 for (; int_valid != 0; int_valid >>= 1, expio_irq++) {
167 if ((int_valid & 1) == 0)
178 static void expio_mask_irq(
struct irq_data *
d)
190 static void expio_ack_irq(
struct irq_data *
d)
201 static void expio_unmask_irq(
struct irq_data *
d)
208 static struct irq_chip expio_irq_chip = {
209 .name =
"EXPIO(CPLD)",
210 .irq_ack = expio_ack_irq,
211 .irq_mask = expio_mask_irq,
212 .irq_unmask = expio_unmask_irq,
215 static void __init mx31ads_init_expio(
void)
244 irq_set_chained_handler(irq, mx31ads_expio_irq_handler);
247 #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
281 .num_consumer_supplies =
ARRAY_SIZE(sw1a_consumers),
282 .consumer_supplies = sw1a_consumers,
343 .name =
"VCAM/VMMC1/VMMC2",
353 { .
supply =
"AVDD", .dev_name =
"1-001a" },
354 { .supply =
"HPVDD", .dev_name =
"1-001a" },
360 .name =
"VESIM/VSIM/AVDD",
367 .num_consumer_supplies =
ARRAY_SIZE(ldo2_consumers),
368 .consumer_supplies = ldo2_consumers,
387 .name =
"VRF1/CVDD_2.775",
398 .
name =
"wm8350:white",
399 .default_trigger =
"heartbeat",
406 .cap_discharge_msecs = 700,
407 .vmid_charge_msecs = 700,
487 wm8350->
codec.platform_data = &imx32ads_wm8350_setup;
495 .init = mx31_wm8350_init,
499 static struct i2c_board_info __initdata mx31ads_i2c1_devices[] = {
500 #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
503 .platform_data = &mx31_wm8350_pdata,
509 static void __init mxc_init_i2c(
void)
511 #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
512 mx31ads_i2c1_devices[0].
irq =
524 static unsigned int ssi_pins[] = {
531 static void __init mxc_init_audio(
void)
541 static struct map_desc mx31ads_io_desc[] __initdata = {
550 static void __init mx31ads_map_io(
void)
556 static void __init mx31ads_init_irq(
void)
559 mx31ads_init_expio();
562 static void __init mx31ads_init(
void)
570 mxc_init_ext_ethernet();
573 static void __init mx31ads_timer_init(
void)
578 static struct sys_timer mx31ads_timer = {
579 .init = mx31ads_timer_init,
584 .atag_offset = 0x100,
585 .map_io = mx31ads_map_io,
587 .init_irq = mx31ads_init_irq,
589 .timer = &mx31ads_timer,
590 .init_machine = mx31ads_init,