diff mbox

ARM: EXYNOS: Keep USB related LDOs always active on Origen

Message ID 1361515707-8571-1-git-send-email-tushar.behera@linaro.org
State New
Headers show

Commit Message

Tushar Behera Feb. 22, 2013, 6:48 a.m. UTC
LDO3 and LDO8 are used for powering both device and host phy controllers.
These regulators are not handled in USB host driver. Hence we get
unexpected behaviour when the regulators are disabled elsewhere.

It would be best to keep these regulators always on.

Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
---

Based on v3.8.

 arch/arm/mach-exynos/mach-origen.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

John Stultz Feb. 22, 2013, 5:25 p.m. UTC | #1
On 02/21/2013 10:48 PM, Tushar Behera wrote:
> LDO3 and LDO8 are used for powering both device and host phy controllers.
> These regulators are not handled in USB host driver. Hence we get
> unexpected behaviour when the regulators are disabled elsewhere.
>
> It would be best to keep these regulators always on.
>
> Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
> ---
>
> Based on v3.8.

This works great for me! Thanks so much Tushar!

Tested-by: John Stultz <john.stultz@linaro.org>
Kyungmin Park Feb. 27, 2013, 12:45 a.m. UTC | #2
Hi,

On Fri, Feb 22, 2013 at 3:48 PM, Tushar Behera <tushar.behera@linaro.org> wrote:
> LDO3 and LDO8 are used for powering both device and host phy controllers.
> These regulators are not handled in USB host driver. Hence we get
> unexpected behaviour when the regulators are disabled elsewhere.
>
> It would be best to keep these regulators always on.
No, it's just workaround patch.

It should be handled at USB drivers.
we usually used this scheme enable USB power always. but it consumes
lots of power.
There's no need to enable usb power when there's no usb connection.

So I suggest to enable power when usb is connected only.

In our case, micro IC detects the usb connection and enable usb power
at that time.

Thank you,
Kyungmin Park
>
> Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
> ---
>
> Based on v3.8.
>
>  arch/arm/mach-exynos/mach-origen.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
> index 5e34b9c..7351063 100644
> --- a/arch/arm/mach-exynos/mach-origen.c
> +++ b/arch/arm/mach-exynos/mach-origen.c
> @@ -169,6 +169,7 @@ static struct regulator_init_data __initdata max8997_ldo3_data = {
>                 .min_uV         = 1100000,
>                 .max_uV         = 1100000,
>                 .apply_uV       = 1,
> +               .always_on      = 1,
>                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
>                 .state_mem      = {
>                         .disabled       = 1,
> @@ -227,6 +228,7 @@ static struct regulator_init_data __initdata max8997_ldo8_data = {
>                 .min_uV         = 3300000,
>                 .max_uV         = 3300000,
>                 .apply_uV       = 1,
> +               .always_on      = 1,
>                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
>                 .state_mem      = {
>                         .disabled       = 1,
> --
> 1.7.4.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index 5e34b9c..7351063 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -169,6 +169,7 @@  static struct regulator_init_data __initdata max8997_ldo3_data = {
 		.min_uV		= 1100000,
 		.max_uV		= 1100000,
 		.apply_uV	= 1,
+		.always_on	= 1,
 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
 		.state_mem	= {
 			.disabled	= 1,
@@ -227,6 +228,7 @@  static struct regulator_init_data __initdata max8997_ldo8_data = {
 		.min_uV		= 3300000,
 		.max_uV		= 3300000,
 		.apply_uV	= 1,
+		.always_on	= 1,
 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
 		.state_mem	= {
 			.disabled	= 1,