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