Otavio Salvador | 16 Jul 2012 23:44
Picon
Gravatar

[PATCH v2] i.MX28: Check if we are using a valid VBUS for power initialization

Signed-off-by: Otavio Salvador <otavio <at> ossystems.com.br>
---
Changes in v2:
- add comments
- fix when we have vbus OR vdd5v
- improve patch short description

 arch/arm/cpu/arm926ejs/mx28/spl_power_init.c |   26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
index 4b09b0c..fdf810c 100644
--- a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
+++ b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
 <at>  <at>  -564,6 +564,15  <at>  <at>  void mx28_batt_boot(void)
 		0x8 << POWER_5VCTRL_CHARGE_4P2_ILIMIT_OFFSET);
 }

+static int mx28_valid_vbus(void)
+{
+	struct mx28_power_regs *power_regs =
+		(struct mx28_power_regs *)MXS_POWER_BASE;
+
+	/* iMX23 uses POWER_STS_VBUSVALID_STATUS at same offset */
+	return readl(&power_regs->hw_power_sts) & POWER_STS_VBUSVALID0_STATUS;
+}
+
 void mx28_handle_5v_conflict(void)
 {
 	struct mx28_power_regs *power_regs =
(Continue reading)

Marek Vasut | 16 Jul 2012 23:46
Picon

Re: [PATCH v2] i.MX28: Check if we are using a valid VBUS for power initialization

Dear Otavio Salvador,

> Signed-off-by: Otavio Salvador <otavio <at> ossystems.com.br>
> ---
> Changes in v2:
> - add comments
> - fix when we have vbus OR vdd5v
> - improve patch short description
> 
>  arch/arm/cpu/arm926ejs/mx28/spl_power_init.c |   26
> +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7
> deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c index 4b09b0c..fdf810c
> 100644
> --- a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> +++ b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
>  <at>  <at>  -564,6 +564,15  <at>  <at>  void mx28_batt_boot(void)
>  		0x8 << POWER_5VCTRL_CHARGE_4P2_ILIMIT_OFFSET);
>  }
> 
> +static int mx28_valid_vbus(void)
> +{
> +	struct mx28_power_regs *power_regs =
> +		(struct mx28_power_regs *)MXS_POWER_BASE;
> +
> +	/* iMX23 uses POWER_STS_VBUSVALID_STATUS at same offset */
> +	return readl(&power_regs->hw_power_sts) & POWER_STS_VBUSVALID0_STATUS;
> +}
(Continue reading)

Otavio Salvador | 16 Jul 2012 23:53
Picon
Gravatar

Re: [PATCH v2] i.MX28: Check if we are using a valid VBUS for power initialization

On Mon, Jul 16, 2012 at 6:46 PM, Marek Vasut <marek.vasut <at> gmail.com> wrote:
...
>>       early_delay(1000);
>> -     if (readl(&power_regs->hw_power_sts) & POWER_STS_VDD5V_GT_VDDIO) {
>> +     if (mx28_valid_vbus() &&
>
> This is still likely to break any device that doesn't source it's 5V power
> supply from USB

I might be missing something here but the conflict function handles
this case and if any is available it boots.

--

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio <at> ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

Gmane