Message ID | 1397600984-25198-1-git-send-email-swarren@wwwdotorg.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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.
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.
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>;