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