]>
Commit | Line | Data |
---|---|---|
964d219b HS |
1 | /* |
2 | * Platform data definitions. | |
3 | */ | |
4 | #ifndef __ASM_ARCH_BOARD_H | |
5 | #define __ASM_ARCH_BOARD_H | |
6 | ||
7 | #include <linux/types.h> | |
f7512e7c | 8 | #include <linux/serial.h> |
964d219b HS |
9 | |
10 | #define GPIO_PIN_NONE (-1) | |
11 | ||
12 | /* | |
13 | * Clock rates for various on-board oscillators. The number of entries | |
14 | * in this array is chip-dependent. | |
15 | */ | |
16 | extern unsigned long at32_board_osc_rates[]; | |
6b0c9351 | 17 | |
e82c6106 HS |
18 | /* |
19 | * This used to add essential system devices, but this is now done | |
20 | * automatically. Please don't use it in new board code. | |
21 | */ | |
22 | static inline void __deprecated at32_add_system_devices(void) | |
23 | { | |
24 | ||
25 | } | |
964d219b HS |
26 | |
27 | #define ATMEL_MAX_UART 4 | |
28 | extern struct platform_device *atmel_default_console_device; | |
29 | ||
bf4861cf PM |
30 | /* Flags for selecting USART extra pins */ |
31 | #define ATMEL_USART_RTS 0x01 | |
32 | #define ATMEL_USART_CTS 0x02 | |
c076b993 | 33 | #define ATMEL_USART_CLK 0x04 |
bf4861cf | 34 | |
964d219b HS |
35 | struct atmel_uart_data { |
36 | short use_dma_tx; /* use transmit DMA? */ | |
37 | short use_dma_rx; /* use receive DMA? */ | |
38 | void __iomem *regs; /* virtual base address, if any */ | |
f7512e7c | 39 | struct serial_rs485 rs485; /* rs485 settings */ |
964d219b | 40 | }; |
bf4861cf | 41 | void at32_map_usart(unsigned int hw_id, unsigned int line, int flags); |
964d219b HS |
42 | struct platform_device *at32_add_device_usart(unsigned int id); |
43 | ||
44 | struct eth_platform_data { | |
45 | u32 phy_mask; | |
46 | u8 is_rmii; | |
47 | }; | |
48 | struct platform_device * | |
49 | at32_add_device_eth(unsigned int id, struct eth_platform_data *data); | |
50 | ||
51 | struct spi_board_info; | |
52 | struct platform_device * | |
53 | at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n); | |
07084203 | 54 | void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n); |
964d219b HS |
55 | |
56 | struct atmel_lcdfb_info; | |
57 | struct platform_device * | |
58 | at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data, | |
59 | unsigned long fbmem_start, unsigned long fbmem_len, | |
70664124 | 60 | u64 pin_mask); |
964d219b HS |
61 | |
62 | struct usba_platform_data; | |
63 | struct platform_device * | |
64 | at32_add_device_usba(unsigned int id, struct usba_platform_data *data); | |
65 | ||
66 | struct ide_platform_data { | |
67 | u8 cs; | |
68 | }; | |
69 | struct platform_device * | |
70 | at32_add_device_ide(unsigned int id, unsigned int extint, | |
71 | struct ide_platform_data *data); | |
72 | ||
73 | /* mask says which PWM channels to mux */ | |
74 | struct platform_device *at32_add_device_pwm(u32 mask); | |
75 | ||
76 | /* depending on what's hooked up, not all SSC pins will be used */ | |
77 | #define ATMEL_SSC_TK 0x01 | |
78 | #define ATMEL_SSC_TF 0x02 | |
79 | #define ATMEL_SSC_TD 0x04 | |
80 | #define ATMEL_SSC_TX (ATMEL_SSC_TK | ATMEL_SSC_TF | ATMEL_SSC_TD) | |
81 | ||
82 | #define ATMEL_SSC_RK 0x10 | |
83 | #define ATMEL_SSC_RF 0x20 | |
84 | #define ATMEL_SSC_RD 0x40 | |
85 | #define ATMEL_SSC_RX (ATMEL_SSC_RK | ATMEL_SSC_RF | ATMEL_SSC_RD) | |
86 | ||
87 | struct platform_device * | |
88 | at32_add_device_ssc(unsigned int id, unsigned int flags); | |
89 | ||
90 | struct i2c_board_info; | |
91 | struct platform_device *at32_add_device_twi(unsigned int id, | |
92 | struct i2c_board_info *b, | |
93 | unsigned int n); | |
94 | ||
95 | struct mci_platform_data; | |
96 | struct platform_device * | |
97 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data); | |
98 | ||
2f47c8c5 | 99 | struct ac97c_platform_data; |
964d219b | 100 | struct platform_device * |
2f47c8c5 HCE |
101 | at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data, |
102 | unsigned int flags); | |
964d219b | 103 | |
6b0c9351 HCE |
104 | struct atmel_abdac_pdata; |
105 | struct platform_device * | |
106 | at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data); | |
107 | ||
964d219b HS |
108 | struct platform_device *at32_add_device_psif(unsigned int id); |
109 | ||
110 | struct cf_platform_data { | |
111 | int detect_pin; | |
112 | int reset_pin; | |
113 | int vcc_pin; | |
114 | int ready_pin; | |
115 | u8 cs; | |
116 | }; | |
117 | struct platform_device * | |
118 | at32_add_device_cf(unsigned int id, unsigned int extint, | |
119 | struct cf_platform_data *data); | |
120 | ||
121 | /* NAND / SmartMedia */ | |
122 | struct atmel_nand_data { | |
123 | int enable_pin; /* chip enable */ | |
124 | int det_pin; /* card detect */ | |
125 | int rdy_pin; /* ready/busy */ | |
744f6592 | 126 | u8 rdy_pin_active_low; /* rdy_pin value is inverted */ |
964d219b HS |
127 | u8 ale; /* address line number connected to ALE */ |
128 | u8 cle; /* address line number connected to CLE */ | |
129 | u8 bus_width_16; /* buswidth is 16 bit */ | |
130 | struct mtd_partition *(*partition_info)(int size, int *num_partitions); | |
131 | }; | |
132 | struct platform_device * | |
133 | at32_add_device_nand(unsigned int id, struct atmel_nand_data *data); | |
134 | ||
135 | #endif /* __ASM_ARCH_BOARD_H */ |