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