blob: 1706b3597ce00c10776d8c8fbf8e0c6067afcb6a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef ASMARM_ARCH_MMC_H
2#define ASMARM_ARCH_MMC_H
3
Pierre Ossmanf74d1322007-02-09 22:49:31 +01004#include <linux/mmc/host.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#include <linux/interrupt.h>
6
7struct device;
8struct mmc_host;
9
10struct pxamci_platform_data {
11 unsigned int ocr_mask; /* available voltages */
Eric Miaof97cab22010-04-14 07:00:42 +080012 unsigned long detect_delay_ms; /* delay in millisecond before detecting cards after interrupt */
David Howells40220c12006-10-09 12:19:47 +010013 int (*init)(struct device *, irq_handler_t , void *);
Richard Purdiee6195242005-09-06 15:18:56 -070014 int (*get_ro)(struct device *);
Arnd Bergmanna829abf2013-07-05 17:51:20 +020015 int (*setpower)(struct device *, unsigned int);
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 void (*exit)(struct device *, void *);
Robert Jarzmikb405db62009-06-23 23:21:03 +020017 int gpio_card_detect; /* gpio detecting card insertion */
18 int gpio_card_ro; /* gpio detecting read only toggle */
19 bool gpio_card_ro_invert; /* gpio ro is inverted */
20 int gpio_power; /* gpio powering up MMC bus */
21 bool gpio_power_invert; /* gpio power is inverted */
Linus Torvalds1da177e2005-04-16 15:20:36 -070022};
23
24extern void pxa_set_mci_info(struct pxamci_platform_data *info);
Bridge Wu8d33b052007-12-21 19:15:36 +080025extern void pxa3xx_set_mci2_info(struct pxamci_platform_data *info);
Bridge Wu5a1f21b2007-12-21 19:27:08 +080026extern void pxa3xx_set_mci3_info(struct pxamci_platform_data *info);
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
28#endif