IGEPv2: Added WIFI support
Enabled VMMC2 LDO voltage regulator on TWL4030. Added GPIO's (power down and reset) for WIFI chip. Signed-off-by: Anders Hedlund <anders.j.hedlund@gmail.com> Signed-off-by: Jonas Zetterberg <jozz@jozz.se> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
cd2b90d9f7
commit
c67b0d9870
|
@ -42,6 +42,8 @@
|
||||||
#define IGEP2_GPIO_LED0_GREEN 27
|
#define IGEP2_GPIO_LED0_GREEN 27
|
||||||
#define IGEP2_GPIO_LED1_RED 28
|
#define IGEP2_GPIO_LED1_RED 28
|
||||||
#define IGEP2_GPIO_DVI_PUP 170
|
#define IGEP2_GPIO_DVI_PUP 170
|
||||||
|
#define IGEP2_GPIO_WIFI_NPD 94
|
||||||
|
#define IGEP2_GPIO_WIFI_NRESET 95
|
||||||
|
|
||||||
#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
|
#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
|
||||||
defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
|
defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
|
||||||
|
@ -209,6 +211,10 @@ static struct regulator_consumer_supply igep2_vmmc1_supply = {
|
||||||
.supply = "vmmc",
|
.supply = "vmmc",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct regulator_consumer_supply igep2_vmmc2_supply = {
|
||||||
|
.supply = "vmmc",
|
||||||
|
};
|
||||||
|
|
||||||
/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
|
/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
|
||||||
static struct regulator_init_data igep2_vmmc1 = {
|
static struct regulator_init_data igep2_vmmc1 = {
|
||||||
.constraints = {
|
.constraints = {
|
||||||
|
@ -224,6 +230,21 @@ static struct regulator_init_data igep2_vmmc1 = {
|
||||||
.consumer_supplies = &igep2_vmmc1_supply,
|
.consumer_supplies = &igep2_vmmc1_supply,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* VMMC2 for OMAP VDD_MMC2 (i/o) and MMC2 WIFI */
|
||||||
|
static struct regulator_init_data igep2_vmmc2 = {
|
||||||
|
.constraints = {
|
||||||
|
.min_uV = 1850000,
|
||||||
|
.max_uV = 3150000,
|
||||||
|
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||||
|
| REGULATOR_MODE_STANDBY,
|
||||||
|
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||||
|
| REGULATOR_CHANGE_MODE
|
||||||
|
| REGULATOR_CHANGE_STATUS,
|
||||||
|
},
|
||||||
|
.num_consumer_supplies = 1,
|
||||||
|
.consumer_supplies = &igep2_vmmc2_supply,
|
||||||
|
};
|
||||||
|
|
||||||
static struct omap2_hsmmc_info mmc[] = {
|
static struct omap2_hsmmc_info mmc[] = {
|
||||||
{
|
{
|
||||||
.mmc = 1,
|
.mmc = 1,
|
||||||
|
@ -251,6 +272,7 @@ static int igep2_twl_gpio_setup(struct device *dev,
|
||||||
* regulators will be set up only *after* we return.
|
* regulators will be set up only *after* we return.
|
||||||
*/
|
*/
|
||||||
igep2_vmmc1_supply.dev = mmc[0].dev;
|
igep2_vmmc1_supply.dev = mmc[0].dev;
|
||||||
|
igep2_vmmc2_supply.dev = mmc[1].dev;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
@ -364,6 +386,7 @@ static struct twl4030_platform_data igep2_twldata = {
|
||||||
.codec = &igep2_codec_data,
|
.codec = &igep2_codec_data,
|
||||||
.gpio = &igep2_gpio_data,
|
.gpio = &igep2_gpio_data,
|
||||||
.vmmc1 = &igep2_vmmc1,
|
.vmmc1 = &igep2_vmmc1,
|
||||||
|
.vmmc2 = &igep2_vmmc2,
|
||||||
.vpll2 = &igep2_vpll2,
|
.vpll2 = &igep2_vpll2,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -440,6 +463,23 @@ static void __init igep2_init(void)
|
||||||
gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
|
gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
|
||||||
} else
|
} else
|
||||||
pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n");
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n");
|
||||||
|
|
||||||
|
/* GPIO W-LAN + Bluetooth combo module */
|
||||||
|
if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) &&
|
||||||
|
(gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) {
|
||||||
|
gpio_export(IGEP2_GPIO_WIFI_NPD, 0);
|
||||||
|
/* gpio_set_value(IGEP2_GPIO_WIFI_NPD, 0); */
|
||||||
|
} else
|
||||||
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_WIFI_NPD\n");
|
||||||
|
|
||||||
|
if ((gpio_request(IGEP2_GPIO_WIFI_NRESET, "GPIO_WIFI_NRESET") == 0) &&
|
||||||
|
(gpio_direction_output(IGEP2_GPIO_WIFI_NRESET, 1) == 0)) {
|
||||||
|
gpio_export(IGEP2_GPIO_WIFI_NRESET, 0);
|
||||||
|
gpio_set_value(IGEP2_GPIO_WIFI_NRESET, 0);
|
||||||
|
udelay(10);
|
||||||
|
gpio_set_value(IGEP2_GPIO_WIFI_NRESET, 1);
|
||||||
|
} else
|
||||||
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_WIFI_NRESET\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init igep2_map_io(void)
|
static void __init igep2_map_io(void)
|
||||||
|
|
Loading…
Reference in New Issue