Path: blob/master/arch/avr32/mach-at32ap/include/mach/board.h
10820 views
/*1* Platform data definitions.2*/3#ifndef __ASM_ARCH_BOARD_H4#define __ASM_ARCH_BOARD_H56#include <linux/types.h>7#include <linux/serial.h>89#define GPIO_PIN_NONE (-1)1011/*12* Clock rates for various on-board oscillators. The number of entries13* in this array is chip-dependent.14*/15extern unsigned long at32_board_osc_rates[];1617/*18* This used to add essential system devices, but this is now done19* automatically. Please don't use it in new board code.20*/21static inline void __deprecated at32_add_system_devices(void)22{2324}2526#define ATMEL_MAX_UART 427extern struct platform_device *atmel_default_console_device;2829/* Flags for selecting USART extra pins */30#define ATMEL_USART_RTS 0x0131#define ATMEL_USART_CTS 0x0232#define ATMEL_USART_CLK 0x043334struct atmel_uart_data {35int num; /* port num */36short use_dma_tx; /* use transmit DMA? */37short use_dma_rx; /* use receive DMA? */38void __iomem *regs; /* virtual base address, if any */39struct serial_rs485 rs485; /* rs485 settings */40};41void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);42struct platform_device *at32_add_device_usart(unsigned int id);4344struct eth_platform_data {45u32 phy_mask;46u8 is_rmii;47};48struct platform_device *49at32_add_device_eth(unsigned int id, struct eth_platform_data *data);5051struct spi_board_info;52struct platform_device *53at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);54void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n);5556struct atmel_lcdfb_info;57struct platform_device *58at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,59unsigned long fbmem_start, unsigned long fbmem_len,60u64 pin_mask);6162struct usba_platform_data;63struct platform_device *64at32_add_device_usba(unsigned int id, struct usba_platform_data *data);6566struct ide_platform_data {67u8 cs;68};69struct platform_device *70at32_add_device_ide(unsigned int id, unsigned int extint,71struct ide_platform_data *data);7273/* mask says which PWM channels to mux */74struct platform_device *at32_add_device_pwm(u32 mask);7576/* depending on what's hooked up, not all SSC pins will be used */77#define ATMEL_SSC_TK 0x0178#define ATMEL_SSC_TF 0x0279#define ATMEL_SSC_TD 0x0480#define ATMEL_SSC_TX (ATMEL_SSC_TK | ATMEL_SSC_TF | ATMEL_SSC_TD)8182#define ATMEL_SSC_RK 0x1083#define ATMEL_SSC_RF 0x2084#define ATMEL_SSC_RD 0x4085#define ATMEL_SSC_RX (ATMEL_SSC_RK | ATMEL_SSC_RF | ATMEL_SSC_RD)8687struct platform_device *88at32_add_device_ssc(unsigned int id, unsigned int flags);8990struct i2c_board_info;91struct platform_device *at32_add_device_twi(unsigned int id,92struct i2c_board_info *b,93unsigned int n);9495struct mci_platform_data;96struct platform_device *97at32_add_device_mci(unsigned int id, struct mci_platform_data *data);9899struct ac97c_platform_data;100struct platform_device *101at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,102unsigned int flags);103104struct atmel_abdac_pdata;105struct platform_device *106at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data);107108struct platform_device *at32_add_device_psif(unsigned int id);109110struct cf_platform_data {111int detect_pin;112int reset_pin;113int vcc_pin;114int ready_pin;115u8 cs;116};117struct platform_device *118at32_add_device_cf(unsigned int id, unsigned int extint,119struct cf_platform_data *data);120121/* NAND / SmartMedia */122struct atmel_nand_data {123int enable_pin; /* chip enable */124int det_pin; /* card detect */125int rdy_pin; /* ready/busy */126u8 rdy_pin_active_low; /* rdy_pin value is inverted */127u8 ale; /* address line number connected to ALE */128u8 cle; /* address line number connected to CLE */129u8 bus_width_16; /* buswidth is 16 bit */130struct mtd_partition *(*partition_info)(int size, int *num_partitions);131};132struct platform_device *133at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);134135#endif /* __ASM_ARCH_BOARD_H */136137138