1 /* 2 * Copyright 2010 Wolfram Sang <w.sang@pengutronix.de> 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; version 2 7 * of the License. 8 */ 9 10 #ifndef __ASM_ARCH_IMX_ESDHC_H 11 #define __ASM_ARCH_IMX_ESDHC_H 12 13 #include <linux/types.h> 14 15 enum wp_types { 16 ESDHC_WP_NONE, /* no WP, neither controller nor gpio */ 17 ESDHC_WP_CONTROLLER, /* mmc controller internal WP */ 18 ESDHC_WP_GPIO, /* external gpio pin for WP */ 19 }; 20 21 enum cd_types { 22 ESDHC_CD_NONE, /* no CD, neither controller nor gpio */ 23 ESDHC_CD_CONTROLLER, /* mmc controller internal CD */ 24 ESDHC_CD_GPIO, /* external gpio pin for CD */ 25 ESDHC_CD_PERMANENT, /* no CD, card permanently wired to host */ 26 }; 27 28 /** 29 * struct esdhc_platform_data - platform data for esdhc on i.MX 30 * 31 * ESDHC_WP(CD)_CONTROLLER type is not available on i.MX25/35. 32 * 33 * @wp_gpio: gpio for write_protect 34 * @cd_gpio: gpio for card_detect interrupt 35 * @wp_type: type of write_protect method (see wp_types enum above) 36 * @cd_type: type of card_detect method (see cd_types enum above) 37 */ 38 39 struct esdhc_platform_data { 40 unsigned int wp_gpio; 41 unsigned int cd_gpio; 42 enum wp_types wp_type; 43 enum cd_types cd_type; 44 int max_bus_width; 45 unsigned int delay_line; 46 unsigned int tuning_step; /* The delay cell steps in tuning procedure */ 47 unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */ 48 }; 49 #endif /* __ASM_ARCH_IMX_ESDHC_H */ 50