linux/include/linux/atmel-mci.h
<<
>>
Prefs
   1#ifndef __LINUX_ATMEL_MCI_H
   2#define __LINUX_ATMEL_MCI_H
   3
   4#include <linux/types.h>
   5#include <linux/dmaengine.h>
   6
   7#define ATMCI_MAX_NR_SLOTS      2
   8
   9/**
  10 * struct mci_slot_pdata - board-specific per-slot configuration
  11 * @bus_width: Number of data lines wired up the slot
  12 * @detect_pin: GPIO pin wired to the card detect switch
  13 * @wp_pin: GPIO pin wired to the write protect sensor
  14 * @detect_is_active_high: The state of the detect pin when it is active
  15 * @non_removable: The slot is not removable, only detect once
  16 *
  17 * If a given slot is not present on the board, @bus_width should be
  18 * set to 0. The other fields are ignored in this case.
  19 *
  20 * Any pins that aren't available should be set to a negative value.
  21 *
  22 * Note that support for multiple slots is experimental -- some cards
  23 * might get upset if we don't get the clock management exactly right.
  24 * But in most cases, it should work just fine.
  25 */
  26struct mci_slot_pdata {
  27        unsigned int            bus_width;
  28        int                     detect_pin;
  29        int                     wp_pin;
  30        bool                    detect_is_active_high;
  31        bool                    non_removable;
  32};
  33
  34/**
  35 * struct mci_platform_data - board-specific MMC/SDcard configuration
  36 * @dma_slave: DMA slave interface to use in data transfers.
  37 * @slot: Per-slot configuration data.
  38 */
  39struct mci_platform_data {
  40        void                    *dma_slave;
  41        dma_filter_fn           dma_filter;
  42        struct mci_slot_pdata   slot[ATMCI_MAX_NR_SLOTS];
  43};
  44
  45#endif /* __LINUX_ATMEL_MCI_H */
  46