|
@@ -263,8 +263,19 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,
|
|
|
static int twl_mmc23_set_power(struct device *dev, int slot, int power_on, int vdd)
|
|
|
{
|
|
|
int ret = 0;
|
|
|
- struct twl_mmc_controller *c = &hsmmc[1];
|
|
|
+ struct twl_mmc_controller *c = NULL;
|
|
|
struct omap_mmc_platform_data *mmc = dev->platform_data;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ for (i = 1; i < ARRAY_SIZE(hsmmc); i++) {
|
|
|
+ if (mmc == hsmmc[i].mmc) {
|
|
|
+ c = &hsmmc[i];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (c == NULL)
|
|
|
+ return -ENODEV;
|
|
|
|
|
|
/* If we don't see a Vcc regulator, assume it's a fixed
|
|
|
* voltage always-on regulator.
|