2042c1c4e7
Implement functions for adding platform devices for TWI, MCI, AC97C and ABDAC. They may need to be modified to cope with platform data, etc. when the corresponding drivers are ready to be merged, but such changes are much less likely to conflict than adding support for a whole new type of device. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
74 lines
2.1 KiB
C
74 lines
2.1 KiB
C
/*
|
|
* Platform data definitions.
|
|
*/
|
|
#ifndef __ASM_ARCH_BOARD_H
|
|
#define __ASM_ARCH_BOARD_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define GPIO_PIN_NONE (-1)
|
|
|
|
/* Add basic devices: system manager, interrupt controller, portmuxes, etc. */
|
|
void at32_add_system_devices(void);
|
|
|
|
#define ATMEL_MAX_UART 4
|
|
extern struct platform_device *atmel_default_console_device;
|
|
|
|
struct atmel_uart_data {
|
|
short use_dma_tx; /* use transmit DMA? */
|
|
short use_dma_rx; /* use receive DMA? */
|
|
void __iomem *regs; /* virtual base address, if any */
|
|
};
|
|
void at32_map_usart(unsigned int hw_id, unsigned int line);
|
|
struct platform_device *at32_add_device_usart(unsigned int id);
|
|
|
|
struct eth_platform_data {
|
|
u32 phy_mask;
|
|
u8 is_rmii;
|
|
};
|
|
struct platform_device *
|
|
at32_add_device_eth(unsigned int id, struct eth_platform_data *data);
|
|
|
|
struct spi_board_info;
|
|
struct platform_device *
|
|
at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);
|
|
|
|
struct atmel_lcdfb_info;
|
|
struct platform_device *
|
|
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
|
|
unsigned long fbmem_start, unsigned long fbmem_len);
|
|
|
|
struct usba_platform_data {
|
|
int vbus_pin;
|
|
};
|
|
struct platform_device *
|
|
at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
|
|
|
|
struct ide_platform_data {
|
|
u8 cs;
|
|
};
|
|
struct platform_device *
|
|
at32_add_device_ide(unsigned int id, unsigned int extint,
|
|
struct ide_platform_data *data);
|
|
|
|
/* depending on what's hooked up, not all SSC pins will be used */
|
|
#define ATMEL_SSC_TK 0x01
|
|
#define ATMEL_SSC_TF 0x02
|
|
#define ATMEL_SSC_TD 0x04
|
|
#define ATMEL_SSC_TX (ATMEL_SSC_TK | ATMEL_SSC_TF | ATMEL_SSC_TD)
|
|
|
|
#define ATMEL_SSC_RK 0x10
|
|
#define ATMEL_SSC_RF 0x20
|
|
#define ATMEL_SSC_RD 0x40
|
|
#define ATMEL_SSC_RX (ATMEL_SSC_RK | ATMEL_SSC_RF | ATMEL_SSC_RD)
|
|
|
|
struct platform_device *
|
|
at32_add_device_ssc(unsigned int id, unsigned int flags);
|
|
|
|
struct platform_device *at32_add_device_twi(unsigned int id);
|
|
struct platform_device *at32_add_device_mci(unsigned int id);
|
|
struct platform_device *at32_add_device_ac97c(unsigned int id);
|
|
struct platform_device *at32_add_device_abdac(unsigned int id);
|
|
|
|
#endif /* __ASM_ARCH_BOARD_H */
|