1 /* 2 * Generic GPIO card-detect helper header 3 * 4 * Copyright (C) 2011, Guennadi Liakhovetski <g.liakhovetski@gmx.de> 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 MMC_SLOT_GPIO_H 12 #define MMC_SLOT_GPIO_H 13 14 #include <linux/types.h> 15 #include <linux/irqreturn.h> 16 17 struct mmc_host; 18 19 int mmc_gpio_get_ro(struct mmc_host *host); 20 int mmc_gpio_request_ro(struct mmc_host *host, unsigned int gpio); 21 22 int mmc_gpio_get_cd(struct mmc_host *host); 23 int mmc_gpio_request_cd(struct mmc_host *host, unsigned int gpio, 24 unsigned int debounce); 25 26 int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id, 27 unsigned int idx, bool override_active_level, 28 unsigned int debounce, bool *gpio_invert); 29 int mmc_gpiod_request_ro(struct mmc_host *host, const char *con_id, 30 unsigned int idx, bool override_active_level, 31 unsigned int debounce, bool *gpio_invert); 32 void mmc_gpio_set_cd_isr(struct mmc_host *host, 33 irqreturn_t (*isr)(int irq, void *dev_id)); 34 int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on); 35 void mmc_gpiod_request_cd_irq(struct mmc_host *host); 36 bool mmc_can_gpio_cd(struct mmc_host *host); 37 bool mmc_can_gpio_ro(struct mmc_host *host); 38 39 #endif 40