home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / plat-omap / include / mach / mmc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.9 KB  |  75 lines

  1. /*
  2.  * MMC definitions for OMAP2
  3.  *
  4.  * Copyright (C) 2006 Nokia Corporation
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License version 2 as
  8.  * published by the Free Software Foundation.
  9.  */
  10.  
  11. #ifndef __OMAP2_MMC_H
  12. #define __OMAP2_MMC_H
  13.  
  14. #include <linux/types.h>
  15. #include <linux/device.h>
  16. #include <linux/mmc/host.h>
  17.  
  18. #include <mach/board.h>
  19.  
  20. #define OMAP_MMC_MAX_SLOTS    2
  21.  
  22. struct omap_mmc_platform_data {
  23.     struct omap_mmc_conf    conf;
  24.  
  25.     /* number of slots on board */
  26.     unsigned nr_slots:2;
  27.  
  28.     /* set if your board has components or wiring that limits the
  29.      * maximum frequency on the MMC bus */
  30.     unsigned int max_freq;
  31.  
  32.     /* switch the bus to a new slot */
  33.     int (* switch_slot)(struct device *dev, int slot);
  34.     /* initialize board-specific MMC functionality, can be NULL if
  35.      * not supported */
  36.     int (* init)(struct device *dev);
  37.     void (* cleanup)(struct device *dev);
  38.     void (* shutdown)(struct device *dev);
  39.  
  40.     /* To handle board related suspend/resume functionality for MMC */
  41.     int (*suspend)(struct device *dev, int slot);
  42.     int (*resume)(struct device *dev, int slot);
  43.  
  44.     struct omap_mmc_slot_data {
  45.         int (* set_bus_mode)(struct device *dev, int slot, int bus_mode);
  46.         int (* set_power)(struct device *dev, int slot, int power_on, int vdd);
  47.         int (* get_ro)(struct device *dev, int slot);
  48.  
  49.         /* return MMC cover switch state, can be NULL if not supported.
  50.          *
  51.          * possible return values:
  52.          *   0 - open
  53.          *   1 - closed
  54.          */
  55.         int (* get_cover_state)(struct device *dev, int slot);
  56.  
  57.         const char *name;
  58.         u32 ocr_mask;
  59.  
  60.         /* Card detection IRQs */
  61.         int card_detect_irq;
  62.         int (* card_detect)(int irq);
  63.  
  64.         unsigned int ban_openended:1;
  65.  
  66.     } slots[OMAP_MMC_MAX_SLOTS];
  67. };
  68.  
  69. extern void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info);
  70.  
  71. /* called from board-specific card detection service routine */
  72. extern void omap_mmc_notify_cover_event(struct device *dev, int slot, int is_closed);
  73.  
  74. #endif
  75.