linux/arch/avr32/mach-at32ap/include/mach/board.h
<<
>>
Prefs
   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 */
  16extern 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 */
  22static inline void __deprecated at32_add_system_devices(void)
  23{
  24
  25}
  26
  27#define ATMEL_MAX_UART  4
  28extern 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
  35struct 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};
  42void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);
  43struct platform_device *at32_add_device_usart(unsigned int id);
  44
  45struct eth_platform_data {
  46        u32     phy_mask;
  47        u8      is_rmii;
  48};
  49struct platform_device *
  50at32_add_device_eth(unsigned int id, struct eth_platform_data *data);
  51
  52struct spi_board_info;
  53struct platform_device *
  54at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);
  55void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n);
  56
  57struct atmel_lcdfb_info;
  58struct platform_device *
  59at32_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
  63struct usba_platform_data;
  64struct platform_device *
  65at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
  66
  67struct ide_platform_data {
  68        u8      cs;
  69};
  70struct platform_device *
  71at32_add_device_ide(unsigned int id, unsigned int extint,
  72                    struct ide_platform_data *data);
  73
  74/* mask says which PWM channels to mux */
  75struct 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
  88struct platform_device *
  89at32_add_device_ssc(unsigned int id, unsigned int flags);
  90
  91struct i2c_board_info;
  92struct platform_device *at32_add_device_twi(unsigned int id,
  93                                            struct i2c_board_info *b,
  94                                            unsigned int n);
  95
  96struct mci_platform_data;
  97struct platform_device *
  98at32_add_device_mci(unsigned int id, struct mci_platform_data *data);
  99
 100struct ac97c_platform_data;
 101struct platform_device *
 102at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
 103                      unsigned int flags);
 104
 105struct atmel_abdac_pdata;
 106struct platform_device *
 107at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data);
 108
 109struct platform_device *at32_add_device_psif(unsigned int id);
 110
 111struct cf_platform_data {
 112        int     detect_pin;
 113        int     reset_pin;
 114        int     vcc_pin;
 115        int     ready_pin;
 116        u8      cs;
 117};
 118struct platform_device *
 119at32_add_device_cf(unsigned int id, unsigned int extint,
 120                struct cf_platform_data *data);
 121
 122/* NAND / SmartMedia */
 123struct 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 *parts;
 132        unsigned int    num_parts;
 133};
 134struct platform_device *
 135at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
 136
 137#endif /* __ASM_ARCH_BOARD_H */
 138
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.