summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authoryanhong.wang <yanhong.wang@starfivetech.com>2022-05-15 09:55:55 +0300
committerYanhong Wang <yanhong.wang@linux.starfivetech.com>2022-10-18 11:24:35 +0300
commit0eddcac0de54ba6d7b73f4cef8fffc9ce86582e0 (patch)
tree193e98cd80a7969cd780dc61625c450593857f83 /board
parentb8ceeb8238c4db755c2a3e5fe178568bd2d4c568 (diff)
downloadu-boot-0eddcac0de54ba6d7b73f4cef8fffc9ce86582e0.tar.xz
board:starfive: add clk init
Add clk init for ddr on JH7110 board Signed-off-by: yanhong.wang <yanhong.wang@starfivetech.com>
Diffstat (limited to 'board')
-rw-r--r--board/starfive/evb/spl.c35
-rw-r--r--board/starfive/evb/starfive_evb.c21
2 files changed, 31 insertions, 25 deletions
diff --git a/board/starfive/evb/spl.c b/board/starfive/evb/spl.c
index 44d2a4cc77..21ce5d12c1 100644
--- a/board/starfive/evb/spl.c
+++ b/board/starfive/evb/spl.c
@@ -7,12 +7,15 @@
#include <common.h>
#include <init.h>
-#include <spl.h>
-#include <log.h>
-#include <linux/delay.h>
-#include <image.h>
#include <asm/arch/spl.h>
#include <asm/io.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/jh7110-regs.h>
+#include <image.h>
+#include <linux/bitops.h>
+#include <log.h>
+#include <linux/delay.h>
+#include <spl.h>
#define MODE_SELECT_REG 0x1702002c
@@ -59,6 +62,30 @@ void board_init_f(ulong dummy)
{
int ret;
+ /*DDR control depend clk init*/
+ clrsetbits_le32(SYS_CRG_BASE, CLK_CPU_ROOT_SW_MASK,
+ BIT(CLK_CPU_ROOT_SW_SHIFT) & CLK_CPU_ROOT_SW_MASK);
+
+ clrsetbits_le32(SYS_CRG_BASE + CLK_BUS_ROOT_OFFSET,
+ CLK_BUS_ROOT_SW_MASK,
+ BIT(CLK_BUS_ROOT_SW_SHIFT) & CLK_BUS_ROOT_SW_MASK);
+
+ clrsetbits_le32(SYS_CRG_BASE + CLK_NOC_BUS_STG_AXI_OFFSET,
+ CLK_NOC_BUS_STG_AXI_EN_MASK,
+ BIT(CLK_NOC_BUS_STG_AXI_EN_SHIFT)
+ & CLK_NOC_BUS_STG_AXI_EN_MASK);
+
+ clrsetbits_le32(AON_CRG_BASE + CLK_AON_APB_FUNC_OFFSET,
+ CLK_AON_APB_FUNC_SW_MASK,
+ BIT(CLK_AON_APB_FUNC_SW_SHIFT) & CLK_AON_APB_FUNC_SW_MASK);
+
+ clrsetbits_le32(SYS_CRG_BASE + CLK_QSPI_REF_OFFSET,
+ CLK_QSPI_REF_SW_MASK,
+ BIT(CLK_QSPI_REF_SW_SHIFT) & CLK_QSPI_REF_SW_MASK);
+
+ /*set GPIO to 1.8v*/
+ setbits_be32(SYS_SYSCON_BASE + 0xC, 0xf);
+
ret = spl_early_init();
if (ret)
panic("spl_early_init() failed: %d\n", ret);
diff --git a/board/starfive/evb/starfive_evb.c b/board/starfive/evb/starfive_evb.c
index aa3899c03b..3253f02c60 100644
--- a/board/starfive/evb/starfive_evb.c
+++ b/board/starfive/evb/starfive_evb.c
@@ -17,27 +17,6 @@
#include <linux/bitops.h>
#include <asm/arch/gpio.h>
-#define SYS_IOMUX_DOEN(gpio, oen) \
- clrsetbits_le32(SYS_IOMUX_BASE+GPIO_OFFSET(gpio), \
- GPIO_DOEN_MASK << GPIO_SHIFT(gpio), \
- (oen) << GPIO_SHIFT(gpio))
-
-#define SYS_IOMUX_DOUT(gpio, gpo) \
- clrsetbits_le32(SYS_IOMUX_BASE + GPIO_DOUT + GPIO_OFFSET(gpio),\
- GPIO_DOUT_MASK << GPIO_SHIFT(gpio),\
- ((gpo) & GPIO_DOUT_MASK) << GPIO_SHIFT(gpio))
-
-#define SYS_IOMUX_DIN(gpio, gpi)\
- clrsetbits_le32(SYS_IOMUX_BASE + GPIO_DIN + GPIO_OFFSET(gpi),\
- GPIO_DIN_MASK << GPIO_SHIFT(gpi),\
- ((gpio+2) & GPIO_DIN_MASK) << GPIO_SHIFT(gpi))
-
-#define SYS_IOMUX_COMPLEX(gpio, gpi, gpo, oen) do {\
- SYS_IOMUX_DOEN(gpio, oen);\
- SYS_IOMUX_DOUT(gpio, gpo);\
- SYS_IOMUX_DIN(gpio, gpi); \
- } while (0)
-
#define SYS_CLOCK_ENABLE(clk) \
setbits_le32(SYS_CRG_BASE + clk, CLK_ENABLE_MASK)