diff mbox

ARM: tegra: make Venice's +3.3V_RUN regulator always on

Message ID 1397600984-25198-1-git-send-email-swarren@wwwdotorg.org
State Accepted, archived
Headers show

Commit Message

Stephen Warren April 15, 2014, 10:29 p.m. UTC
From: Stephen Warren <swarren@nvidia.com>

This regulator supplies power to pretty much everything on the board, so
it doesn't make sense to allow it to turn off. Mark it boot-on and
always-on so it doesn't get turned off. Without this, I see issues with
the eMMC device; it can't be correctly detected during boot.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
 arch/arm/boot/dts/tegra124-venice2.dts | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andrew Bresticker April 16, 2014, 12:54 a.m. UTC | #1
On Tue, Apr 15, 2014 at 3:29 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> This regulator supplies power to pretty much everything on the board, so
> it doesn't make sense to allow it to turn off. Mark it boot-on and
> always-on so it doesn't get turned off. Without this, I see issues with
> the eMMC device; it can't be correctly detected during boot.

This actually isn't a complete fix.  +3V3_RUN will still toggle on a
cold boot because the GPIO1_INVERT bit is initialized by the PMIC to
1, but when the regulator core requests the GPIO as an output,
as3722_gpio_direction_output() first sets the output value to 1
(without considering the INVERT bit!) and then clears the invert bit
when setting the mode in as3722_pinctrl_gpio_set_direction().  The
as3722 driver should probably not touch the INVERT bit and instead
just take it into account when setting the GPIO value.

>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
>  arch/arm/boot/dts/tegra124-venice2.dts | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts
> index c17283c04598..87537f499875 100644
> --- a/arch/arm/boot/dts/tegra124-venice2.dts
> +++ b/arch/arm/boot/dts/tegra124-venice2.dts
> @@ -1060,6 +1060,8 @@
>                         regulator-name = "+3.3V_RUN";
>                         regulator-min-microvolt = <3300000>;
>                         regulator-max-microvolt = <3300000>;
> +                       regulator-always-on;
> +                       regulator-boot-on;
>                         gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
>                         enable-active-high;
>                         vin-supply = <&vdd_3v3_sys>;
> --
> 1.8.1.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren April 16, 2014, 4:20 p.m. UTC | #2
On 04/15/2014 06:54 PM, Andrew Bresticker wrote:
> On Tue, Apr 15, 2014 at 3:29 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> This regulator supplies power to pretty much everything on the board, so
>> it doesn't make sense to allow it to turn off. Mark it boot-on and
>> always-on so it doesn't get turned off. Without this, I see issues with
>> the eMMC device; it can't be correctly detected during boot.
> 
> This actually isn't a complete fix.  +3V3_RUN will still toggle on a
> cold boot because the GPIO1_INVERT bit is initialized by the PMIC to
> 1, but when the regulator core requests the GPIO as an output,
> as3722_gpio_direction_output() first sets the output value to 1
> (without considering the INVERT bit!) and then clears the invert bit
> when setting the mode in as3722_pinctrl_gpio_set_direction().  The
> as3722 driver should probably not touch the INVERT bit and instead
> just take it into account when setting the GPIO value.

I'll take that as a heads-up on the existence of the AS3722 GPIO patch,
rather than an objection to this patch.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren April 16, 2014, 11:14 p.m. UTC | #3
On 04/15/2014 04:29 PM, Stephen Warren wrote:
> This regulator supplies power to pretty much everything on the board, so
> it doesn't make sense to allow it to turn off. Mark it boot-on and
> always-on so it doesn't get turned off. Without this, I see issues with
> the eMMC device; it can't be correctly detected during boot.

I've applied this to Tegra's for-3.16/dt branch.

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts
index c17283c04598..87537f499875 100644
--- a/arch/arm/boot/dts/tegra124-venice2.dts
+++ b/arch/arm/boot/dts/tegra124-venice2.dts
@@ -1060,6 +1060,8 @@ 
 			regulator-name = "+3.3V_RUN";
 			regulator-min-microvolt = <3300000>;
 			regulator-max-microvolt = <3300000>;
+			regulator-always-on;
+			regulator-boot-on;
 			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
 			enable-active-high;
 			vin-supply = <&vdd_3v3_sys>;