ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators
Currently a dummy fixed always-on regulator is used for all 3 SD/MMC interfaces on ape6evm. This patch updates the board to use correct supplies for MMC0, SDHI0 and SDHI1 VDD. SDHI0 VccQ supply regulator should be implemented in a separate patch. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
parent
c75a5afa44
commit
8b98126d2c
@ -113,16 +113,49 @@ static const struct smsc911x_platform_config lan9220_data __initconst = {
|
||||
};
|
||||
|
||||
/*
|
||||
* On APE6EVM power is supplied to MMCIF by a tps80032 regulator. For now we
|
||||
* model a VDD supply to MMCIF, using a fixed 3.3V regulator. Also use the
|
||||
* static power supply for SDHI0 and SDHI1, whereas SDHI0's VccQ is also
|
||||
* supplied by the same tps80032 regulator and thus can also be adjusted
|
||||
* dynamically.
|
||||
* MMC0 power supplies:
|
||||
* Both Vcc and VccQ to eMMC on APE6EVM are supplied by a tps80032 voltage
|
||||
* regulator. Until support for it is added to this file we simulate the
|
||||
* Vcc supply by a fixed always-on regulator
|
||||
*/
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
static struct regulator_consumer_supply vcc_mmc0_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
|
||||
};
|
||||
|
||||
/*
|
||||
* SDHI0 power supplies:
|
||||
* Vcc to SDHI0 on APE6EVM is supplied by a GPIO-switchable regulator. VccQ is
|
||||
* provided by the same tps80032 regulator as both MMC0 voltages - see comment
|
||||
* above
|
||||
*/
|
||||
static struct regulator_consumer_supply vcc_sdhi0_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vcc_sdhi0_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers),
|
||||
.consumer_supplies = vcc_sdhi0_consumers,
|
||||
};
|
||||
|
||||
static const struct fixed_voltage_config vcc_sdhi0_info __initconst = {
|
||||
.supply_name = "SDHI0 Vcc",
|
||||
.microvolts = 3300000,
|
||||
.gpio = 76,
|
||||
.enable_high = 1,
|
||||
.init_data = &vcc_sdhi0_init_data,
|
||||
};
|
||||
|
||||
/*
|
||||
* SDHI1 power supplies:
|
||||
* Vcc and VccQ to SDHI1 on APE6EVM are both fixed at 3.3V
|
||||
*/
|
||||
static struct regulator_consumer_supply vcc_sdhi1_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
};
|
||||
|
||||
@ -215,14 +248,19 @@ static void __init ape6evm_add_standard_devices(void)
|
||||
platform_device_register_resndata(&platform_bus, "smsc911x", -1,
|
||||
lan9220_res, ARRAY_SIZE(lan9220_res),
|
||||
&lan9220_data, sizeof(lan9220_data));
|
||||
regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
||||
regulator_register_always_on(1, "MMC0 Vcc", vcc_mmc0_consumers,
|
||||
ARRAY_SIZE(vcc_mmc0_consumers), 2800000);
|
||||
platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
|
||||
mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
|
||||
&mmcif0_pdata, sizeof(mmcif0_pdata));
|
||||
platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2,
|
||||
&vcc_sdhi0_info, sizeof(vcc_sdhi0_info));
|
||||
platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0,
|
||||
sdhi0_resources, ARRAY_SIZE(sdhi0_resources),
|
||||
&sdhi0_pdata, sizeof(sdhi0_pdata));
|
||||
regulator_register_always_on(3, "SDHI1 Vcc", vcc_sdhi1_consumers,
|
||||
ARRAY_SIZE(vcc_sdhi1_consumers), 3300000);
|
||||
platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1,
|
||||
sdhi1_resources, ARRAY_SIZE(sdhi1_resources),
|
||||
&sdhi1_pdata, sizeof(sdhi1_pdata));
|
||||
|
Loading…
Reference in New Issue
Block a user