These two patches introduce several call backs, in order to share sdhci-pxa. patch 1: move sdhci_priv and sdhci_ops definition to include/linux/mmc/sdhci.h from drivers/mmc/host/sdhci.h 1. platfrom could directly overwrite sdhci_ops with soc specific ops, this case occurs at different controller share the same driver, while different ops they may use, so move sdhci_ops definition to include 2. platform code will use sdhci_priv to access host->private Patch 2: Introduce several call backs. pxa955 may require external gpio to detect card insert and remove. soc_set_ops is used to overwrite host ops directly from platfrom ops. example in board.c static unsigned int mmc0_get_ro(struct sdhci_host *host) { return 0; } static void mmc0_generate_init_clocks_mmp2(struct sdhci_host *host, u8 power_mode) { struct sdhci_pxa *pxa = sdhci_priv(host); i /* do something */ } static void mmc0_set_ops(struct sdhci_pxa *pxa) { pxa->ops->get_ro = mmc0_get_ro; pxa->ops->platform_send_init_74_clocks = mmp2_send_init_74_clocks; } static struct sdhci_pxa_platdata mmp2_sdh_platdata_mmc0 = { .soc_set_ops = mmc0_set_ops, .clk_delay_cycles = 0xf, .soc_set_timing = mmp2_init_sdh, }; -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html