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>
next prev parent 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