1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Generic GPIO card-detect helper header 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2011, Guennadi Liakhovetski <g.liakhovetski@gmx.de> 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifndef MMC_SLOT_GPIO_H 9*4882a593Smuzhiyun #define MMC_SLOT_GPIO_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <linux/types.h> 12*4882a593Smuzhiyun #include <linux/irqreturn.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun struct mmc_host; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun int mmc_gpio_get_ro(struct mmc_host *host); 17*4882a593Smuzhiyun int mmc_gpio_get_cd(struct mmc_host *host); 18*4882a593Smuzhiyun int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id, 19*4882a593Smuzhiyun unsigned int idx, bool override_active_level, 20*4882a593Smuzhiyun unsigned int debounce); 21*4882a593Smuzhiyun int mmc_gpiod_request_ro(struct mmc_host *host, const char *con_id, 22*4882a593Smuzhiyun unsigned int idx, unsigned int debounce); 23*4882a593Smuzhiyun void mmc_gpio_set_cd_isr(struct mmc_host *host, 24*4882a593Smuzhiyun irqreturn_t (*isr)(int irq, void *dev_id)); 25*4882a593Smuzhiyun int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on); 26*4882a593Smuzhiyun void mmc_gpiod_request_cd_irq(struct mmc_host *host); 27*4882a593Smuzhiyun bool mmc_can_gpio_cd(struct mmc_host *host); 28*4882a593Smuzhiyun bool mmc_can_gpio_ro(struct mmc_host *host); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif 31