]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
sunxi: H6/H616: dram: remove usage of struct sunxi_prcm_reg
authorAndre Przywara <andre.przywara@arm.com>
Sat, 25 Jan 2025 23:49:27 +0000 (23:49 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 28 Apr 2025 18:45:44 +0000 (12:45 -0600)
The Allwinner H6 and H616 DRAM initialisation code uses a complex C
struct, modelling the PRCM clock register frame. For those SoCs, this
struct contains 20 registers, but the DRAM code only uses two of them.

Since we want to get rid of this struct, drop the usage of the struct in
the H6 and H616 DRAM code, by using #define'd register names and their
offset, and then adding those names to the base pointer.

This removes one more user of the PRCM clock register struct.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/include/asm/arch-sunxi/prcm_sun50i.h
arch/arm/mach-sunxi/dram_sun50i_h6.c
arch/arm/mach-sunxi/dram_sun50i_h616.c

index 8ed78dccf10d2487e852ca71358cdc8ac3bc2852..738cd68320c4ec0c82f07c81668d1267bab49494 100644 (file)
@@ -15,6 +15,7 @@
 #define CCU_PRCM_PLL_LDO_CFG           0x244
 #define CCU_PRCM_SYS_PWROFF_GATING     0x250
 #define CCU_PRCM_RES_CAL_CTRL          0x310
+#define CCU_PRCM_OHMS240               0x318
 
 struct sunxi_prcm_reg {
        u32 cpus_cfg;           /* 0x000 */
index 66a30d846a8a90ec970e677f9beed7fa681e0da8..84fd64a2bfc32c7c6ed6d6e7d24587d7cfbfda58 100644 (file)
@@ -600,14 +600,12 @@ unsigned long sunxi_dram_init(void)
 {
        struct sunxi_mctl_com_reg * const mctl_com =
                        (struct sunxi_mctl_com_reg *)SUNXI_DRAM_COM_BASE;
-       struct sunxi_prcm_reg *const prcm =
-               (struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
+       void *const prcm = (void *)SUNXI_PRCM_BASE;
        struct dram_config config;
-
        unsigned long size;
 
-       setbits_le32(&prcm->res_cal_ctrl, BIT(8));
-       clrbits_le32(&prcm->ohms240, 0x3f);
+       setbits_le32(prcm + CCU_PRCM_RES_CAL_CTRL, BIT(8));
+       clrbits_le32(prcm + CCU_PRCM_OHMS240, 0x3f);
 
        mctl_auto_detect_rank_width(&para, &config);
        mctl_auto_detect_dram_size(&para, &config);
index 5a431f3eb9fd654957ff82f21fedec22029a2f5a..5a59f82d1eff0a4d6aeb92b49c48f9b6b3523703 100644 (file)
@@ -1342,13 +1342,12 @@ static const struct dram_para para = {
 
 unsigned long sunxi_dram_init(void)
 {
-       struct sunxi_prcm_reg *const prcm =
-               (struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
+       void *const prcm = (void *)SUNXI_PRCM_BASE;
        struct dram_config config;
        unsigned long size;
 
-       setbits_le32(&prcm->res_cal_ctrl, BIT(8));
-       clrbits_le32(&prcm->ohms240, 0x3f);
+       setbits_le32(prcm + CCU_PRCM_RES_CAL_CTRL, BIT(8));
+       clrbits_le32(prcm + CCU_PRCM_OHMS240, 0x3f);
 
        mctl_auto_detect_rank_width(&para, &config);
        mctl_auto_detect_dram_size(&para, &config);