1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright 2010 Wolfram Sang <w.sang@pengutronix.de> 4 */ 5 6 #ifndef __ASM_ARCH_IMX_ESDHC_H 7 #define __ASM_ARCH_IMX_ESDHC_H 8 9 #include <linux/types.h> 10 11 enum wp_types { 12 ESDHC_WP_NONE, /* no WP, neither controller nor gpio */ 13 ESDHC_WP_CONTROLLER, /* mmc controller internal WP */ 14 ESDHC_WP_GPIO, /* external gpio pin for WP */ 15 }; 16 17 enum cd_types { 18 ESDHC_CD_NONE, /* no CD, neither controller nor gpio */ 19 ESDHC_CD_CONTROLLER, /* mmc controller internal CD */ 20 ESDHC_CD_GPIO, /* external gpio pin for CD */ 21 ESDHC_CD_PERMANENT, /* no CD, card permanently wired to host */ 22 }; 23 24 /** 25 * struct esdhc_platform_data - platform data for esdhc on i.MX 26 * 27 * ESDHC_WP(CD)_CONTROLLER type is not available on i.MX25/35. 28 * 29 * @wp_type: type of write_protect method (see wp_types enum above) 30 * @cd_type: type of card_detect method (see cd_types enum above) 31 */ 32 33 struct esdhc_platform_data { 34 enum wp_types wp_type; 35 enum cd_types cd_type; 36 int max_bus_width; 37 unsigned int delay_line; 38 unsigned int tuning_step; /* The delay cell steps in tuning procedure */ 39 unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */ 40 }; 41 #endif /* __ASM_ARCH_IMX_ESDHC_H */