]>
Commit | Line | Data |
---|---|---|
bf4289cb JCPV |
1 | /* |
2 | * atmel platform data | |
3 | * | |
4 | * GPL v2 Only | |
5 | */ | |
6 | ||
3d92e051 PG |
7 | #ifndef __ATMEL_H__ |
8 | #define __ATMEL_H__ | |
bf4289cb JCPV |
9 | |
10 | #include <linux/mtd/nand.h> | |
bcd2360c JCPV |
11 | #include <linux/mtd/partitions.h> |
12 | #include <linux/device.h> | |
13 | #include <linux/i2c.h> | |
14 | #include <linux/leds.h> | |
15 | #include <linux/spi/spi.h> | |
16 | #include <linux/usb/atmel_usba_udc.h> | |
17 | #include <linux/atmel-mci.h> | |
18 | #include <sound/atmel-ac97c.h> | |
19 | #include <linux/serial.h> | |
20 | #include <linux/platform_data/macb.h> | |
21 | ||
2abb74ea JCPV |
22 | /* |
23 | * at91: 6 USARTs and one DBGU port (SAM9260) | |
24 | * avr32: 4 | |
25 | */ | |
26 | #define ATMEL_MAX_UART 7 | |
27 | ||
bcd2360c JCPV |
28 | /* USB Device */ |
29 | struct at91_udc_data { | |
30 | int vbus_pin; /* high == host powering us */ | |
31 | u8 vbus_active_low; /* vbus polarity */ | |
32 | u8 vbus_polled; /* Use polling, not interrupt */ | |
33 | int pullup_pin; /* active == D+ pulled up */ | |
34 | u8 pullup_active_low; /* true == pullup_pin is active low */ | |
35 | }; | |
36 | ||
37 | /* Compact Flash */ | |
38 | struct at91_cf_data { | |
39 | int irq_pin; /* I/O IRQ */ | |
40 | int det_pin; /* Card detect */ | |
41 | int vcc_pin; /* power switching */ | |
42 | int rst_pin; /* card reset */ | |
43 | u8 chipselect; /* EBI Chip Select number */ | |
44 | u8 flags; | |
45 | #define AT91_CF_TRUE_IDE 0x01 | |
46 | #define AT91_IDE_SWAP_A0_A2 0x02 | |
47 | }; | |
48 | ||
bf4289cb JCPV |
49 | /* NAND / SmartMedia */ |
50 | struct atmel_nand_data { | |
51 | int enable_pin; /* chip enable */ | |
52 | int det_pin; /* card detect */ | |
53 | int rdy_pin; /* ready/busy */ | |
54 | u8 rdy_pin_active_low; /* rdy_pin value is inverted */ | |
55 | u8 ale; /* address line number connected to ALE */ | |
56 | u8 cle; /* address line number connected to CLE */ | |
57 | u8 bus_width_16; /* buswidth is 16 bit */ | |
58 | u8 ecc_mode; /* ecc mode */ | |
3dcb7ea1 | 59 | u8 on_flash_bbt; /* bbt on flash */ |
bf4289cb JCPV |
60 | struct mtd_partition *parts; |
61 | unsigned int num_parts; | |
1b719265 | 62 | bool has_dma; /* support dma transfer */ |
71b94e2e JW |
63 | |
64 | /* default is false, only for at32ap7000 chip is true */ | |
65 | bool need_reset_workaround; | |
bf4289cb JCPV |
66 | }; |
67 | ||
bcd2360c JCPV |
68 | /* Serial */ |
69 | struct atmel_uart_data { | |
70 | int num; /* port num */ | |
71 | short use_dma_tx; /* use transmit DMA? */ | |
72 | short use_dma_rx; /* use receive DMA? */ | |
73 | void __iomem *regs; /* virt. base address, if any */ | |
74 | struct serial_rs485 rs485; /* rs485 settings */ | |
75 | }; | |
76 | ||
bcd2360c JCPV |
77 | /* FIXME: this needs a better location, but gets stuff building again */ |
78 | extern int at91_suspend_entering_slow_clock(void); | |
79 | ||
3d92e051 | 80 | #endif /* __ATMEL_H__ */ |