]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ARM: ep93xx: vision_ep9307: Use MMC CD and RO GPIO
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 8 Aug 2013 10:38:33 +0000 (12:38 +0200)
committerChris Ball <cjb@laptop.org>
Sun, 25 Aug 2013 03:45:26 +0000 (23:45 -0400)
Pass the CD and RO GPIO numbers to the MMC SPI driver and remove the
custom .get_cd() and .get_ro() callback functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
arch/arm/mach-ep93xx/vision_ep9307.c

index 605956fd07a2bdc7e133f07b7e8000b333fd566b..5a4c06d1ad401e4866ca5a1d4a27a819b2382875 100644 (file)
@@ -224,62 +224,15 @@ static struct ep93xx_spi_chip_ops vision_spi_flash_hw = {
 #define VISION_SPI_MMC_WP      EP93XX_GPIO_LINE_F(0)
 #define VISION_SPI_MMC_CD      EP93XX_GPIO_LINE_EGPIO15
 
-static struct gpio vision_spi_mmc_gpios[] = {
-       { VISION_SPI_MMC_WP, GPIOF_DIR_IN, "mmc_spi:wp" },
-       { VISION_SPI_MMC_CD, GPIOF_DIR_IN, "mmc_spi:cd" },
-};
-
-static int vision_spi_mmc_init(struct device *pdev,
-                       irqreturn_t (*func)(int, void *), void *pdata)
-{
-       int err;
-
-       err = gpio_request_array(vision_spi_mmc_gpios,
-                                ARRAY_SIZE(vision_spi_mmc_gpios));
-       if (err)
-               return err;
-
-       err = gpio_set_debounce(VISION_SPI_MMC_CD, 1);
-       if (err)
-               goto exit_err;
-
-       err = request_irq(gpio_to_irq(VISION_SPI_MMC_CD), func,
-                       IRQ_TYPE_EDGE_BOTH, "mmc_spi:cd", pdata);
-       if (err)
-               goto exit_err;
-
-       return 0;
-
-exit_err:
-       gpio_free_array(vision_spi_mmc_gpios, ARRAY_SIZE(vision_spi_mmc_gpios));
-       return err;
-
-}
-
-static void vision_spi_mmc_exit(struct device *pdev, void *pdata)
-{
-       free_irq(gpio_to_irq(VISION_SPI_MMC_CD), pdata);
-       gpio_free_array(vision_spi_mmc_gpios, ARRAY_SIZE(vision_spi_mmc_gpios));
-}
-
-static int vision_spi_mmc_get_ro(struct device *pdev)
-{
-       return !!gpio_get_value(VISION_SPI_MMC_WP);
-}
-
-static int vision_spi_mmc_get_cd(struct device *pdev)
-{
-       return !gpio_get_value(VISION_SPI_MMC_CD);
-}
-
 static struct mmc_spi_platform_data vision_spi_mmc_data = {
-       .init           = vision_spi_mmc_init,
-       .exit           = vision_spi_mmc_exit,
-       .get_ro         = vision_spi_mmc_get_ro,
-       .get_cd         = vision_spi_mmc_get_cd,
        .detect_delay   = 100,
        .powerup_msecs  = 100,
        .ocr_mask       = MMC_VDD_32_33 | MMC_VDD_33_34,
+       .flags          = MMC_SPI_USE_CD_GPIO | MMC_SPI_USE_RO_GPIO,
+       .cd_gpio        = VISION_SPI_MMC_CD,
+       .cd_debounce    = 1,
+       .ro_gpio        = VISION_SPI_MMC_WP,
+       .caps2          = MMC_CAP2_RO_ACTIVE_HIGH,
 };
 
 static int vision_spi_mmc_hw_setup(struct spi_device *spi)