summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/patches-2.6.26/924-gpiommc_2.6.26_fix.patch
blob: 44beff1f5d171652f6ae703392d5e544fef4cdba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- a/drivers/mmc/host/gpiommc.c
+++ b/drivers/mmc/host/gpiommc.c
@@ -8,11 +8,13 @@
  * Licensed under the GNU/GPL. See COPYING for details.
  */
 
-#include <linux/mmc/gpiommc.h>
 #include <linux/platform_device.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
+#include <linux/mmc/gpiommc.h>
+#include <linux/mmc/host.h>
 #include <linux/spi/spi_gpio.h>
+#include <linux/spi/mmc_spi.h>
 #include <linux/configfs.h>
 #include <linux/gpio.h>
 #include <asm/atomic.h>
@@ -25,6 +27,7 @@ struct gpiommc_device {
 	struct platform_device *pdev;
 	struct platform_device *spi_pdev;
 	struct spi_board_info boardinfo;
+	struct mmc_spi_platform_data mmc_spi_data;
 };
 
 
@@ -46,6 +49,7 @@ static int gpiommc_boardinfo_setup(struc
 	bi->max_speed_hz = pdata->max_bus_speed;
 	bi->bus_num = master->bus_num;
 	bi->mode = pdata->mode;
+	bi->platform_data = &d->mmc_spi_data;
 
 	return 0;
 }
@@ -75,6 +79,7 @@ static int gpiommc_probe(struct platform
 	if (!d)
 		goto error;
 	d->pdev = pdev;
+	d->mmc_spi_data.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34;
 
 	/* Create the SPI-GPIO device */
 	d->spi_pdev = platform_device_alloc(SPI_GPIO_PLATDEV_NAME,