public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFT 1/8] exynos: Redo detection of revision when all resources are ready
Date: Mon, 11 Feb 2019 08:20:17 +0100	[thread overview]
Message-ID: <20190211082017.2f57d881@jawa> (raw)
In-Reply-To: <20190209225411.32756-2-krzk@kernel.org>

Hi Krzysztof,

> Detection of board type is done early - before power setup.  In case
> of Odroid XU3/XU4/HC1 family, the detection is done using ADC which
> is supplied by LDO4/VDD_ADC regulator.  This regulator could be turned
> off (e.g. by kernel before reboot);  If ADC is used early, the
> regulators are not yet available and the detection won't work.
> 
> Try to detect the revision again, once power is brought up.
> 
> This is necessary to fix the detection of Odroid HC1 after reboot, if
> kernel turned off the LDO4 regulator.  Otherwise the board is not
> detected....

But such approach seems not to be the optimal one (as we perform
detection twice - with default LDO4 enabled after power on and after
soft reset).

I would expect to enable the LDO4 regulator in the early code (I2C
would be probably necessary) and then read ADC value properly once.

(I also guess that the "work-by-chance" approach is caused by default
settings of PMIC after power on).

As fair as I remember, TI is able to read the EEPROM via I2C in the
very early u-boot (MLO to be precise) code and then make the decision
regarding the platform.

Maybe it would be possible to do the same with Samsung?

And another thought - if the set_board_type() can be called latter and
it works - why cannot we move it to this latter point and execute
exactly once?

> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
>  board/samsung/common/board.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/board/samsung/common/board.c
> b/board/samsung/common/board.c index 6fd26a3a9198..1e2dabe68d11 100644
> --- a/board/samsung/common/board.c
> +++ b/board/samsung/common/board.c
> @@ -147,6 +147,11 @@ int board_early_init_f(void)
>  {
>  	int err;
>  #ifdef CONFIG_BOARD_TYPES
> +	/*
> +	 * It is done early so power might not be set up yet.  In
> such case
> +	 * specific revision detection with ADC might not work and
> need to me
> +	 * redone later.
> +	 */
>  	set_board_type();
>  #endif
>  	err = board_uart_init();
> @@ -166,9 +171,21 @@ int board_early_init_f(void)
>  #if defined(CONFIG_POWER) || defined(CONFIG_DM_PMIC)
>  int power_init_board(void)
>  {
> +	int ret;
> +
>  	set_ps_hold_ctrl();
>  
> -	return exynos_power_init();
> +	ret = exynos_power_init();
> +
> +#ifdef CONFIG_BOARD_TYPES
> +	/*
> +	 * Since power is on, redo the board detection (external
> peripherals
> +	 * are on).
> +	 */
> +	set_board_type();
> +#endif
> +
> +	return ret;
>  }
>  #endif
>  




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190211/c5071abd/attachment.sig>

  reply	other threads:[~2019-02-11  7:20 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-09 22:54 [U-Boot] [RFT 0/8] exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 1/8] exynos: Redo detection of revision when all resources are ready Krzysztof Kozlowski
2019-02-11  7:20   ` Lukasz Majewski [this message]
2019-02-11  8:02     ` Krzysztof Kozlowski
2019-02-11  8:14       ` Lukasz Majewski
2019-02-11  8:17         ` Krzysztof Kozlowski
2019-02-11 11:06           ` Minkyu Kang
2019-02-09 22:54 ` [U-Boot] [RFT 2/8] exynos: Wait till ADC stabilizes before checking Odroid HC1 revision Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 3/8] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 4/8] regulator: Add support for ramp delay Krzysztof Kozlowski
2019-02-10  9:49   ` Simon Glass
2019-02-11  8:14     ` Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 5/8] power: regulator: s2mps11: Fix step for LDO27 and LDO35 Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 6/8] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
2019-02-11  7:11   ` Lukasz Majewski
2019-02-11  8:20     ` Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 7/8] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family Krzysztof Kozlowski
2019-02-09 22:54 ` [U-Boot] [RFT 8/8] arm: dts: exynos: Add ramp delay property to LDO regulators " Krzysztof Kozlowski
2019-02-11  7:13   ` Lukasz Majewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190211082017.2f57d881@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox