1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * include/linux/amba/mmci.h 4 */ 5 #ifndef AMBA_MMCI_H 6 #define AMBA_MMCI_H 7 8 #include <linux/mmc/host.h> 9 10 /** 11 * struct mmci_platform_data - platform configuration for the MMCI 12 * (also known as PL180) block. 13 * @ocr_mask: available voltages on the 4 pins from the block, this 14 * is ignored if a regulator is used, see the MMC_VDD_* masks in 15 * mmc/host.h 16 * @ios_handler: a callback function to act on specfic ios changes, 17 * used for example to control a levelshifter 18 * mask into a value to be binary (or set some other custom bits 19 * in MMCIPWR) or:ed and written into the MMCIPWR register of the 20 * block. May also control external power based on the power_mode. 21 * @status: if no GPIO read function was given to the block in 22 * gpio_wp (below) this function will be called to determine 23 * whether a card is present in the MMC slot or not 24 * @gpio_wp: read this GPIO pin to see if the card is write protected 25 * @gpio_cd: read this GPIO pin to detect card insertion 26 * @cd_invert: true if the gpio_cd pin value is active low 27 */ 28 struct mmci_platform_data { 29 unsigned int ocr_mask; 30 int (*ios_handler)(struct device *, struct mmc_ios *); 31 unsigned int (*status)(struct device *); 32 int gpio_wp; 33 int gpio_cd; 34 bool cd_invert; 35 }; 36 37 #endif 38