1
2
3
4#ifndef __ASM_ARCH_BOARD_H
5#define __ASM_ARCH_BOARD_H
6
7#include <linux/types.h>
8#include <linux/serial.h>
9
10#define GPIO_PIN_NONE (-1)
11
12
13
14
15
16extern unsigned long at32_board_osc_rates[];
17
18
19
20
21
22static inline void __deprecated at32_add_system_devices(void)
23{
24
25}
26
27#define ATMEL_MAX_UART 4
28extern struct platform_device *atmel_default_console_device;
29
30
31#define ATMEL_USART_RTS 0x01
32#define ATMEL_USART_CTS 0x02
33#define ATMEL_USART_CLK 0x04
34
35struct atmel_uart_data {
36 int num;
37 short use_dma_tx;
38 short use_dma_rx;
39 void __iomem *regs;
40 struct serial_rs485 rs485;
41};
42void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);
43struct platform_device *at32_add_device_usart(unsigned int id);
44
45struct eth_platform_data {
46 u32 phy_mask;
47 u8 is_rmii;
48};
49struct platform_device *
50at32_add_device_eth(unsigned int id, struct eth_platform_data *data);
51
52struct spi_board_info;
53struct platform_device *
54at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);
55void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n);
56
57struct atmel_lcdfb_info;
58struct platform_device *
59at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
60 unsigned long fbmem_start, unsigned long fbmem_len,
61 u64 pin_mask);
62
63struct usba_platform_data;
64struct platform_device *
65at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
66
67struct ide_platform_data {
68 u8 cs;
69};
70struct platform_device *
71at32_add_device_ide(unsigned int id, unsigned int extint,
72 struct ide_platform_data *data);
73
74
75struct platform_device *at32_add_device_pwm(u32 mask);
76
77
78#define ATMEL_SSC_TK 0x01
79#define ATMEL_SSC_TF 0x02
80#define ATMEL_SSC_TD 0x04
81#define ATMEL_SSC_TX (ATMEL_SSC_TK | ATMEL_SSC_TF | ATMEL_SSC_TD)
82
83#define ATMEL_SSC_RK 0x10
84#define ATMEL_SSC_RF 0x20
85#define ATMEL_SSC_RD 0x40
86#define ATMEL_SSC_RX (ATMEL_SSC_RK | ATMEL_SSC_RF | ATMEL_SSC_RD)
87
88struct platform_device *
89at32_add_device_ssc(unsigned int id, unsigned int flags);
90
91struct i2c_board_info;
92struct platform_device *at32_add_device_twi(unsigned int id,
93 struct i2c_board_info *b,
94 unsigned int n);
95
96struct mci_platform_data;
97struct platform_device *
98at32_add_device_mci(unsigned int id, struct mci_platform_data *data);
99
100struct ac97c_platform_data;
101struct platform_device *
102at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
103 unsigned int flags);
104
105struct atmel_abdac_pdata;
106struct platform_device *
107at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data);
108
109struct platform_device *at32_add_device_psif(unsigned int id);
110
111struct cf_platform_data {
112 int detect_pin;
113 int reset_pin;
114 int vcc_pin;
115 int ready_pin;
116 u8 cs;
117};
118struct platform_device *
119at32_add_device_cf(unsigned int id, unsigned int extint,
120 struct cf_platform_data *data);
121
122
123struct atmel_nand_data {
124 int enable_pin;
125 int det_pin;
126 int rdy_pin;
127 u8 rdy_pin_active_low;
128 u8 ale;
129 u8 cle;
130 u8 bus_width_16;
131 struct mtd_partition *parts;
132 unsigned int num_parts;
133};
134struct platform_device *
135at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
136
137#endif
138