Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/avr32/mach-at32ap/include/mach/board.h
10820 views
1
/*
2
* Platform data definitions.
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
* 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[];
17
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
}
26
27
#define ATMEL_MAX_UART 4
28
extern struct platform_device *atmel_default_console_device;
29
30
/* Flags for selecting USART extra pins */
31
#define ATMEL_USART_RTS 0x01
32
#define ATMEL_USART_CTS 0x02
33
#define ATMEL_USART_CLK 0x04
34
35
struct atmel_uart_data {
36
int num; /* port num */
37
short use_dma_tx; /* use transmit DMA? */
38
short use_dma_rx; /* use receive DMA? */
39
void __iomem *regs; /* virtual base address, if any */
40
struct serial_rs485 rs485; /* rs485 settings */
41
};
42
void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);
43
struct platform_device *at32_add_device_usart(unsigned int id);
44
45
struct eth_platform_data {
46
u32 phy_mask;
47
u8 is_rmii;
48
};
49
struct platform_device *
50
at32_add_device_eth(unsigned int id, struct eth_platform_data *data);
51
52
struct spi_board_info;
53
struct platform_device *
54
at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);
55
void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n);
56
57
struct atmel_lcdfb_info;
58
struct platform_device *
59
at32_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
63
struct usba_platform_data;
64
struct platform_device *
65
at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
66
67
struct ide_platform_data {
68
u8 cs;
69
};
70
struct platform_device *
71
at32_add_device_ide(unsigned int id, unsigned int extint,
72
struct ide_platform_data *data);
73
74
/* mask says which PWM channels to mux */
75
struct platform_device *at32_add_device_pwm(u32 mask);
76
77
/* depending on what's hooked up, not all SSC pins will be used */
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
88
struct platform_device *
89
at32_add_device_ssc(unsigned int id, unsigned int flags);
90
91
struct i2c_board_info;
92
struct platform_device *at32_add_device_twi(unsigned int id,
93
struct i2c_board_info *b,
94
unsigned int n);
95
96
struct mci_platform_data;
97
struct platform_device *
98
at32_add_device_mci(unsigned int id, struct mci_platform_data *data);
99
100
struct ac97c_platform_data;
101
struct platform_device *
102
at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
103
unsigned int flags);
104
105
struct atmel_abdac_pdata;
106
struct platform_device *
107
at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data);
108
109
struct platform_device *at32_add_device_psif(unsigned int id);
110
111
struct cf_platform_data {
112
int detect_pin;
113
int reset_pin;
114
int vcc_pin;
115
int ready_pin;
116
u8 cs;
117
};
118
struct platform_device *
119
at32_add_device_cf(unsigned int id, unsigned int extint,
120
struct cf_platform_data *data);
121
122
/* NAND / SmartMedia */
123
struct atmel_nand_data {
124
int enable_pin; /* chip enable */
125
int det_pin; /* card detect */
126
int rdy_pin; /* ready/busy */
127
u8 rdy_pin_active_low; /* rdy_pin value is inverted */
128
u8 ale; /* address line number connected to ALE */
129
u8 cle; /* address line number connected to CLE */
130
u8 bus_width_16; /* buswidth is 16 bit */
131
struct mtd_partition *(*partition_info)(int size, int *num_partitions);
132
};
133
struct platform_device *
134
at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
135
136
#endif /* __ASM_ARCH_BOARD_H */
137
138