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#include <linux/platform_data/macb.h>
  10
  11#define GPIO_PIN_NONE   (-1)
  12
  13/*
  14 * Clock rates for various on-board oscillators. The number of entries
  15 * in this array is chip-dependent.
  16 */
  17extern unsigned long at32_board_osc_rates[];
  18
  19/*
  20 * This used to add essential system devices, but this is now done
  21 * automatically. Please don't use it in new board code.
  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/* Flags for selecting USART extra pins */
  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;            /* port num */
  38        short           use_dma_tx;     /* use transmit DMA? */
  39        short           use_dma_rx;     /* use receive DMA? */
  40        void __iomem    *regs;          /* virtual base address, if any */
  41        struct serial_rs485     rs485;          /* rs485 settings */
  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/* mask says which PWM channels to mux */
  72struct platform_device *at32_add_device_pwm(u32 mask);
  73
  74/* depending on what's hooked up, not all SSC pins will be used */
  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/* NAND / SmartMedia */
 120struct atmel_nand_data {
 121        int     enable_pin;     /* chip enable */
 122        int     det_pin;        /* card detect */
 123        int     rdy_pin;        /* ready/busy */
 124        u8      rdy_pin_active_low;     /* rdy_pin value is inverted */
 125        u8      ale;            /* address line number connected to ALE */
 126        u8      cle;            /* address line number connected to CLE */
 127        u8      bus_width_16;   /* buswidth is 16 bit */
 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 /* __ASM_ARCH_BOARD_H */
 135