From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 02/24] sun6i: Restrict some register initialization to Allwinner A31 SoC
Date: Thu, 24 Nov 2016 05:01:05 +0200 [thread overview]
Message-ID: <20161124050105.0b491000@i7> (raw)
In-Reply-To: <1479653838-3574-3-git-send-email-andre.przywara@arm.com>
On Sun, 20 Nov 2016 14:56:56 +0000
Andre Przywara <andre.przywara@arm.com> wrote:
> These days many Allwinner SoCs use clock_sun6i.c, although out of them
> only the (original sun6i) A31 has a second MBUS clock register.
> Also setting up the PRCM PLL_CTLR1 register to provide the proper voltage
> seems to be an A31-only feature as well.
> So restrict the initialization to this SoC only to avoid writing bogus
> values to (undefined) registers in other chips.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> Reviewed-by: Alexander Graf <agraf@suse.de>
> Reviewed-by: Chen-Yu Tsai <wens@csie.org>
> ---
> arch/arm/mach-sunxi/clock_sun6i.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm/mach-sunxi/clock_sun6i.c b/arch/arm/mach-sunxi/clock_sun6i.c
> index ed8cd9b..382fa94 100644
> --- a/arch/arm/mach-sunxi/clock_sun6i.c
> +++ b/arch/arm/mach-sunxi/clock_sun6i.c
> @@ -21,6 +21,8 @@ void clock_init_safe(void)
> {
> struct sunxi_ccm_reg * const ccm =
> (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
> +
> +#ifdef CONFIG_MACH_SUN6I
> struct sunxi_prcm_reg * const prcm =
> (struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
>
> @@ -31,6 +33,7 @@ void clock_init_safe(void)
> PRCM_PLL_CTRL_LDO_DIGITAL_EN | PRCM_PLL_CTRL_LDO_ANALOG_EN |
> PRCM_PLL_CTRL_EXT_OSC_EN | PRCM_PLL_CTRL_LDO_OUT_L(1140));
> clrbits_le32(&prcm->pll_ctrl1, PRCM_PLL_CTRL_LDO_KEY_MASK);
> +#endif
PRCM is generally poorly documented, with its description sometimes
entirely missing from the Allwinner manuals (while it exists in the
hardware). But many SoC variants are sharing the same features and need
the same code. I can confirm that this code chunk is needed on my A31s
tablet (otherwise the system does not boot), so it was not entirely
useless.
What about the other SoC variants? For example, I can see that the
A23 manual documents this register in a roughly the same way as A31
(the PLLVDD voltage settings, etc.). But I don't have any A23 hardware
to test. Basically, are we sure that we will not break A23 support
with this commit?
If I understand it correctly, you primarily wanted to disable this
code on A64. But disabling it everywhere other than A31 may be a
bit too broad.
>
> clock_set_pll1(408000000);
>
> @@ -41,7 +44,9 @@ void clock_init_safe(void)
> writel(AHB1_ABP1_DIV_DEFAULT, &ccm->ahb1_apb1_div);
>
> writel(MBUS_CLK_DEFAULT, &ccm->mbus0_clk_cfg);
> +#ifdef CONFIG_MACH_SUN6I
> writel(MBUS_CLK_DEFAULT, &ccm->mbus1_clk_cfg);
> +#endif
We can change this to:
if (IS_ENABLED(CONFIG_MACH_SUN6I))
writel(MBUS_CLK_DEFAULT, &ccm->mbus1_clk_cfg);
This saves one line of code and also looks a bit less ugly.
--
Best regards,
Siarhei Siamashka
next prev parent reply other threads:[~2016-11-24 3:01 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-20 14:56 [U-Boot] [PATCH 00/24] sunxi: Allwinner A64: SPL support Andre Przywara
2016-11-20 14:56 ` [U-Boot] [PATCH 01/24] drivers: SPI: sunxi SPL: fix warning Andre Przywara
2016-11-21 9:37 ` Jagan Teki
2016-11-21 15:28 ` Alexander Graf
2016-11-20 14:56 ` [U-Boot] [PATCH 02/24] sun6i: Restrict some register initialization to Allwinner A31 SoC Andre Przywara
2016-11-21 18:07 ` Jagan Teki
2016-11-24 3:01 ` Siarhei Siamashka [this message]
2016-11-24 10:18 ` Andre Przywara
2016-12-03 1:43 ` André Przywara
2016-11-20 14:56 ` [U-Boot] [PATCH 03/24] armv8: prevent using THUMB Andre Przywara
2016-11-21 15:29 ` Alexander Graf
2016-11-20 14:56 ` [U-Boot] [PATCH 04/24] armv8: add lowlevel_init.S Andre Przywara
2016-11-21 15:34 ` Alexander Graf
2016-11-21 15:49 ` Andre Przywara
2016-11-21 15:54 ` Alexander Graf
2016-11-20 14:56 ` [U-Boot] [PATCH 05/24] SPL: tiny-printf: add "l" modifier Andre Przywara
2016-11-21 15:42 ` Alexander Graf
2016-11-21 15:56 ` Andre Przywara
2016-11-21 16:05 ` Alexander Graf
2016-11-24 3:19 ` Siarhei Siamashka
2016-11-27 17:02 ` Simon Glass
2016-11-28 0:22 ` André Przywara
2016-11-29 1:13 ` André Przywara
2016-11-30 0:32 ` Simon Glass
2016-11-28 0:12 ` André Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 06/24] move UL() macro from armv8/mmu.h into common.h Andre Przywara
2016-11-21 15:45 ` Alexander Graf
2016-11-20 14:57 ` [U-Boot] [PATCH 07/24] SPL: make struct spl_image 64-bit safe Andre Przywara
2016-11-21 15:48 ` Alexander Graf
2016-11-21 16:20 ` york sun
2016-11-20 14:57 ` [U-Boot] [PATCH 08/24] armv8: add simple sdelay implementation Andre Przywara
2016-11-21 15:52 ` Alexander Graf
2016-11-24 1:33 ` Siarhei Siamashka
2016-11-24 1:25 ` Siarhei Siamashka
2016-11-24 1:29 ` André Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 09/24] armv8: move reset branch into boot hook Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 10/24] ARM: boot0 hook: remove macro, include whole header file Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 11/24] sunxi: introduce extra config option for boot0 header Andre Przywara
2016-11-21 7:27 ` Maxime Ripard
2016-11-21 9:29 ` Andre Przywara
2016-11-21 14:42 ` Maxime Ripard
2016-11-20 14:57 ` [U-Boot] [PATCH 12/24] sunxi: A64: do an RMR switch if started in AArch32 mode Andre Przywara
2016-11-21 16:34 ` Alexander Graf
2016-11-21 16:37 ` Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 13/24] sunxi: provide default DRAM config for sun50i in Kconfig Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 14/24] sunxi: H3: add and rename some DRAM contoller registers Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 15/24] sunxi: H3: add DRAM controller single bit delay support Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 16/24] sunxi: A64: use H3 DRAM initialization code for A64 Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 17/24] sunxi: H3/A64: fix non-ODT setting Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 18/24] sunxi: DRAM: fix H3 DRAM size display on aarch64 Andre Przywara
2016-11-21 16:36 ` Alexander Graf
2016-11-20 14:57 ` [U-Boot] [PATCH 19/24] sunxi: A64: enable SPL Andre Przywara
2016-11-21 16:37 ` Alexander Graf
2016-11-21 16:42 ` Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 20/24] SPL: read and store arch property from U-Boot image Andre Przywara
2016-11-24 2:20 ` Simon Glass
2016-11-20 14:57 ` [U-Boot] [PATCH 21/24] Makefile: use "arm64" architecture for U-Boot image files Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 22/24] ARM: SPL/FIT: differentiate between arm and arm64 arch properties Andre Przywara
2016-11-24 2:20 ` Simon Glass
2016-11-20 14:57 ` [U-Boot] [PATCH 23/24] sunxi: introduce RMR switch to enter payloads in 64-bit mode Andre Przywara
2016-11-20 14:57 ` [U-Boot] [PATCH 24/24] sunxi: A64: add 32-bit SPL support Andre Przywara
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=20161124050105.0b491000@i7 \
--to=siarhei.siamashka@gmail.com \
--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