From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Frysinger Date: Tue, 20 Dec 2011 12:31:08 -0500 Subject: [U-Boot] [PATCH v3 0/4] mmc: Implement central card-detection. In-Reply-To: <1324371163-12096-1-git-send-email-thierry.reding@avionic-design.de> References: <1324371163-12096-1-git-send-email-thierry.reding@avionic-design.de> Message-ID: <201112201231.10509.vapier@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tuesday 20 December 2011 03:52:39 Thierry Reding wrote: > This series of patches implements central card-detection within the MMC > framework. Before this patch series, many boards actually did implement > the board_mmc_getcd() function, but it wasn't used except by one driver > (fsl_esdhc). Unfortunately, implementations interpreted the meaning of > the cd parameter differently, some taking it to signal card absence and > others using it to detect card presence. Furthermore, the signature of > the board_mmc_getcd() function was not at all consistent with other MMC > related functions. as you've seen, GPIO pin detection is not novel or unique to any driver/SoC. i'd suggest instead finding a way to move this into "struct mmc". perhaps something like: include/mmc.h: struct mmc { ... #ifdef CONFIG_MMC_GPIO_CD unsigned gpio_cd; #endif ... }; and then the default mmc_register() func can do: #ifdef CONFIG_MMC_GPIO_CD if (!mmc->getcd) mmc->getcd = mmc_getcd_gpio; #endif and we can have the drivers/mmc/mmc.c: #ifdef CONFIG_MMC_GPIO_CD int mmc_getcd_gpio(struct mmc *mmc) { return !gpio_get_value(mmc->getcd); } #endif then mmc drivers can extend their register function to take a GPIO number (if they don't already). and then they get everything else for free. -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: