* [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators
@ 2013-07-31 12:40 Guennadi Liakhovetski
2013-07-31 12:44 ` Laurent Pinchart
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Guennadi Liakhovetski @ 2013-07-31 12:40 UTC (permalink / raw)
To: linux-sh
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>
---
v2: improve comments.
arch/arm/mach-shmobile/board-ape6evm.c | 54 +++++++++++++++++++++++++++-----
1 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c
index c5e6cba..823de50 100644
--- a/arch/arm/mach-shmobile/board-ape6evm.c
+++ b/arch/arm/mach-shmobile/board-ape6evm.c
@@ -59,16 +59,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 = 3000000,
+ .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"),
};
@@ -161,14 +194,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));
--
1.7.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators
2013-07-31 12:40 [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators Guennadi Liakhovetski
@ 2013-07-31 12:44 ` Laurent Pinchart
2013-07-31 13:15 ` Guennadi Liakhovetski
2013-07-31 13:38 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Laurent Pinchart @ 2013-07-31 12:44 UTC (permalink / raw)
To: linux-sh
Hi Guennadi,
Thank you for the patch.
On Wednesday 31 July 2013 14:40:15 Guennadi Liakhovetski wrote:
> 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>
> ---
>
> v2: improve comments.
>
> arch/arm/mach-shmobile/board-ape6evm.c | 54 ++++++++++++++++++++++++-----
> 1 files changed, 46 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/mach-shmobile/board-ape6evm.c
> b/arch/arm/mach-shmobile/board-ape6evm.c index c5e6cba..823de50 100644
> --- a/arch/arm/mach-shmobile/board-ape6evm.c
> +++ b/arch/arm/mach-shmobile/board-ape6evm.c
> @@ -59,16 +59,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 = 3000000,
Despite being called VSD_3V0 in the schematics, I think the voltage is 3.3V.
> + .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"),
> };
>
> @@ -161,14 +194,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));
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators
2013-07-31 12:40 [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators Guennadi Liakhovetski
2013-07-31 12:44 ` Laurent Pinchart
@ 2013-07-31 13:15 ` Guennadi Liakhovetski
2013-07-31 13:38 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Guennadi Liakhovetski @ 2013-07-31 13:15 UTC (permalink / raw)
To: linux-sh
Hi Laurent
On Wed, 31 Jul 2013, Laurent Pinchart wrote:
> Hi Guennadi,
>
> Thank you for the patch.
>
> On Wednesday 31 July 2013 14:40:15 Guennadi Liakhovetski wrote:
> > 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>
> > ---
> >
> > v2: improve comments.
> >
> > arch/arm/mach-shmobile/board-ape6evm.c | 54 ++++++++++++++++++++++++-----
> > 1 files changed, 46 insertions(+), 8 deletions(-)
> >
> > diff --git a/arch/arm/mach-shmobile/board-ape6evm.c
> > b/arch/arm/mach-shmobile/board-ape6evm.c index c5e6cba..823de50 100644
> > --- a/arch/arm/mach-shmobile/board-ape6evm.c
> > +++ b/arch/arm/mach-shmobile/board-ape6evm.c
> > @@ -59,16 +59,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 = 3000000,
>
> Despite being called VSD_3V0 in the schematics, I think the voltage is 3.3V.
The documents are indeed contradictory. The voltage is called VSD_3V0,
however, as you correctly point out, on another page the schematics show
"LDO 300mA 3.3V." However, the board documentation specifies: "LDO14:
2.95V / 300 mA" for VSD_3V0... The microSD specification says operating
voltage is between 2.7 and 3.6V, so, either should work. Obviously, I
don't care either way, updating both affected patches would be a matter of
minutes. Any votes? :)
Thanks
Guennadi
> > + .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"),
> > };
> >
> > @@ -161,14 +194,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));
> --
> Regards,
>
> Laurent Pinchart
>
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators
2013-07-31 12:40 [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators Guennadi Liakhovetski
2013-07-31 12:44 ` Laurent Pinchart
2013-07-31 13:15 ` Guennadi Liakhovetski
@ 2013-07-31 13:38 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Laurent Pinchart @ 2013-07-31 13:38 UTC (permalink / raw)
To: linux-sh
Hi Guennadi,
On Wednesday 31 July 2013 15:15:21 Guennadi Liakhovetski wrote:
> On Wed, 31 Jul 2013, Laurent Pinchart wrote:
> > On Wednesday 31 July 2013 14:40:15 Guennadi Liakhovetski wrote:
> > > 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>
> > > ---
> > >
> > > v2: improve comments.
> > >
> > > arch/arm/mach-shmobile/board-ape6evm.c | 54 ++++++++++++++++++++-----
> > > 1 files changed, 46 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/arch/arm/mach-shmobile/board-ape6evm.c
> > > b/arch/arm/mach-shmobile/board-ape6evm.c index c5e6cba..823de50 100644
> > > --- a/arch/arm/mach-shmobile/board-ape6evm.c
> > > +++ b/arch/arm/mach-shmobile/board-ape6evm.c
> > > @@ -59,16 +59,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 = 3000000,
> >
> > Despite being called VSD_3V0 in the schematics, I think the voltage is
> > 3.3V.
>
> The documents are indeed contradictory. The voltage is called VSD_3V0,
> however, as you correctly point out, on another page the schematics show
> "LDO 300mA 3.3V." However, the board documentation specifies: "LDO14:
> 2.95V / 300 mA" for VSD_3V0... The microSD specification says operating
> voltage is between 2.7 and 3.6V, so, either should work. Obviously, I
> don't care either way, updating both affected patches would be a matter of
> minutes. Any votes? :)
I've checked on the board and the regulator is marked "RBBON". According to
http://www.ricoh.com/LSI/product_power/mark/ME-RP114N.pdf it's an RP114N331D,
and thus outputs 3.3V.
> > > + .gpio = 76,
> > > + .enable_high = 1,
> > > + .init_data = &vcc_sdhi0_init_data,
> > > +};
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-31 13:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-31 12:40 [PATCH v2 2/3] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators Guennadi Liakhovetski
2013-07-31 12:44 ` Laurent Pinchart
2013-07-31 13:15 ` Guennadi Liakhovetski
2013-07-31 13:38 ` Laurent Pinchart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).