All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file
@ 2019-07-22 12:01 Kever Yang
  2019-07-22 12:01 ` [U-Boot] [PATCH 01/24] rockchip: rk3328: add board_debug_uart_init() Kever Yang
                   ` (23 more replies)
  0 siblings, 24 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:01 UTC (permalink / raw)
  To: u-boot


Rockchip SoCs have similar boot process, we can re-use
the same U-Boot proper board file for all SoCs, and avoid too much
copy-paste overhead.



Kever Yang (24):
  rockchip: rk3328: add board_debug_uart_init()
  rockchip: convert to use ROCKCHIP_BOOT_MODE_REG for fastboot tag
  rockchip: clean up board_usb_init() for all SoCs
  rockchip: add common board file for U-Boot proper
  rockchip: sdram_common: add common dram_init_banksize
  rockchip: rk3036: move dram_init() into soc file
  rockchip: rk3036: Migrate to use common board file
  rockchip: rk3128: Migrate to use common board file
  rockchip: rk322x: move SoC setting into arch_cpu_init()
  rockchip: rk322x: Migrate to use common board file
  rockchip: rk3188: Move SoC one time setting into arch_cpu_init()
  rockchip: rk3188: Migrate to use common board file
  rockchip: rk3288: move SOC setting into arch_cpu_init()
  rockchip: rk3288: move board_early_init_f() back to veyron
  rockchip: rk3288: Move veyron_init() back to veyron.c
  rockchip: rk3288: Move clock CMD to SoC file
  rockchip: rk3288: Move rk3288_detect_reset_reason to soc file
  rockchip: rk3288: Migrate to use common board file
  rockchip: rk3328: Migrate to use common board file
  rockchip: rk3328: Migrate to use common board file
  rockchip: rk3399: init vbus regulator in board_early_init_f()
  rockchip: rk3399: Migrate to use common board file
  rockchip: elgin-rv1108: use board_early_init_f for per-boar init
  rockchip: rv1108: Migrate to use common board file

 arch/arm/mach-rockchip/Kconfig                |  16 +
 arch/arm/mach-rockchip/Makefile               |   9 +-
 .../mach-rockchip/{rk3036-board.c => board.c} |  52 +--
 arch/arm/mach-rockchip/rk3036/rk3036.c        |  16 +
 arch/arm/mach-rockchip/rk3128-board.c         | 123 -------
 arch/arm/mach-rockchip/rk3128/rk3128.c        |   3 +
 arch/arm/mach-rockchip/rk3188-board.c         |  53 ---
 arch/arm/mach-rockchip/rk3188/rk3188.c        |  16 +
 arch/arm/mach-rockchip/rk322x-board.c         | 127 -------
 arch/arm/mach-rockchip/rk322x/rk322x.c        |  11 +
 arch/arm/mach-rockchip/rk3288-board.c         | 320 ------------------
 arch/arm/mach-rockchip/rk3288/rk3288.c        | 134 ++++++++
 arch/arm/mach-rockchip/rk3328/rk3328.c        |  56 ++-
 arch/arm/mach-rockchip/rk3368/rk3368.c        |  11 -
 arch/arm/mach-rockchip/rk3399-board.c         |  13 -
 arch/arm/mach-rockchip/rk3399/rk3399.c        |  11 -
 arch/arm/mach-rockchip/rv1108-board.c         |  81 -----
 arch/arm/mach-rockchip/rv1108/rv1108.c        |  10 -
 arch/arm/mach-rockchip/sdram_common.c         |  63 ++++
 .../popmetal_rk3288/popmetal-rk3288.c         |   2 +-
 board/elgin/elgin_rv1108/elgin_rv1108.c       |   4 +-
 board/google/veyron/veyron.c                  |  83 +++++
 board/phytec/phycore_rk3288/phycore-rk3288.c  |   2 +-
 board/rockchip/evb_px5/evb-px5.c              |   6 -
 board/rockchip/evb_rk3328/evb-rk3328.c        |  65 ----
 board/rockchip/evb_rk3399/evb-rk3399.c        |  15 +-
 board/rockchip/evb_rv1108/evb_rv1108.c        |  14 -
 board/rockchip/sheep_rk3368/sheep_rk3368.c    |  15 -
 board/rockchip/tinker_rk3288/tinker-rk3288.c  |   2 +-
 .../lion_rk3368/lion_rk3368.c                 |  18 -
 .../puma_rk3399/puma-rk3399.c                 |  15 -
 board/vamrs/rock960_rk3399/rock960-rk3399.c   |  15 -
 32 files changed, 426 insertions(+), 955 deletions(-)
 rename arch/arm/mach-rockchip/{rk3036-board.c => board.c} (61%)
 delete mode 100644 arch/arm/mach-rockchip/rk3128-board.c
 delete mode 100644 arch/arm/mach-rockchip/rk3188-board.c
 delete mode 100644 arch/arm/mach-rockchip/rk322x-board.c
 delete mode 100644 arch/arm/mach-rockchip/rk3288-board.c
 delete mode 100644 arch/arm/mach-rockchip/rk3399-board.c
 delete mode 100644 arch/arm/mach-rockchip/rv1108-board.c

-- 
2.17.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 01/24] rockchip: rk3328: add board_debug_uart_init()
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
@ 2019-07-22 12:01 ` Kever Yang
  2019-07-22 12:01 ` [U-Boot] [PATCH 02/24] rockchip: convert to use ROCKCHIP_BOOT_MODE_REG for fastboot tag Kever Yang
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:01 UTC (permalink / raw)
  To: u-boot

Add board_debug_uart_init() to make the debug UART work with
correct setting.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3328/rk3328.c | 49 ++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/arch/arm/mach-rockchip/rk3328/rk3328.c b/arch/arm/mach-rockchip/rk3328/rk3328.c
index 222a8d36d3..afd9de4a1f 100644
--- a/arch/arm/mach-rockchip/rk3328/rk3328.c
+++ b/arch/arm/mach-rockchip/rk3328/rk3328.c
@@ -6,11 +6,17 @@
 #include <common.h>
 #include <asm/arch-rockchip/bootrom.h>
 #include <asm/arch-rockchip/hardware.h>
+#include <asm/arch-rockchip/grf_rk3328.h>
+#include <asm/arch-rockchip/uart.h>
 #include <asm/armv8/mmu.h>
 #include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#define CRU_BASE		0xFF440000
+#define GRF_BASE		0xFF100000
+#define UART2_BASE		0xFF130000
+
 const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
 	[BROM_BOOTSOURCE_EMMC] = "rksdmmc at ff520000",
 	[BROM_BOOTSOURCE_SD] = "rksdmmc at ff500000",
@@ -55,3 +61,46 @@ int arch_cpu_init(void)
 
 	return 0;
 }
+
+void board_debug_uart_init(void)
+{
+	struct rk3328_grf_regs * const grf = (void *)GRF_BASE;
+	struct rk_uart * const uart = (void *)UART2_BASE;
+	enum{
+		GPIO2A0_SEL_SHIFT       = 0,
+		GPIO2A0_SEL_MASK        = 3 << GPIO2A0_SEL_SHIFT,
+		GPIO2A0_UART2_TX_M1     = 1,
+
+		GPIO2A1_SEL_SHIFT       = 2,
+		GPIO2A1_SEL_MASK        = 3 << GPIO2A1_SEL_SHIFT,
+		GPIO2A1_UART2_RX_M1     = 1,
+	};
+	enum {
+		IOMUX_SEL_UART2_SHIFT   = 0,
+		IOMUX_SEL_UART2_MASK    = 3 << IOMUX_SEL_UART2_SHIFT,
+		IOMUX_SEL_UART2_M0      = 0,
+		IOMUX_SEL_UART2_M1,
+	};
+
+	/* uart_sel_clk default select 24MHz */
+	writel((3 << (8 + 16)) | (2 << 8), CRU_BASE + 0x148);
+
+	/* init uart baud rate 1500000 */
+	writel(0x83, &uart->lcr);
+	writel(0x1, &uart->rbr);
+	writel(0x3, &uart->lcr);
+
+	/* Enable early UART2 */
+	rk_clrsetreg(&grf->com_iomux,
+		     IOMUX_SEL_UART2_MASK,
+		     IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT);
+	rk_clrsetreg(&grf->gpio2a_iomux,
+		     GPIO2A0_SEL_MASK,
+		     GPIO2A0_UART2_TX_M1 << GPIO2A0_SEL_SHIFT);
+	rk_clrsetreg(&grf->gpio2a_iomux,
+		     GPIO2A1_SEL_MASK,
+		     GPIO2A1_UART2_RX_M1 << GPIO2A1_SEL_SHIFT);
+
+	/* enable FIFO */
+	writel(0x1, &uart->sfe);
+}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 02/24] rockchip: convert to use ROCKCHIP_BOOT_MODE_REG for fastboot tag
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
  2019-07-22 12:01 ` [U-Boot] [PATCH 01/24] rockchip: rk3328: add board_debug_uart_init() Kever Yang
@ 2019-07-22 12:01 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 03/24] rockchip: clean up board_usb_init() for all SoCs Kever Yang
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:01 UTC (permalink / raw)
  To: u-boot

The fastboot_set_reboot_flag() update a TAG into a register
for next boot, use the common macro for the register so that
we can re-use the function for different SoCs.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3128-board.c | 5 +----
 arch/arm/mach-rockchip/rk322x-board.c | 5 +----
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3128-board.c b/arch/arm/mach-rockchip/rk3128-board.c
index 0945829d0e..636ee65fee 100644
--- a/arch/arm/mach-rockchip/rk3128-board.c
+++ b/arch/arm/mach-rockchip/rk3128-board.c
@@ -111,12 +111,9 @@ int board_usb_cleanup(int index, enum usb_init_type init)
 #if CONFIG_IS_ENABLED(FASTBOOT)
 int fastboot_set_reboot_flag(void)
 {
-	struct rk3128_grf *grf;
-
 	printf("Setting reboot to fastboot flag ...\n");
-	grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
 	/* Set boot mode to fastboot */
-	writel(BOOT_FASTBOOT, &grf->os_reg[0]);
+	writel(BOOT_FASTBOOT, CONFIG_ROCKCHIP_BOOT_MODE_REG);
 
 	return 0;
 }
diff --git a/arch/arm/mach-rockchip/rk322x-board.c b/arch/arm/mach-rockchip/rk322x-board.c
index e7a1e54874..c0a537616c 100644
--- a/arch/arm/mach-rockchip/rk322x-board.c
+++ b/arch/arm/mach-rockchip/rk322x-board.c
@@ -115,12 +115,9 @@ int board_usb_cleanup(int index, enum usb_init_type init)
 #if CONFIG_IS_ENABLED(FASTBOOT)
 int fastboot_set_reboot_flag(void)
 {
-	struct rk322x_grf *grf;
-
 	printf("Setting reboot to fastboot flag ...\n");
-	grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
 	/* Set boot mode to fastboot */
-	writel(BOOT_FASTBOOT, &grf->os_reg[0]);
+	writel(BOOT_FASTBOOT, CONFIG_ROCKCHIP_BOOT_MODE_REG);
 
 	return 0;
 }
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 03/24] rockchip: clean up board_usb_init() for all SoCs
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
  2019-07-22 12:01 ` [U-Boot] [PATCH 01/24] rockchip: rk3328: add board_debug_uart_init() Kever Yang
  2019-07-22 12:01 ` [U-Boot] [PATCH 02/24] rockchip: convert to use ROCKCHIP_BOOT_MODE_REG for fastboot tag Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 04/24] rockchip: add common board file for U-Boot proper Kever Yang
                   ` (20 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use "snps,dwc2" for compatible name and and common variable
names so that we can share the common code for all SoCs.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3036-board.c  | 10 +++---
 arch/arm/mach-rockchip/rk3128-board.c  | 10 +++---
 arch/arm/mach-rockchip/rk322x-board.c  | 10 +++---
 arch/arm/mach-rockchip/rk3288-board.c  | 38 ++++----------------
 arch/arm/mach-rockchip/rv1108-board.c  | 49 ++++++--------------------
 board/rockchip/evb_rk3328/evb-rk3328.c | 11 +++---
 6 files changed, 36 insertions(+), 92 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3036-board.c b/arch/arm/mach-rockchip/rk3036-board.c
index c594c4d61c..b7967b8577 100644
--- a/arch/arm/mach-rockchip/rk3036-board.c
+++ b/arch/arm/mach-rockchip/rk3036-board.c
@@ -59,7 +59,7 @@ void enable_caches(void)
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rk3036_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -74,7 +74,7 @@ int board_usb_init(int index, enum usb_init_type init)
 
 	/* find the usb_otg node */
 	node = fdt_node_offset_by_compatible(blob, -1,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
@@ -84,15 +84,15 @@ int board_usb_init(int index, enum usb_init_type init)
 		}
 
 		node = fdt_node_offset_by_compatible(blob, node,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 	}
 	if (!matched) {
 		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
-	rk3036_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	return dwc2_udc_probe(&rk3036_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
diff --git a/arch/arm/mach-rockchip/rk3128-board.c b/arch/arm/mach-rockchip/rk3128-board.c
index 636ee65fee..cfc41286e7 100644
--- a/arch/arm/mach-rockchip/rk3128-board.c
+++ b/arch/arm/mach-rockchip/rk3128-board.c
@@ -66,7 +66,7 @@ void enable_caches(void)
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rk3128_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -81,7 +81,7 @@ int board_usb_init(int index, enum usb_init_type init)
 
 	/* find the usb_otg node */
 	node = fdt_node_offset_by_compatible(blob, -1,
-					     "rockchip,rk3128-usb");
+					"snps,dwc2");
 
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
@@ -91,15 +91,15 @@ int board_usb_init(int index, enum usb_init_type init)
 		}
 
 		node = fdt_node_offset_by_compatible(blob, node,
-						     "rockchip,rk3128-usb");
+					"snps,dwc2");
 	}
 	if (!matched) {
 		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
-	rk3128_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	return dwc2_udc_probe(&rk3128_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
diff --git a/arch/arm/mach-rockchip/rk322x-board.c b/arch/arm/mach-rockchip/rk322x-board.c
index c0a537616c..5103ad4ccc 100644
--- a/arch/arm/mach-rockchip/rk322x-board.c
+++ b/arch/arm/mach-rockchip/rk322x-board.c
@@ -70,7 +70,7 @@ void enable_caches(void)
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rk322x_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -85,7 +85,7 @@ int board_usb_init(int index, enum usb_init_type init)
 
 	/* find the usb_otg node */
 	node = fdt_node_offset_by_compatible(blob, -1,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
@@ -95,15 +95,15 @@ int board_usb_init(int index, enum usb_init_type init)
 		}
 
 		node = fdt_node_offset_by_compatible(blob, node,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 	}
 	if (!matched) {
 		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
-	rk322x_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	return dwc2_udc_probe(&rk322x_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index a250d50387..23c5343eb8 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -171,7 +171,7 @@ void enable_caches(void)
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rk3288_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -179,15 +179,14 @@ static struct dwc2_plat_otg_data rk3288_otg_data = {
 
 int board_usb_init(int index, enum usb_init_type init)
 {
-	int node, phy_node;
+	int node;
 	const char *mode;
 	bool matched = false;
 	const void *blob = gd->fdt_blob;
-	u32 grf_phy_offset;
 
 	/* find the usb_otg node */
 	node = fdt_node_offset_by_compatible(blob, -1,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
@@ -197,40 +196,15 @@ int board_usb_init(int index, enum usb_init_type init)
 		}
 
 		node = fdt_node_offset_by_compatible(blob, node,
-					"rockchip,rk3288-usb");
+					"snps,dwc2");
 	}
 	if (!matched) {
 		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
-	rk3288_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	node = fdtdec_lookup_phandle(blob, node, "phys");
-	if (node <= 0) {
-		debug("Not found usb phy device\n");
-		return -ENODEV;
-	}
-
-	phy_node = fdt_parent_offset(blob, node);
-	if (phy_node <= 0) {
-		debug("Not found usb phy device\n");
-		return -ENODEV;
-	}
-
-	rk3288_otg_data.phy_of_node = phy_node;
-	grf_phy_offset = fdtdec_get_addr(blob, node, "reg");
-
-	/* find the grf node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"rockchip,rk3288-grf");
-	if (node <= 0) {
-		debug("Not found grf device\n");
-		return -ENODEV;
-	}
-	rk3288_otg_data.regs_phy = grf_phy_offset +
-				fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&rk3288_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
diff --git a/arch/arm/mach-rockchip/rv1108-board.c b/arch/arm/mach-rockchip/rv1108-board.c
index 3412f2c063..3c683cb8ac 100644
--- a/arch/arm/mach-rockchip/rv1108-board.c
+++ b/arch/arm/mach-rockchip/rv1108-board.c
@@ -11,7 +11,7 @@ DECLARE_GLOBAL_DATA_PTR;
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rv1108_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -19,14 +19,14 @@ static struct dwc2_plat_otg_data rv1108_otg_data = {
 
 int board_usb_init(int index, enum usb_init_type init)
 {
-	const void *blob = gd->fdt_blob;
-	bool matched = false;
-	int node, phy_node;
-	u32 grf_phy_offset;
+	int node;
 	const char *mode;
+	bool matched = false;
+	const void *blob = gd->fdt_blob;
 
 	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1, "rockchip,rk3066-usb");
+	node = fdt_node_offset_by_compatible(blob, -1, "snps,dwc2");
+
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
 		if (mode && strcmp(mode, "otg") == 0) {
@@ -34,44 +34,15 @@ int board_usb_init(int index, enum usb_init_type init)
 			break;
 		}
 
-		node = fdt_node_offset_by_compatible(blob, node,
-						     "rockchip,rk3066-usb");
+		node = fdt_node_offset_by_compatible(blob, node, "snps,dwc2");
 	}
-
 	if (!matched) {
-		debug("usb_otg device not found\n");
-		return -ENODEV;
-	}
-
-	rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	node = fdtdec_lookup_phandle(blob, node, "phys");
-	if (node <= 0) {
-		debug("phys node not found\n");
+		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	phy_node = fdt_parent_offset(blob, node);
-	if (phy_node <= 0) {
-		debug("usb phy node not found\n");
-		return -ENODEV;
-	}
-
-	rv1108_otg_data.phy_of_node = phy_node;
-	grf_phy_offset = fdtdec_get_addr(blob, node, "reg");
-
-	/* find the grf node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					     "rockchip,rv1108-grf");
-	if (node <= 0) {
-		debug("grf node not found\n");
-		return -ENODEV;
-	}
-
-	rv1108_otg_data.regs_phy = grf_phy_offset + fdtdec_get_addr(blob, node,
-								    "reg");
-
-	return dwc2_udc_probe(&rv1108_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c
index bc9ef5e98b..64595c783d 100644
--- a/board/rockchip/evb_rk3328/evb-rk3328.c
+++ b/board/rockchip/evb_rk3328/evb-rk3328.c
@@ -26,7 +26,7 @@ int board_init(void)
 #include <usb.h>
 #include <usb/dwc2_udc.h>
 
-static struct dwc2_plat_otg_data rk3328_otg_data = {
+static struct dwc2_plat_otg_data otg_data = {
 	.rx_fifo_sz	= 512,
 	.np_tx_fifo_sz	= 16,
 	.tx_fifo_sz	= 128,
@@ -41,7 +41,7 @@ int board_usb_init(int index, enum usb_init_type init)
 
 	/* find the usb_otg node */
 	node = fdt_node_offset_by_compatible(blob, -1,
-					"rockchip,rk3328-usb");
+					"snps,dwc2");
 
 	while (node > 0) {
 		mode = fdt_getprop(blob, node, "dr_mode", NULL);
@@ -51,16 +51,15 @@ int board_usb_init(int index, enum usb_init_type init)
 		}
 
 		node = fdt_node_offset_by_compatible(blob, node,
-					"rockchip,rk3328-usb");
+					"snps,dwc2");
 	}
 	if (!matched) {
 		debug("Not found usb_otg device\n");
 		return -ENODEV;
 	}
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
 
-	rk3328_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&rk3328_otg_data);
+	return dwc2_udc_probe(&otg_data);
 }
 
 int board_usb_cleanup(int index, enum usb_init_type init)
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 04/24] rockchip: add common board file for U-Boot proper
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (2 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 03/24] rockchip: clean up board_usb_init() for all SoCs Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 05/24] rockchip: sdram_common: add common dram_init_banksize Kever Yang
                   ` (19 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Add common board file for Rockchip SoCs to avoid too much
copy-paste work for different SoCs.
This board file in charge for common board_init() and board_late_init()
in U-Boot proper.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig  |   7 +++
 arch/arm/mach-rockchip/Makefile |   1 +
 arch/arm/mach-rockchip/board.c  | 104 ++++++++++++++++++++++++++++++++
 3 files changed, 112 insertions(+)
 create mode 100644 arch/arm/mach-rockchip/board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 81dee9e5c7..4d983f8fce 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -229,6 +229,13 @@ config TPL_ROCKCHIP_BACK_TO_BROM
           SPL will return to the boot rom, which will then load the U-Boot
           binary to keep going on.
 
+config ROCKCHIP_COMMON_BOARD
+	bool "Rockchip common board file"
+	help
+	  Rockchip SoCs have similar boot process, Common board file is mainly
+	  in charge of common process of board_init() and board_late_init() for
+	  U-Boot proper.
+
 config SPL_ROCKCHIP_COMMON_BOARD
 	bool "Rockchip SPL common board file"
 	depends on SPL
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index 5cb2c6dcc9..7d2a227794 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -20,6 +20,7 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 # we can have the preprocessor correctly recognise both 0x0 and 0
 # meaning "turn it off".
 obj-y += boot_mode.o
+obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
 obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
 obj-$(CONFIG_ROCKCHIP_RK3128) += rk3128-board.o
diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c
new file mode 100644
index 0000000000..b2a88e789d
--- /dev/null
+++ b/arch/arm/mach-rockchip/board.c
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2019 Rockchip Electronics Co., Ltd.
+ */
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch-rockchip/boot_mode.h>
+#include <asm/arch-rockchip/clock.h>
+#include <asm/arch-rockchip/periph.h>
+#include <power/regulator.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
+{
+	return 0;
+}
+
+int board_late_init(void)
+{
+	setup_boot_mode();
+
+	return rk_board_late_init();
+}
+
+int board_init(void)
+{
+	int ret;
+
+#ifdef CONFIG_DM_REGULATOR
+	ret = regulators_enable_boot_on(false);
+	if (ret)
+		debug("%s: Cannot enable boot on regulator\n", __func__);
+#endif
+
+	return 0;
+}
+
+#if !defined(CONFIG_SYS_DCACHE_OFF) && !defined(CONFIG_ARM64)
+void enable_caches(void)
+{
+	/* Enable D-cache. I-cache is already enabled in start.S */
+	dcache_enable();
+}
+#endif
+
+#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
+#include <usb.h>
+#include <usb/dwc2_udc.h>
+
+static struct dwc2_plat_otg_data otg_data = {
+	.rx_fifo_sz	= 512,
+	.np_tx_fifo_sz	= 16,
+	.tx_fifo_sz	= 128,
+};
+
+int board_usb_init(int index, enum usb_init_type init)
+{
+	int node;
+	const char *mode;
+	bool matched = false;
+	const void *blob = gd->fdt_blob;
+
+	/* find the usb_otg node */
+	node = fdt_node_offset_by_compatible(blob, -1, "snps,dwc2");
+
+	while (node > 0) {
+		mode = fdt_getprop(blob, node, "dr_mode", NULL);
+		if (mode && strcmp(mode, "otg") == 0) {
+			matched = true;
+			break;
+		}
+
+		node = fdt_node_offset_by_compatible(blob, node, "snps,dwc2");
+	}
+	if (!matched) {
+		debug("Not found usb_otg device\n");
+		return -ENODEV;
+	}
+	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+
+	return dwc2_udc_probe(&otg_data);
+}
+
+int board_usb_cleanup(int index, enum usb_init_type init)
+{
+	return 0;
+}
+#endif
+
+#if CONFIG_IS_ENABLED(FASTBOOT)
+int fastboot_set_reboot_flag(void)
+{
+	printf("Setting reboot to fastboot flag ...\n");
+	/* Set boot mode to fastboot */
+	writel(BOOT_FASTBOOT, CONFIG_ROCKCHIP_BOOT_MODE_REG);
+
+	return 0;
+}
+#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 05/24] rockchip: sdram_common: add common dram_init_banksize
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (3 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 04/24] rockchip: add common board file for U-Boot proper Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 06/24] rockchip: rk3036: move dram_init() into soc file Kever Yang
                   ` (18 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

dram_init_banksize() can be common used by all SoCs, move it into
sdram_common.c

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3128-board.c  | 13 ------
 arch/arm/mach-rockchip/rk3128/rk3128.c |  3 ++
 arch/arm/mach-rockchip/rk322x-board.c  | 13 ------
 arch/arm/mach-rockchip/rk3328/rk3328.c | 11 -----
 arch/arm/mach-rockchip/rk3368/rk3368.c | 11 -----
 arch/arm/mach-rockchip/rk3399/rk3399.c | 11 -----
 arch/arm/mach-rockchip/sdram_common.c  | 63 ++++++++++++++++++++++++++
 board/rockchip/evb_rv1108/evb_rv1108.c |  8 ----
 8 files changed, 66 insertions(+), 67 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3128-board.c b/arch/arm/mach-rockchip/rk3128-board.c
index cfc41286e7..b931057329 100644
--- a/arch/arm/mach-rockchip/rk3128-board.c
+++ b/arch/arm/mach-rockchip/rk3128-board.c
@@ -41,19 +41,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
-	gd->bd->bi_dram[0].size = 0x8400000;
-	/* Reserve 0xe00000(14MB) for OPTEE with TA enabled, otherwise 2MB */
-	gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE
-				+ gd->bd->bi_dram[0].size + 0xe00000;
-	gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
-				+ gd->ram_size - gd->bd->bi_dram[1].start;
-
-	return 0;
-}
-
 #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
 void enable_caches(void)
 {
diff --git a/arch/arm/mach-rockchip/rk3128/rk3128.c b/arch/arm/mach-rockchip/rk3128/rk3128.c
index 11bba148c3..ee176de80b 100644
--- a/arch/arm/mach-rockchip/rk3128/rk3128.c
+++ b/arch/arm/mach-rockchip/rk3128/rk3128.c
@@ -2,6 +2,9 @@
 /*
  * Copyright (c) 2017 Rockchip Electronics Co., Ltd
  */
+#include <common.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 int arch_cpu_init(void)
 {
diff --git a/arch/arm/mach-rockchip/rk322x-board.c b/arch/arm/mach-rockchip/rk322x-board.c
index 5103ad4ccc..91fbd6abb8 100644
--- a/arch/arm/mach-rockchip/rk322x-board.c
+++ b/arch/arm/mach-rockchip/rk322x-board.c
@@ -45,19 +45,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
-	gd->bd->bi_dram[0].size = 0x8400000;
-	/* Reserve 0x200000 for OPTEE */
-	gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE
-				+ gd->bd->bi_dram[0].size + 0x200000;
-	gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
-				+ gd->ram_size - gd->bd->bi_dram[1].start;
-
-	return 0;
-}
-
 #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
 void enable_caches(void)
 {
diff --git a/arch/arm/mach-rockchip/rk3328/rk3328.c b/arch/arm/mach-rockchip/rk3328/rk3328.c
index afd9de4a1f..592f287613 100644
--- a/arch/arm/mach-rockchip/rk3328/rk3328.c
+++ b/arch/arm/mach-rockchip/rk3328/rk3328.c
@@ -44,17 +44,6 @@ static struct mm_region rk3328_mem_map[] = {
 
 struct mm_region *mem_map = rk3328_mem_map;
 
-int dram_init_banksize(void)
-{
-	size_t max_size = min((unsigned long)gd->ram_size, gd->ram_top);
-
-	/* Reserve 0x200000 for ATF bl31 */
-	gd->bd->bi_dram[0].start = 0x200000;
-	gd->bd->bi_dram[0].size = max_size - gd->bd->bi_dram[0].start;
-
-	return 0;
-}
-
 int arch_cpu_init(void)
 {
 	/* We do some SoC one time setting here. */
diff --git a/arch/arm/mach-rockchip/rk3368/rk3368.c b/arch/arm/mach-rockchip/rk3368/rk3368.c
index c75a5cd0c4..7ccd417a18 100644
--- a/arch/arm/mach-rockchip/rk3368/rk3368.c
+++ b/arch/arm/mach-rockchip/rk3368/rk3368.c
@@ -58,17 +58,6 @@ const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
 	[BROM_BOOTSOURCE_SD] = "dwmmc at ff0c0000",
 };
 
-int dram_init_banksize(void)
-{
-	size_t max_size = min((unsigned long)gd->ram_size, gd->ram_top);
-
-	/* Reserve 0x200000 for ATF bl31 */
-	gd->bd->bi_dram[0].start = 0x200000;
-	gd->bd->bi_dram[0].size = max_size - gd->bd->bi_dram[0].start;
-
-	return 0;
-}
-
 #ifdef CONFIG_ARCH_EARLY_INIT_R
 static int mcu_init(void)
 {
diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index bca1871b9a..d5c0377fd1 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -78,17 +78,6 @@ void rockchip_stimer_init(void)
 }
 #endif
 
-int dram_init_banksize(void)
-{
-	size_t max_size = min((unsigned long)gd->ram_size, gd->ram_top);
-
-	/* Reserve 0x200000 for ATF bl31 */
-	gd->bd->bi_dram[0].start = 0x200000;
-	gd->bd->bi_dram[0].size = max_size - gd->bd->bi_dram[0].start;
-
-	return 0;
-}
-
 int arch_cpu_init(void)
 {
 
diff --git a/arch/arm/mach-rockchip/sdram_common.c b/arch/arm/mach-rockchip/sdram_common.c
index 8684dbd4fa..22a4aca940 100644
--- a/arch/arm/mach-rockchip/sdram_common.c
+++ b/arch/arm/mach-rockchip/sdram_common.c
@@ -11,6 +11,69 @@
 #include <dm/uclass-internal.h>
 
 DECLARE_GLOBAL_DATA_PTR;
+
+#define TRUST_PARAMETER_OFFSET    (34 * 1024 * 1024)
+
+struct tos_parameter_t {
+	u32 version;
+	u32 checksum;
+	struct {
+		char name[8];
+		s64 phy_addr;
+		u32 size;
+		u32 flags;
+	} tee_mem;
+	struct {
+		char name[8];
+		s64 phy_addr;
+		u32 size;
+		u32 flags;
+	} drm_mem;
+	s64 reserve[8];
+};
+
+int dram_init_banksize(void)
+{
+	size_t top = min((unsigned long)(gd->ram_size + CONFIG_SYS_SDRAM_BASE),
+			 gd->ram_top);
+
+#ifdef CONFIG_ARM64
+	/* Reserve 0x200000 for ATF bl31 */
+	gd->bd->bi_dram[0].start = 0x200000;
+	gd->bd->bi_dram[0].size = top - gd->bd->bi_dram[0].start;
+#else
+#ifdef CONFIG_SPL_OPTEE
+	struct tos_parameter_t *tos_parameter;
+
+	tos_parameter = (struct tos_parameter_t *)(CONFIG_SYS_SDRAM_BASE +
+			TRUST_PARAMETER_OFFSET);
+
+	if (tos_parameter->tee_mem.flags == 1) {
+		gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+		gd->bd->bi_dram[0].size = tos_parameter->tee_mem.phy_addr
+					- CONFIG_SYS_SDRAM_BASE;
+		gd->bd->bi_dram[1].start = tos_parameter->tee_mem.phy_addr +
+					tos_parameter->tee_mem.size;
+		gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
+					+ top - gd->bd->bi_dram[1].start;
+	} else {
+		gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+		gd->bd->bi_dram[0].size = 0x8400000;
+		/* Reserve 32M for OPTEE with TA */
+		gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE
+					+ gd->bd->bi_dram[0].size + 0x2000000;
+		gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
+					+ top - gd->bd->bi_dram[1].start;
+	}
+#else
+	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+	gd->bd->bi_dram[0].size = top - gd->bd->bi_dram[0].start;
+#endif
+#endif
+
+	return 0;
+}
+
 size_t rockchip_sdram_size(phys_addr_t reg)
 {
 	u32 rank, col, bk, cs0_row, cs1_row, bw, row_3_4;
diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
index 457b110cd5..6d934f8805 100644
--- a/board/rockchip/evb_rv1108/evb_rv1108.c
+++ b/board/rockchip/evb_rv1108/evb_rv1108.c
@@ -59,11 +59,3 @@ int dram_init(void)
 
 	return 0;
 }
-
-int dram_init_banksize(void)
-{
-	gd->bd->bi_dram[0].start = 0x60000000;
-	gd->bd->bi_dram[0].size = 0x8000000;
-
-	return 0;
-}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 06/24] rockchip: rk3036: move dram_init() into soc file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (4 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 05/24] rockchip: sdram_common: add common dram_init_banksize Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 07/24] rockchip: rk3036: Migrate to use common board file Kever Yang
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Move dram_init() into rk3036.c so that we can use to common board
file later.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3036-board.c  | 14 --------------
 arch/arm/mach-rockchip/rk3036/rk3036.c | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3036-board.c b/arch/arm/mach-rockchip/rk3036-board.c
index b7967b8577..40f5e0aa3d 100644
--- a/arch/arm/mach-rockchip/rk3036-board.c
+++ b/arch/arm/mach-rockchip/rk3036-board.c
@@ -13,7 +13,6 @@
 #include <asm/arch-rockchip/periph.h>
 #include <asm/arch-rockchip/grf_rk3036.h>
 #include <asm/arch-rockchip/boot_mode.h>
-#include <asm/arch-rockchip/sdram_rk3036.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -34,19 +33,6 @@ int board_init(void)
 	return 0;
 }
 
-#if !CONFIG_IS_ENABLED(RAM)
-/*
- * When CONFIG_RAM is enabled, the dram_init() function is implemented
- * in sdram_common.c.
- */
-int dram_init(void)
-{
-	gd->ram_size = sdram_size();
-
-	return 0;
-}
-#endif
-
 #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
 void enable_caches(void)
 {
diff --git a/arch/arm/mach-rockchip/rk3036/rk3036.c b/arch/arm/mach-rockchip/rk3036/rk3036.c
index 481af8a934..be458cfb64 100644
--- a/arch/arm/mach-rockchip/rk3036/rk3036.c
+++ b/arch/arm/mach-rockchip/rk3036/rk3036.c
@@ -5,6 +5,9 @@
 #include <asm/io.h>
 #include <asm/arch-rockchip/grf_rk3036.h>
 #include <asm/arch-rockchip/hardware.h>
+#include <asm/arch-rockchip/sdram_rk3036.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_DEBUG_UART_BOARD_INIT
 void board_debug_uart_init(void)
@@ -36,3 +39,16 @@ void board_debug_uart_init(void)
 		     GPIO1C2_UART2_SIN << GPIO1C2_SHIFT);
 }
 #endif
+
+#if !CONFIG_IS_ENABLED(RAM)
+/*
+ * When CONFIG_RAM is enabled, the dram_init() function is implemented
+ * in sdram_common.c.
+ */
+int dram_init(void)
+{
+	gd->ram_size = sdram_size();
+
+	return 0;
+}
+#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 07/24] rockchip: rk3036: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (5 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 06/24] rockchip: rk3036: move dram_init() into soc file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 08/24] rockchip: rk3128: " Kever Yang
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig        |  1 +
 arch/arm/mach-rockchip/Makefile       |  1 -
 arch/arm/mach-rockchip/rk3036-board.c | 88 ---------------------------
 3 files changed, 1 insertion(+), 89 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk3036-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 4d983f8fce..74e37eeb2a 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -7,6 +7,7 @@ config ROCKCHIP_RK3036
 	select SPL
 	imply USB_FUNCTION_ROCKUSB
 	imply CMD_ROCKUSB
+	imply ROCKCHIP_COMMON_BOARD
 	help
 	  The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
 	  including NEON and GPU, Mali-400 graphics, several DDR3 options
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index 7d2a227794..e7f9a11a97 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -26,7 +26,6 @@ obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
 obj-$(CONFIG_ROCKCHIP_RK3128) += rk3128-board.o
 obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board.o
 obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
-obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board.o
 obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
 obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
 endif
diff --git a/arch/arm/mach-rockchip/rk3036-board.c b/arch/arm/mach-rockchip/rk3036-board.c
deleted file mode 100644
index 40f5e0aa3d..0000000000
--- a/arch/arm/mach-rockchip/rk3036-board.c
+++ /dev/null
@@ -1,88 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2015 Rockchip Electronics Co., Ltd
- */
-
-#include <common.h>
-#include <clk.h>
-#include <dm.h>
-#include <ram.h>
-#include <asm/gpio.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/periph.h>
-#include <asm/arch-rockchip/grf_rk3036.h>
-#include <asm/arch-rockchip/boot_mode.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-__weak int rk_board_late_init(void)
-{
-	return 0;
-}
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-
-	return rk_board_late_init();
-}
-
-int board_init(void)
-{
-	return 0;
-}
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node,
-					"snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 08/24] rockchip: rk3128: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (6 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 07/24] rockchip: rk3036: Migrate to use common board file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 09/24] rockchip: rk322x: move SoC setting into arch_cpu_init() Kever Yang
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig        |   1 +
 arch/arm/mach-rockchip/Makefile       |   1 -
 arch/arm/mach-rockchip/rk3128-board.c | 107 --------------------------
 3 files changed, 1 insertion(+), 108 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk3128-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 74e37eeb2a..ea8908cd29 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -17,6 +17,7 @@ config ROCKCHIP_RK3036
 config ROCKCHIP_RK3128
 	bool "Support Rockchip RK3128"
 	select CPU_V7A
+	imply ROCKCHIP_COMMON_BOARD
 	help
 	  The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
 	  including NEON and GPU, Mali-400 graphics, several DDR3 options
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index e7f9a11a97..260a0cfabb 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -23,7 +23,6 @@ obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
 obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
-obj-$(CONFIG_ROCKCHIP_RK3128) += rk3128-board.o
 obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board.o
 obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
 obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
diff --git a/arch/arm/mach-rockchip/rk3128-board.c b/arch/arm/mach-rockchip/rk3128-board.c
deleted file mode 100644
index b931057329..0000000000
--- a/arch/arm/mach-rockchip/rk3128-board.c
+++ /dev/null
@@ -1,107 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2017 Rockchip Electronics Co., Ltd.
- */
-#include <common.h>
-#include <clk.h>
-#include <dm.h>
-#include <ram.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/periph.h>
-#include <asm/arch-rockchip/grf_rk3128.h>
-#include <asm/arch-rockchip/boot_mode.h>
-#include <power/regulator.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-__weak int rk_board_late_init(void)
-{
-	return 0;
-}
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-
-	return rk_board_late_init();
-}
-
-int board_init(void)
-{
-	int ret = 0;
-
-	ret = regulators_enable_boot_on(false);
-	if (ret) {
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-		return ret;
-	}
-
-	return 0;
-}
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node,
-					"snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
-
-#if CONFIG_IS_ENABLED(FASTBOOT)
-int fastboot_set_reboot_flag(void)
-{
-	printf("Setting reboot to fastboot flag ...\n");
-	/* Set boot mode to fastboot */
-	writel(BOOT_FASTBOOT, CONFIG_ROCKCHIP_BOOT_MODE_REG);
-
-	return 0;
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 09/24] rockchip: rk322x: move SoC setting into arch_cpu_init()
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (7 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 08/24] rockchip: rk3128: " Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 10/24] rockchip: rk322x: Migrate to use common board file Kever Yang
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

The SoC one time setting should go to arch_cpu_init() in
rk322x.c

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk322x-board.c  | 14 --------------
 arch/arm/mach-rockchip/rk322x/rk322x.c | 11 +++++++++++
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk322x-board.c b/arch/arm/mach-rockchip/rk322x-board.c
index 91fbd6abb8..0a129520da 100644
--- a/arch/arm/mach-rockchip/rk322x-board.c
+++ b/arch/arm/mach-rockchip/rk322x-board.c
@@ -10,7 +10,6 @@
 #include <asm/io.h>
 #include <asm/arch-rockchip/boot_mode.h>
 #include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk322x.h>
 #include <asm/arch-rockchip/periph.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -29,19 +28,6 @@ int board_late_init(void)
 
 int board_init(void)
 {
-#include <asm/arch-rockchip/grf_rk322x.h>
-	/* Enable early UART2 channel 1 on the RK322x */
-#define GRF_BASE	0x11000000
-	static struct rk322x_grf * const grf = (void *)GRF_BASE;
-
-	/*
-	* The integrated macphy is enabled by default, disable it
-	* for saving power consuming.
-	*/
-	rk_clrsetreg(&grf->macphy_con[0],
-		     MACPHY_CFG_ENABLE_MASK,
-		     0 << MACPHY_CFG_ENABLE_SHIFT);
-
 	return 0;
 }
 
diff --git a/arch/arm/mach-rockchip/rk322x/rk322x.c b/arch/arm/mach-rockchip/rk322x/rk322x.c
index a8677b9783..cd0bf8a70c 100644
--- a/arch/arm/mach-rockchip/rk322x/rk322x.c
+++ b/arch/arm/mach-rockchip/rk322x/rk322x.c
@@ -57,6 +57,17 @@ int arch_cpu_init(void)
 
 	/* Disable the ddr secure region setting to make it non-secure */
 	rk_clrreg(&sgrf->soc_con[0], 0x4000);
+#else
+#define GRF_BASE	0x11000000
+	static struct rk322x_grf * const grf = (void *)GRF_BASE;
+	/*
+	 * The integrated macphy is enabled by default, disable it
+	 * for saving power consuming.
+	 */
+	rk_clrsetreg(&grf->macphy_con[0],
+		     MACPHY_CFG_ENABLE_MASK,
+		     0 << MACPHY_CFG_ENABLE_SHIFT);
+
 #endif
 	return 0;
 }
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 10/24] rockchip: rk322x: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (8 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 09/24] rockchip: rk322x: move SoC setting into arch_cpu_init() Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 11/24] rockchip: rk3188: Move SoC one time setting into arch_cpu_init() Kever Yang
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig        |  1 +
 arch/arm/mach-rockchip/Makefile       |  1 -
 arch/arm/mach-rockchip/rk322x-board.c | 97 ---------------------------
 3 files changed, 1 insertion(+), 98 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk322x-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index ea8908cd29..a62ce448a4 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -60,6 +60,7 @@ config ROCKCHIP_RK322X
 	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
 	select TPL_NEEDS_SEPARATE_STACK if TPL
 	select SPL_DRIVERS_MISC_SUPPORT
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_SERIAL_SUPPORT
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	imply TPL_SERIAL_SUPPORT
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index 260a0cfabb..1dd9d2fd25 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -23,7 +23,6 @@ obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
 obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
-obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board.o
 obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
 obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
 obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
diff --git a/arch/arm/mach-rockchip/rk322x-board.c b/arch/arm/mach-rockchip/rk322x-board.c
deleted file mode 100644
index 0a129520da..0000000000
--- a/arch/arm/mach-rockchip/rk322x-board.c
+++ /dev/null
@@ -1,97 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2017 Rockchip Electronics Co., Ltd.
- */
-#include <common.h>
-#include <clk.h>
-#include <dm.h>
-#include <ram.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/boot_mode.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/periph.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-__weak int rk_board_late_init(void)
-{
-	return 0;
-}
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-
-	return rk_board_late_init();
-}
-
-int board_init(void)
-{
-	return 0;
-}
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node,
-					"snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
-
-#if CONFIG_IS_ENABLED(FASTBOOT)
-int fastboot_set_reboot_flag(void)
-{
-	printf("Setting reboot to fastboot flag ...\n");
-	/* Set boot mode to fastboot */
-	writel(BOOT_FASTBOOT, CONFIG_ROCKCHIP_BOOT_MODE_REG);
-
-	return 0;
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 11/24] rockchip: rk3188: Move SoC one time setting into arch_cpu_init()
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (9 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 10/24] rockchip: rk322x: Migrate to use common board file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 12/24] rockchip: rk3188: Migrate to use common board file Kever Yang
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

The setting for noc remap should goto arch_cpu_init().

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3188-board.c  | 15 ---------------
 arch/arm/mach-rockchip/rk3188/rk3188.c | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3188-board.c b/arch/arm/mach-rockchip/rk3188-board.c
index 94fd6c01eb..5b6f21577f 100644
--- a/arch/arm/mach-rockchip/rk3188-board.c
+++ b/arch/arm/mach-rockchip/rk3188-board.c
@@ -7,13 +7,9 @@
 #include <clk.h>
 #include <dm.h>
 #include <ram.h>
-#include <syscon.h>
 #include <asm/gpio.h>
 #include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3188.h>
 #include <asm/arch-rockchip/periph.h>
-#include <asm/arch-rockchip/pmu_rk3288.h>
 #include <asm/arch-rockchip/boot_mode.h>
 
 __weak int rk_board_late_init(void)
@@ -23,18 +19,7 @@ __weak int rk_board_late_init(void)
 
 int board_late_init(void)
 {
-	struct rk3188_grf *grf;
-
 	setup_boot_mode();
-	grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
-	if (IS_ERR(grf)) {
-		pr_err("grf syscon returned %ld\n", PTR_ERR(grf));
-	} else {
-		/* enable noc remap to mimic legacy loaders */
-		rk_clrsetreg(&grf->soc_con0,
-			NOC_REMAP_MASK << NOC_REMAP_SHIFT,
-			NOC_REMAP_MASK << NOC_REMAP_SHIFT);
-	}
 
 	return rk_board_late_init();
 }
diff --git a/arch/arm/mach-rockchip/rk3188/rk3188.c b/arch/arm/mach-rockchip/rk3188/rk3188.c
index 08792f1674..ee994f2990 100644
--- a/arch/arm/mach-rockchip/rk3188/rk3188.c
+++ b/arch/arm/mach-rockchip/rk3188/rk3188.c
@@ -3,8 +3,11 @@
  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
  */
 #include <common.h>
+#include <dm.h>
+#include <syscon.h>
 #include <asm/io.h>
 #include <asm/arch-rockchip/bootrom.h>
+#include <asm/arch-rockchip/clock.h>
 #include <asm/arch-rockchip/grf_rk3188.h>
 #include <asm/arch-rockchip/hardware.h>
 
@@ -42,6 +45,7 @@ void board_debug_uart_init(void)
 }
 #endif
 
+#ifdef CONFIG_SPL_BUILD
 int arch_cpu_init(void)
 {
 #ifdef CONFIG_ROCKCHIP_USB_UART
@@ -64,8 +68,20 @@ int arch_cpu_init(void)
 		     BYPASSSEL_MASK | BYPASSDMEN_MASK,
 		     1 << BYPASSSEL_SHIFT | 1 << BYPASSDMEN_SHIFT);
 #endif
+
+	grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
+	if (IS_ERR(grf)) {
+		pr_err("grf syscon returned %ld\n", PTR_ERR(grf));
+	} else {
+		/* enable noc remap to mimic legacy loaders */
+		rk_clrsetreg(&grf->soc_con0,
+			     NOC_REMAP_MASK << NOC_REMAP_SHIFT,
+			     NOC_REMAP_MASK << NOC_REMAP_SHIFT);
+	}
+
 	return 0;
 }
+#endif
 
 #ifdef CONFIG_SPL_BUILD
 static int setup_led(void)
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 12/24] rockchip: rk3188: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (10 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 11/24] rockchip: rk3188: Move SoC one time setting into arch_cpu_init() Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 13/24] rockchip: rk3288: move SOC setting into arch_cpu_init() Kever Yang
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig        |  1 +
 arch/arm/mach-rockchip/Makefile       |  1 -
 arch/arm/mach-rockchip/rk3188-board.c | 38 ---------------------------
 3 files changed, 1 insertion(+), 39 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk3188-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index a62ce448a4..86b01df8c4 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -38,6 +38,7 @@ config ROCKCHIP_RK3188
 	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
 	select SPL_ROCKCHIP_BACK_TO_BROM
 	select BOARD_LATE_INIT
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	help
 	  The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index 1dd9d2fd25..dd7297d3c8 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -22,7 +22,6 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
-obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
 obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
 obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
 obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
diff --git a/arch/arm/mach-rockchip/rk3188-board.c b/arch/arm/mach-rockchip/rk3188-board.c
deleted file mode 100644
index 5b6f21577f..0000000000
--- a/arch/arm/mach-rockchip/rk3188-board.c
+++ /dev/null
@@ -1,38 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2015 Google, Inc
- */
-
-#include <common.h>
-#include <clk.h>
-#include <dm.h>
-#include <ram.h>
-#include <asm/gpio.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/periph.h>
-#include <asm/arch-rockchip/boot_mode.h>
-
-__weak int rk_board_late_init(void)
-{
-	return 0;
-}
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-
-	return rk_board_late_init();
-}
-
-int board_init(void)
-{
-	return 0;
-}
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 13/24] rockchip: rk3288: move SOC setting into arch_cpu_init()
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (11 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 12/24] rockchip: rk3188: Migrate to use common board file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 14/24] rockchip: rk3288: move board_early_init_f() back to veyron Kever Yang
                   ` (10 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Qos setting and emmc relate SoC setting should go to arch_cpu_init().

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3288-board.c  | 30 --------------------------
 arch/arm/mach-rockchip/rk3288/rk3288.c | 30 ++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index 23c5343eb8..9d88365fff 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -13,7 +13,6 @@
 #include <asm/arch-rockchip/cru_rk3288.h>
 #include <asm/arch-rockchip/periph.h>
 #include <asm/arch-rockchip/pmu_rk3288.h>
-#include <asm/arch-rockchip/qos_rk3288.h>
 #include <asm/arch-rockchip/boot_mode.h>
 #include <asm/gpio.h>
 #include <dt-bindings/clock/rk3288-cru.h>
@@ -26,24 +25,6 @@ __weak int rk_board_late_init(void)
 	return 0;
 }
 
-int rk3288_qos_init(void)
-{
-	int val = 2 << PRIORITY_HIGH_SHIFT | 2 << PRIORITY_LOW_SHIFT;
-	/* set vop qos to higher priority */
-	writel(val, CPU_AXI_QOS_PRIORITY + VIO0_VOP_QOS);
-	writel(val, CPU_AXI_QOS_PRIORITY + VIO1_VOP_QOS);
-
-	if (!fdt_node_check_compatible(gd->fdt_blob, 0,
-				       "rockchip,rk3288-tinker"))
-	{
-		/* set isp qos to higher priority */
-		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_R_QOS);
-		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W0_QOS);
-		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W1_QOS);
-	}
-	return 0;
-}
-
 static void rk3288_detect_reset_reason(void)
 {
 	struct rk3288_cru *cru = rockchip_get_cru();
@@ -84,7 +65,6 @@ static void rk3288_detect_reset_reason(void)
 int board_late_init(void)
 {
 	setup_boot_mode();
-	rk3288_qos_init();
 	rk3288_detect_reset_reason();
 
 	return rk_board_late_init();
@@ -266,8 +246,6 @@ U_BOOT_CMD(
 
 int board_early_init_f(void)
 {
-	const uintptr_t GRF_SOC_CON0 = 0xff770244;
-	const uintptr_t GRF_SOC_CON2 = 0xff77024c;
 	struct udevice *dev;
 	int ret;
 
@@ -282,13 +260,5 @@ int board_early_init_f(void)
 		return ret;
 	}
 
-	rk_setreg(GRF_SOC_CON2, 1 << 0);
-
-	/*
-	 * Disable JTAG on sdmmc0 IO. The SDMMC won't work until this bit is
-	 * cleared
-	 */
-	rk_clrreg(GRF_SOC_CON0, 1 << 12);
-
 	return 0;
 }
diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c
index de9e396288..d938d4bff8 100644
--- a/arch/arm/mach-rockchip/rk3288/rk3288.c
+++ b/arch/arm/mach-rockchip/rk3288/rk3288.c
@@ -2,11 +2,15 @@
 /*
  * Copyright (c) 2016 Rockchip Electronics Co., Ltd
  */
+#include <common.h>
 #include <asm/armv7.h>
 #include <asm/io.h>
 #include <asm/arch-rockchip/bootrom.h>
 #include <asm/arch-rockchip/hardware.h>
 #include <asm/arch-rockchip/grf_rk3288.h>
+#include <asm/arch-rockchip/qos_rk3288.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #define GRF_BASE	0xff770000
 
@@ -36,6 +40,24 @@ static void configure_l2ctlr(void)
 }
 #endif
 
+int rk3288_qos_init(void)
+{
+	int val = 2 << PRIORITY_HIGH_SHIFT | 2 << PRIORITY_LOW_SHIFT;
+	/* set vop qos to higher priority */
+	writel(val, CPU_AXI_QOS_PRIORITY + VIO0_VOP_QOS);
+	writel(val, CPU_AXI_QOS_PRIORITY + VIO1_VOP_QOS);
+
+	if (!fdt_node_check_compatible(gd->fdt_blob, 0,
+				       "rockchip,rk3288-tinker")) {
+		/* set isp qos to higher priority */
+		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_R_QOS);
+		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W0_QOS);
+		writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W1_QOS);
+	}
+
+	return 0;
+}
+
 int arch_cpu_init(void)
 {
 #ifdef CONFIG_SPL_BUILD
@@ -46,6 +68,14 @@ int arch_cpu_init(void)
 
 	/* Use rkpwm by default */
 	rk_setreg(&grf->soc_con2, 1 << 0);
+
+	/*
+	 * Disable JTAG on sdmmc0 IO. The SDMMC won't work until this bit is
+	 * cleared
+	 */
+	rk_clrreg(&grf->soc_con0, 1 << 12);
+
+	rk3288_qos_init();
 #endif
 
 	return 0;
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 14/24] rockchip: rk3288: move board_early_init_f() back to veyron
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (12 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 13/24] rockchip: rk3288: move SOC setting into arch_cpu_init() Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 15/24] rockchip: rk3288: Move veyron_init() back to veyron.c Kever Yang
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

The board_early_init_f() is only used by veyron board now,
move it into the board file veyron.c

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3288-board.c | 19 -------------------
 board/google/veyron/veyron.c          | 20 ++++++++++++++++++++
 2 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index 9d88365fff..e629df3abb 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -243,22 +243,3 @@ U_BOOT_CMD(
 	"display information about clocks",
 	""
 );
-
-int board_early_init_f(void)
-{
-	struct udevice *dev;
-	int ret;
-
-	/*
-	 * This init is done in SPL, but when chain-loading U-Boot SPL will
-	 * have been skipped. Allow the clock driver to check if it needs
-	 * setting up.
-	 */
-	ret = rockchip_get_clk(&dev);
-	if (ret) {
-		debug("CLK init failed: %d\n", ret);
-		return ret;
-	}
-
-	return 0;
-}
diff --git a/board/google/veyron/veyron.c b/board/google/veyron/veyron.c
index 19edb18a66..361f0e9da2 100644
--- a/board/google/veyron/veyron.c
+++ b/board/google/veyron/veyron.c
@@ -4,9 +4,29 @@
  */
 
 #include <common.h>
+#include <asm/arch-rockchip/clock.h>
 
 /*
  * We should increase the DDR voltage to 1.2V using the PWM regulator.
  * There is a U-Boot driver for this but it may need to add support for the
  * 'voltage-table' property.
  */
+
+int board_early_init_f(void)
+{
+	struct udevice *dev;
+	int ret;
+
+	/*
+	 * This init is done in SPL, but when chain-loading U-Boot SPL will
+	 * have been skipped. Allow the clock driver to check if it needs
+	 * setting up.
+	 */
+	ret = rockchip_get_clk(&dev);
+	if (ret) {
+		debug("CLK init failed: %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 15/24] rockchip: rk3288: Move veyron_init() back to veyron.c
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (13 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 14/24] rockchip: rk3288: move board_early_init_f() back to veyron Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 16/24] rockchip: rk3288: Move clock CMD to SoC file Kever Yang
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

The veyron_init() should go to its board file veyron.c,
and the board_early_init_f() could be the right place.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3288-board.c | 65 ---------------------------
 board/google/veyron/veyron.c          | 63 ++++++++++++++++++++++++++
 2 files changed, 63 insertions(+), 65 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index e629df3abb..915f82e8ba 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -15,7 +15,6 @@
 #include <asm/arch-rockchip/pmu_rk3288.h>
 #include <asm/arch-rockchip/boot_mode.h>
 #include <asm/gpio.h>
-#include <dt-bindings/clock/rk3288-cru.h>
 #include <power/regulator.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -70,73 +69,9 @@ int board_late_init(void)
 	return rk_board_late_init();
 }
 
-#if !CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
-static int veyron_init(void)
-{
-	struct udevice *dev;
-	struct clk clk;
-	int ret;
-
-	ret = regulator_get_by_platname("vdd_arm", &dev);
-	if (ret) {
-		debug("Cannot set regulator name\n");
-		return ret;
-	}
-
-	/* Slowly raise to max CPU voltage to prevent overshoot */
-	ret = regulator_set_value(dev, 1200000);
-	if (ret)
-		return ret;
-	udelay(175); /* Must wait for voltage to stabilize, 2mV/us */
-	ret = regulator_set_value(dev, 1400000);
-	if (ret)
-		return ret;
-	udelay(100); /* Must wait for voltage to stabilize, 2mV/us */
-
-	ret = rockchip_get_clk(&clk.dev);
-	if (ret)
-		return ret;
-	clk.id = PLL_APLL;
-	ret = clk_set_rate(&clk, 1800000000);
-	if (IS_ERR_VALUE(ret))
-		return ret;
-
-	ret = regulator_get_by_platname("vcc33_sd", &dev);
-	if (ret) {
-		debug("Cannot get regulator name\n");
-		return ret;
-	}
-
-	ret = regulator_set_value(dev, 3300000);
-	if (ret)
-		return ret;
-
-	ret = regulators_enable_boot_on(false);
-	if (ret) {
-		debug("%s: Cannot enable boot on regulators\n", __func__);
-		return ret;
-	}
-
-	return 0;
-}
-#endif
-
 int board_init(void)
 {
-#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
 	return 0;
-#else
-	int ret;
-
-	/* We do some SoC one time setting here */
-	if (!fdt_node_check_compatible(gd->fdt_blob, 0, "google,veyron")) {
-		ret = veyron_init();
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-#endif
 }
 
 #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
diff --git a/board/google/veyron/veyron.c b/board/google/veyron/veyron.c
index 361f0e9da2..dd2c014c60 100644
--- a/board/google/veyron/veyron.c
+++ b/board/google/veyron/veyron.c
@@ -3,20 +3,82 @@
  * (C) Copyright 2015 Google, Inc
  */
 
+#include <clk.h>
 #include <common.h>
+#include <dm.h>
 #include <asm/arch-rockchip/clock.h>
+#include <dt-bindings/clock/rk3288-cru.h>
+#include <power/regulator.h>
 
 /*
  * We should increase the DDR voltage to 1.2V using the PWM regulator.
  * There is a U-Boot driver for this but it may need to add support for the
  * 'voltage-table' property.
  */
+#ifndef CONFIG_SPL_BUILD
+#if !CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
+static int veyron_init(void)
+{
+	struct udevice *dev;
+	struct clk clk;
+	int ret;
+
+	ret = regulator_get_by_platname("vdd_arm", &dev);
+	if (ret) {
+		debug("Cannot set regulator name\n");
+		return ret;
+	}
+
+	/* Slowly raise to max CPU voltage to prevent overshoot */
+	ret = regulator_set_value(dev, 1200000);
+	if (ret)
+		return ret;
+	udelay(175); /* Must wait for voltage to stabilize, 2mV/us */
+	ret = regulator_set_value(dev, 1400000);
+	if (ret)
+		return ret;
+	udelay(100); /* Must wait for voltage to stabilize, 2mV/us */
+
+	ret = rockchip_get_clk(&clk.dev);
+	if (ret)
+		return ret;
+	clk.id = PLL_APLL;
+	ret = clk_set_rate(&clk, 1800000000);
+	if (IS_ERR_VALUE(ret))
+		return ret;
+
+	ret = regulator_get_by_platname("vcc33_sd", &dev);
+	if (ret) {
+		debug("Cannot get regulator name\n");
+		return ret;
+	}
+
+	ret = regulator_set_value(dev, 3300000);
+	if (ret)
+		return ret;
+
+	ret = regulators_enable_boot_on(false);
+	if (ret) {
+		debug("%s: Cannot enable boot on regulators\n", __func__);
+		return ret;
+	}
+
+	return 0;
+}
+#endif
 
 int board_early_init_f(void)
 {
 	struct udevice *dev;
 	int ret;
 
+#if !CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
+	if (!fdt_node_check_compatible(gd->fdt_blob, 0, "google,veyron")) {
+		ret = veyron_init();
+		if (ret)
+			return ret;
+	}
+#endif
 	/*
 	 * This init is done in SPL, but when chain-loading U-Boot SPL will
 	 * have been skipped. Allow the clock driver to check if it needs
@@ -30,3 +92,4 @@ int board_early_init_f(void)
 
 	return 0;
 }
+#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 16/24] rockchip: rk3288: Move clock CMD to SoC file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (14 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 15/24] rockchip: rk3288: Move veyron_init() back to veyron.c Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 17/24] rockchip: rk3288: Move rk3288_detect_reset_reason to soc file Kever Yang
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Move the do_clock CMD to rk3288.c so that we can re-use
the common board file later.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3288-board.c  | 51 ------------------------
 arch/arm/mach-rockchip/rk3288/rk3288.c | 55 ++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 51 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index 915f82e8ba..1c37038c99 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -127,54 +127,3 @@ int board_usb_cleanup(int index, enum usb_init_type init)
 	return 0;
 }
 #endif
-
-static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc,
-		       char * const argv[])
-{
-	static const struct {
-		char *name;
-		int id;
-	} clks[] = {
-		{ "osc", CLK_OSC },
-		{ "apll", CLK_ARM },
-		{ "dpll", CLK_DDR },
-		{ "cpll", CLK_CODEC },
-		{ "gpll", CLK_GENERAL },
-#ifdef CONFIG_ROCKCHIP_RK3036
-		{ "mpll", CLK_NEW },
-#else
-		{ "npll", CLK_NEW },
-#endif
-	};
-	int ret, i;
-	struct udevice *dev;
-
-	ret = rockchip_get_clk(&dev);
-	if (ret) {
-		printf("clk-uclass not found\n");
-		return 0;
-	}
-
-	for (i = 0; i < ARRAY_SIZE(clks); i++) {
-		struct clk clk;
-		ulong rate;
-
-		clk.id = clks[i].id;
-		ret = clk_request(dev, &clk);
-		if (ret < 0)
-			continue;
-
-		rate = clk_get_rate(&clk);
-		printf("%s: %lu\n", clks[i].name, rate);
-
-		clk_free(&clk);
-	}
-
-	return 0;
-}
-
-U_BOOT_CMD(
-	clock, 2, 1, do_clock,
-	"display information about clocks",
-	""
-);
diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c
index d938d4bff8..98e8610691 100644
--- a/arch/arm/mach-rockchip/rk3288/rk3288.c
+++ b/arch/arm/mach-rockchip/rk3288/rk3288.c
@@ -3,9 +3,13 @@
  * Copyright (c) 2016 Rockchip Electronics Co., Ltd
  */
 #include <common.h>
+#include <dm.h>
+#include <clk.h>
 #include <asm/armv7.h>
 #include <asm/io.h>
 #include <asm/arch-rockchip/bootrom.h>
+#include <asm/arch-rockchip/clock.h>
+#include <asm/arch-rockchip/cru_rk3288.h>
 #include <asm/arch-rockchip/hardware.h>
 #include <asm/arch-rockchip/grf_rk3288.h>
 #include <asm/arch-rockchip/qos_rk3288.h>
@@ -108,3 +112,54 @@ int dram_init_banksize(void)
 	return 0;
 }
 #endif
+
+static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc,
+		       char * const argv[])
+{
+	static const struct {
+		char *name;
+		int id;
+	} clks[] = {
+		{ "osc", CLK_OSC },
+		{ "apll", CLK_ARM },
+		{ "dpll", CLK_DDR },
+		{ "cpll", CLK_CODEC },
+		{ "gpll", CLK_GENERAL },
+#ifdef CONFIG_ROCKCHIP_RK3036
+		{ "mpll", CLK_NEW },
+#else
+		{ "npll", CLK_NEW },
+#endif
+	};
+	int ret, i;
+	struct udevice *dev;
+
+	ret = rockchip_get_clk(&dev);
+	if (ret) {
+		printf("clk-uclass not found\n");
+		return 0;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(clks); i++) {
+		struct clk clk;
+		ulong rate;
+
+		clk.id = clks[i].id;
+		ret = clk_request(dev, &clk);
+		if (ret < 0)
+			continue;
+
+		rate = clk_get_rate(&clk);
+		printf("%s: %lu\n", clks[i].name, rate);
+
+		clk_free(&clk);
+	}
+
+	return 0;
+}
+
+U_BOOT_CMD(
+	clock, 2, 1, do_clock,
+	"display information about clocks",
+	""
+);
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 17/24] rockchip: rk3288: Move rk3288_detect_reset_reason to soc file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (15 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 16/24] rockchip: rk3288: Move clock CMD to SoC file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 18/24] rockchip: rk3288: Migrate to use common board file Kever Yang
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

The rk3288_detect_reset_reason() is per-SoC operation, move
it to rk3288.c, and extend the rk_board_late_init() with
rk3288_board_late_init() to make all the board works fine
as before.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/rk3288-board.c         | 38 --------------
 arch/arm/mach-rockchip/rk3288/rk3288.c        | 49 +++++++++++++++++++
 .../popmetal_rk3288/popmetal-rk3288.c         |  2 +-
 board/phytec/phycore_rk3288/phycore-rk3288.c  |  2 +-
 board/rockchip/tinker_rk3288/tinker-rk3288.c  |  2 +-
 5 files changed, 52 insertions(+), 41 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index 1c37038c99..1f33f25943 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -24,47 +24,9 @@ __weak int rk_board_late_init(void)
 	return 0;
 }
 
-static void rk3288_detect_reset_reason(void)
-{
-	struct rk3288_cru *cru = rockchip_get_cru();
-	const char *reason;
-
-	if (IS_ERR(cru))
-		return;
-
-	switch (cru->cru_glb_rst_st) {
-	case GLB_POR_RST:
-		reason = "POR";
-		break;
-	case FST_GLB_RST_ST:
-	case SND_GLB_RST_ST:
-		reason = "RST";
-		break;
-	case FST_GLB_TSADC_RST_ST:
-	case SND_GLB_TSADC_RST_ST:
-		reason = "THERMAL";
-		break;
-	case FST_GLB_WDT_RST_ST:
-	case SND_GLB_WDT_RST_ST:
-		reason = "WDOG";
-		break;
-	default:
-		reason = "unknown reset";
-	}
-
-	env_set("reset_reason", reason);
-
-	/*
-	 * Clear cru_glb_rst_st, so we can determine the last reset cause
-	 * for following resets.
-	 */
-	rk_clrreg(&cru->cru_glb_rst_st, GLB_RST_ST_MASK);
-}
-
 int board_late_init(void)
 {
 	setup_boot_mode();
-	rk3288_detect_reset_reason();
 
 	return rk_board_late_init();
 }
diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c
index 98e8610691..eae05ac849 100644
--- a/arch/arm/mach-rockchip/rk3288/rk3288.c
+++ b/arch/arm/mach-rockchip/rk3288/rk3288.c
@@ -113,6 +113,55 @@ int dram_init_banksize(void)
 }
 #endif
 
+static void rk3288_detect_reset_reason(void)
+{
+	struct rk3288_cru *cru = rockchip_get_cru();
+	const char *reason;
+
+	if (IS_ERR(cru))
+		return;
+
+	switch (cru->cru_glb_rst_st) {
+	case GLB_POR_RST:
+		reason = "POR";
+		break;
+	case FST_GLB_RST_ST:
+	case SND_GLB_RST_ST:
+		reason = "RST";
+		break;
+	case FST_GLB_TSADC_RST_ST:
+	case SND_GLB_TSADC_RST_ST:
+		reason = "THERMAL";
+		break;
+	case FST_GLB_WDT_RST_ST:
+	case SND_GLB_WDT_RST_ST:
+		reason = "WDOG";
+		break;
+	default:
+		reason = "unknown reset";
+	}
+
+	env_set("reset_reason", reason);
+
+	/*
+	 * Clear cru_glb_rst_st, so we can determine the last reset cause
+	 * for following resets.
+	 */
+	rk_clrreg(&cru->cru_glb_rst_st, GLB_RST_ST_MASK);
+}
+
+__weak int rk3288_board_late_init(void)
+{
+	return 0;
+}
+
+int rk_board_late_init(void)
+{
+	rk3288_detect_reset_reason();
+
+	return rk3288_board_late_init();
+}
+
 static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc,
 		       char * const argv[])
 {
diff --git a/board/chipspark/popmetal_rk3288/popmetal-rk3288.c b/board/chipspark/popmetal_rk3288/popmetal-rk3288.c
index 9ba1fbd0e2..47b921a748 100644
--- a/board/chipspark/popmetal_rk3288/popmetal-rk3288.c
+++ b/board/chipspark/popmetal_rk3288/popmetal-rk3288.c
@@ -8,7 +8,7 @@
 
 #define GPIO7A3_HUB_RST	227
 
-int rk_board_late_init(void)
+int rk3288_board_late_init(void)
 {
 	int ret;
 
diff --git a/board/phytec/phycore_rk3288/phycore-rk3288.c b/board/phytec/phycore_rk3288/phycore-rk3288.c
index fbf1511978..92f3bd25f4 100644
--- a/board/phytec/phycore_rk3288/phycore-rk3288.c
+++ b/board/phytec/phycore_rk3288/phycore-rk3288.c
@@ -30,7 +30,7 @@ static int valid_rk3288_som(struct rk3288_som *som)
 	return hw == som->bs;
 }
 
-int rk_board_late_init(void)
+int rk3288_board_late_init(void)
 {
 	int ret;
 	struct udevice *dev;
diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c
index 44f13183a5..e6b018d89c 100644
--- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
+++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
@@ -21,7 +21,7 @@ static int get_ethaddr_from_eeprom(u8 *addr)
 	return i2c_eeprom_read(dev, 0, addr, 6);
 }
 
-int rk_board_late_init(void)
+int rk3288_board_late_init(void)
 {
 	u8 ethaddr[6];
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 18/24] rockchip: rk3288: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (16 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 17/24] rockchip: rk3288: Move rk3288_detect_reset_reason to soc file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 19/24] rockchip: rk3328: " Kever Yang
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig        |  1 +
 arch/arm/mach-rockchip/Makefile       |  1 -
 arch/arm/mach-rockchip/rk3288-board.c | 91 ---------------------------
 3 files changed, 1 insertion(+), 92 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk3288-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 86b01df8c4..b75c209b66 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -80,6 +80,7 @@ config ROCKCHIP_RK3288
 	select SUPPORT_SPL
 	select SPL
 	select SUPPORT_TPL
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	imply TPL_CLK
 	imply TPL_DM
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index dd7297d3c8..210e80ece2 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -22,7 +22,6 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
-obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
 obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
 obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
 endif
diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
deleted file mode 100644
index 1f33f25943..0000000000
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ /dev/null
@@ -1,91 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2015 Google, Inc
- */
-
-#include <common.h>
-#include <clk.h>
-#include <dm.h>
-#include <ram.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/cru_rk3288.h>
-#include <asm/arch-rockchip/periph.h>
-#include <asm/arch-rockchip/pmu_rk3288.h>
-#include <asm/arch-rockchip/boot_mode.h>
-#include <asm/gpio.h>
-#include <power/regulator.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-__weak int rk_board_late_init(void)
-{
-	return 0;
-}
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-
-	return rk_board_late_init();
-}
-
-int board_init(void)
-{
-	return 0;
-}
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node,
-					"snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 19/24] rockchip: rk3328: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (17 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 18/24] rockchip: rk3288: Migrate to use common board file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-23 19:51   ` Matwey V. Kornilov
  2019-07-22 12:02 ` [U-Boot] [PATCH 20/24] " Kever Yang
                   ` (4 subsequent siblings)
  23 siblings, 1 reply; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig         |  1 +
 board/rockchip/evb_rk3328/evb-rk3328.c | 64 --------------------------
 2 files changed, 1 insertion(+), 64 deletions(-)

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index b75c209b66..2b8bb8aa25 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -110,6 +110,7 @@ config ROCKCHIP_RK3328
 	select ARM64
 	select SUPPORT_SPL
 	select SPL
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	imply SPL_SERIAL_SUPPORT
 	imply SPL_SEPARATE_BSS
diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c
index 64595c783d..779bc646b2 100644
--- a/board/rockchip/evb_rk3328/evb-rk3328.c
+++ b/board/rockchip/evb_rk3328/evb-rk3328.c
@@ -3,67 +3,3 @@
  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
  */
 
-#include <common.h>
-#include <asm/armv8/mmu.h>
-#include <dwc3-uboot.h>
-#include <power/regulator.h>
-#include <usb.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-int board_init(void)
-{
-	int ret;
-
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
-	return ret;
-}
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1,
-					"snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node,
-					"snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 20/24] rockchip: rk3328: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (18 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 19/24] rockchip: rk3328: " Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 21/24] rockchip: rk3399: init vbus regulator in board_early_init_f() Kever Yang
                   ` (3 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig                 |  1 +
 board/rockchip/evb_px5/evb-px5.c               |  6 ------
 board/rockchip/sheep_rk3368/sheep_rk3368.c     | 15 ---------------
 .../lion_rk3368/lion_rk3368.c                  | 18 ------------------
 4 files changed, 1 insertion(+), 39 deletions(-)

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 2b8bb8aa25..90916a382e 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -131,6 +131,7 @@ config ROCKCHIP_RK3368
 	select SUPPORT_TPL
 	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
 	select TPL_NEEDS_SEPARATE_STACK if TPL
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	imply SPL_SEPARATE_BSS
 	imply SPL_SERIAL_SUPPORT
diff --git a/board/rockchip/evb_px5/evb-px5.c b/board/rockchip/evb_px5/evb-px5.c
index 53e753fc17..b81f970883 100644
--- a/board/rockchip/evb_px5/evb-px5.c
+++ b/board/rockchip/evb_px5/evb-px5.c
@@ -2,9 +2,3 @@
 /*
  * Copyright (c) 2017 Andy Yan
  */
-#include <common.h>
-
-int board_init(void)
-{
-	return 0;
-}
diff --git a/board/rockchip/sheep_rk3368/sheep_rk3368.c b/board/rockchip/sheep_rk3368/sheep_rk3368.c
index 9bb93c7d16..b81f970883 100644
--- a/board/rockchip/sheep_rk3368/sheep_rk3368.c
+++ b/board/rockchip/sheep_rk3368/sheep_rk3368.c
@@ -2,18 +2,3 @@
 /*
  * Copyright (c) 2017 Andy Yan
  */
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3368.h>
-#include <syscon.h>
-
-int mach_cpu_init(void)
-{
-	return 0;
-}
-
-int board_init(void)
-{
-	return 0;
-}
diff --git a/board/theobroma-systems/lion_rk3368/lion_rk3368.c b/board/theobroma-systems/lion_rk3368/lion_rk3368.c
index 6cd5a5f18e..1b0d504631 100644
--- a/board/theobroma-systems/lion_rk3368/lion_rk3368.c
+++ b/board/theobroma-systems/lion_rk3368/lion_rk3368.c
@@ -2,21 +2,3 @@
 /*
  * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
  */
-#include <common.h>
-#include <dm.h>
-#include <ram.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3368.h>
-#include <asm/arch-rockchip/timer.h>
-#include <syscon.h>
-
-int mach_cpu_init(void)
-{
-	return 0;
-}
-
-int board_init(void)
-{
-	return 0;
-}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 21/24] rockchip: rk3399: init vbus regulator in board_early_init_f()
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (19 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 20/24] " Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 22/24] rockchip: rk3399: Migrate to use common board file Kever Yang
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Handle per-board init in board_early_init_f() and use the
common board_init() for per-platform board init later.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 board/rockchip/evb_rk3399/evb-rk3399.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
index eb1b832274..c7e93a358d 100644
--- a/board/rockchip/evb_rk3399/evb-rk3399.c
+++ b/board/rockchip/evb_rk3399/evb-rk3399.c
@@ -9,15 +9,12 @@
 #include <asm/arch-rockchip/periph.h>
 #include <power/regulator.h>
 
-int board_init(void)
+#ifndef CONFIG_SPL_BUILD
+int board_early_init_f(void)
 {
 	struct udevice *regulator;
 	int ret;
 
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
 	ret = regulator_get_by_platname("vcc5v0_host", &regulator);
 	if (ret) {
 		debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
@@ -25,11 +22,22 @@ int board_init(void)
 	}
 
 	ret = regulator_set_enable(regulator, true);
-	if (ret) {
-		debug("%s vcc5v0-host-en set fail!\n", __func__);
-		goto out;
-	}
+	if (ret)
+		debug("%s vcc5v0-host-en set fail! ret %d\n", __func__, ret);
 
 out:
 	return 0;
 }
+
+int board_init(void)
+{
+	struct udevice *regulator;
+	int ret;
+
+	ret = regulators_enable_boot_on(false);
+	if (ret)
+		debug("%s: Cannot enable boot on regulator\n", __func__);
+
+	return 0;
+}
+#endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 22/24] rockchip: rk3399: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (20 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 21/24] rockchip: rk3399: init vbus regulator in board_early_init_f() Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 23/24] rockchip: elgin-rv1108: use board_early_init_f for per-boar init Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 24/24] rockchip: rv1108: Migrate to use common board file Kever Yang
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig                    |  1 +
 arch/arm/mach-rockchip/Makefile                   |  1 -
 arch/arm/mach-rockchip/rk3399-board.c             | 13 -------------
 board/rockchip/evb_rk3399/evb-rk3399.c            | 13 -------------
 board/theobroma-systems/puma_rk3399/puma-rk3399.c | 15 ---------------
 board/vamrs/rock960_rk3399/rock960-rk3399.c       | 15 ---------------
 6 files changed, 1 insertion(+), 57 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rk3399-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 90916a382e..4b211794c6 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -177,6 +177,7 @@ config ROCKCHIP_RK3399
 	select DM_PMIC
 	select DM_REGULATOR_FIXED
 	select BOARD_LATE_INIT
+	imply ROCKCHIP_COMMON_BOARD
 	imply SPL_ROCKCHIP_COMMON_BOARD
 	imply TPL_SERIAL_SUPPORT
 	imply TPL_LIBCOMMON_SUPPORT
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index 210e80ece2..ca633afcbb 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -22,7 +22,6 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 
-obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board.o
 obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
 endif
 
diff --git a/arch/arm/mach-rockchip/rk3399-board.c b/arch/arm/mach-rockchip/rk3399-board.c
deleted file mode 100644
index 443c87cccc..0000000000
--- a/arch/arm/mach-rockchip/rk3399-board.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (c) 2017 Rockchip Electronics Co., Ltd
- */
-
-#include <common.h>
-#include <asm/arch-rockchip/boot_mode.h>
-
-int board_late_init(void)
-{
-	setup_boot_mode();
-	return 0;
-}
diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
index c7e93a358d..b9049abcc7 100644
--- a/board/rockchip/evb_rk3399/evb-rk3399.c
+++ b/board/rockchip/evb_rk3399/evb-rk3399.c
@@ -5,7 +5,6 @@
 
 #include <common.h>
 #include <dm.h>
-#include <dm/pinctrl.h>
 #include <asm/arch-rockchip/periph.h>
 #include <power/regulator.h>
 
@@ -28,16 +27,4 @@ int board_early_init_f(void)
 out:
 	return 0;
 }
-
-int board_init(void)
-{
-	struct udevice *regulator;
-	int ret;
-
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
-	return 0;
-}
 #endif
diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
index 251cd2d566..a7e7f022ba 100644
--- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
+++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
@@ -21,21 +21,6 @@
 #include <power/regulator.h>
 #include <u-boot/sha256.h>
 
-int board_init(void)
-{
-	int ret;
-
-	/*
-	 * We need to call into regulators_enable_boot_on() again, as the call
-	 * during SPL may have not included all regulators.
-	 */
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
-	return 0;
-}
-
 static void setup_macaddr(void)
 {
 #if CONFIG_IS_ENABLED(CMD_NET)
diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
index 2eb7120e84..68a127b9ac 100644
--- a/board/vamrs/rock960_rk3399/rock960-rk3399.c
+++ b/board/vamrs/rock960_rk3399/rock960-rk3399.c
@@ -2,18 +2,3 @@
 /*
  * Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  */
-
-#include <common.h>
-#include <dm.h>
-#include <power/regulator.h>
-
-int board_init(void)
-{
-	int ret;
-
-	ret = regulators_enable_boot_on(false);
-	if (ret)
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-
-	return 0;
-}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 23/24] rockchip: elgin-rv1108: use board_early_init_f for per-boar init
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (21 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 22/24] rockchip: rk3399: Migrate to use common board file Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  2019-07-22 12:02 ` [U-Boot] [PATCH 24/24] rockchip: rv1108: Migrate to use common board file Kever Yang
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use board_early_init_f() for per-board init operation and
use board_init() from common board file.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 board/elgin/elgin_rv1108/elgin_rv1108.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/board/elgin/elgin_rv1108/elgin_rv1108.c b/board/elgin/elgin_rv1108/elgin_rv1108.c
index 0de1f4243e..6f33f2ce6f 100644
--- a/board/elgin/elgin_rv1108/elgin_rv1108.c
+++ b/board/elgin/elgin_rv1108/elgin_rv1108.c
@@ -50,11 +50,14 @@ int mach_cpu_init(void)
 
 #define MODEM_ENABLE_GPIO 111
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	gpio_request(MODEM_ENABLE_GPIO, "modem_enable");
 	gpio_direction_output(MODEM_ENABLE_GPIO, 0);
+}
 
+int board_init(void)
+{
 	return 0;
 }
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 24/24] rockchip: rv1108: Migrate to use common board file
  2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
                   ` (22 preceding siblings ...)
  2019-07-22 12:02 ` [U-Boot] [PATCH 23/24] rockchip: elgin-rv1108: use board_early_init_f for per-boar init Kever Yang
@ 2019-07-22 12:02 ` Kever Yang
  23 siblings, 0 replies; 26+ messages in thread
From: Kever Yang @ 2019-07-22 12:02 UTC (permalink / raw)
  To: u-boot

Use common board file for board_init() and board_late_init(),
for Rockchip SoCs have very similar process.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 arch/arm/mach-rockchip/Kconfig          |  1 +
 arch/arm/mach-rockchip/Makefile         |  2 -
 arch/arm/mach-rockchip/rv1108-board.c   | 52 -------------------------
 arch/arm/mach-rockchip/rv1108/rv1108.c  | 10 -----
 board/elgin/elgin_rv1108/elgin_rv1108.c |  5 ---
 board/rockchip/evb_rv1108/evb_rv1108.c  |  6 ---
 6 files changed, 1 insertion(+), 75 deletions(-)
 delete mode 100644 arch/arm/mach-rockchip/rv1108-board.c

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 4b211794c6..e337d06b99 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -203,6 +203,7 @@ config ROCKCHIP_RK3399
 config ROCKCHIP_RV1108
 	bool "Support Rockchip RV1108"
 	select CPU_V7A
+	imply ROCKCHIP_COMMON_BOARD
 	help
 	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
 	  and a DSP.
diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
index ca633afcbb..aed379a0dc 100644
--- a/arch/arm/mach-rockchip/Makefile
+++ b/arch/arm/mach-rockchip/Makefile
@@ -21,8 +21,6 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 # meaning "turn it off".
 obj-y += boot_mode.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
-
-obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108-board.o
 endif
 
 obj-$(CONFIG_$(SPL_TPL_)RAM) += sdram_common.o
diff --git a/arch/arm/mach-rockchip/rv1108-board.c b/arch/arm/mach-rockchip/rv1108-board.c
deleted file mode 100644
index 3c683cb8ac..0000000000
--- a/arch/arm/mach-rockchip/rv1108-board.c
+++ /dev/null
@@ -1,52 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2015 Google, Inc
- */
-
-#include <common.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
-#include <usb.h>
-#include <usb/dwc2_udc.h>
-
-static struct dwc2_plat_otg_data otg_data = {
-	.rx_fifo_sz	= 512,
-	.np_tx_fifo_sz	= 16,
-	.tx_fifo_sz	= 128,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	int node;
-	const char *mode;
-	bool matched = false;
-	const void *blob = gd->fdt_blob;
-
-	/* find the usb_otg node */
-	node = fdt_node_offset_by_compatible(blob, -1, "snps,dwc2");
-
-	while (node > 0) {
-		mode = fdt_getprop(blob, node, "dr_mode", NULL);
-		if (mode && strcmp(mode, "otg") == 0) {
-			matched = true;
-			break;
-		}
-
-		node = fdt_node_offset_by_compatible(blob, node, "snps,dwc2");
-	}
-	if (!matched) {
-		debug("Not found usb_otg device\n");
-		return -ENODEV;
-	}
-	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
-
-	return dwc2_udc_probe(&otg_data);
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	return 0;
-}
-#endif
diff --git a/arch/arm/mach-rockchip/rv1108/rv1108.c b/arch/arm/mach-rockchip/rv1108/rv1108.c
index 66aeb3ffcc..6362af995b 100644
--- a/arch/arm/mach-rockchip/rv1108/rv1108.c
+++ b/arch/arm/mach-rockchip/rv1108/rv1108.c
@@ -3,13 +3,3 @@
  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
  * Author: Andy Yan <andy.yan@rock-chips.com>
  */
-
-#include <common.h>
-
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-void enable_caches(void)
-{
-	/* Enable D-cache. I-cache is already enabled in start.S */
-	dcache_enable();
-}
-#endif
diff --git a/board/elgin/elgin_rv1108/elgin_rv1108.c b/board/elgin/elgin_rv1108/elgin_rv1108.c
index 6f33f2ce6f..2087bffeb9 100644
--- a/board/elgin/elgin_rv1108/elgin_rv1108.c
+++ b/board/elgin/elgin_rv1108/elgin_rv1108.c
@@ -56,11 +56,6 @@ int board_early_init_f(void)
 	gpio_direction_output(MODEM_ENABLE_GPIO, 0);
 }
 
-int board_init(void)
-{
-	return 0;
-}
-
 int dram_init(void)
 {
 	gd->ram_size = 0x8000000;
diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
index 6d934f8805..733f29376e 100644
--- a/board/rockchip/evb_rv1108/evb_rv1108.c
+++ b/board/rockchip/evb_rv1108/evb_rv1108.c
@@ -47,12 +47,6 @@ int mach_cpu_init(void)
 	return 0;
 }
 
-
-int board_init(void)
-{
-	return 0;
-}
-
 int dram_init(void)
 {
 	gd->ram_size = 0x8000000;
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [U-Boot] [PATCH 19/24] rockchip: rk3328: Migrate to use common board file
  2019-07-22 12:02 ` [U-Boot] [PATCH 19/24] rockchip: rk3328: " Kever Yang
@ 2019-07-23 19:51   ` Matwey V. Kornilov
  0 siblings, 0 replies; 26+ messages in thread
From: Matwey V. Kornilov @ 2019-07-23 19:51 UTC (permalink / raw)
  To: u-boot

22.07.2019 15:02, Kever Yang пишет:
> Use common board file for board_init() and board_late_init(),
> for Rockchip SoCs have very similar process.
> 
> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>

Tested-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>

Hi,

I've just checked that rock64-rk3328_defconfig is still bootable with
this series.

> ---
> 
>  arch/arm/mach-rockchip/Kconfig         |  1 +
>  board/rockchip/evb_rk3328/evb-rk3328.c | 64 --------------------------
>  2 files changed, 1 insertion(+), 64 deletions(-)
> 
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index b75c209b66..2b8bb8aa25 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -110,6 +110,7 @@ config ROCKCHIP_RK3328
>  	select ARM64
>  	select SUPPORT_SPL
>  	select SPL
> +	imply ROCKCHIP_COMMON_BOARD
>  	imply SPL_ROCKCHIP_COMMON_BOARD
>  	imply SPL_SERIAL_SUPPORT
>  	imply SPL_SEPARATE_BSS
> diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c
> index 64595c783d..779bc646b2 100644
> --- a/board/rockchip/evb_rk3328/evb-rk3328.c
> +++ b/board/rockchip/evb_rk3328/evb-rk3328.c
> @@ -3,67 +3,3 @@
>   * (C) Copyright 2016 Rockchip Electronics Co., Ltd
>   */
>  
> -#include <common.h>
> -#include <asm/armv8/mmu.h>
> -#include <dwc3-uboot.h>
> -#include <power/regulator.h>
> -#include <usb.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -int board_init(void)
> -{
> -	int ret;
> -
> -	ret = regulators_enable_boot_on(false);
> -	if (ret)
> -		debug("%s: Cannot enable boot on regulator\n", __func__);
> -
> -	return ret;
> -}
> -
> -#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
> -#include <usb.h>
> -#include <usb/dwc2_udc.h>
> -
> -static struct dwc2_plat_otg_data otg_data = {
> -	.rx_fifo_sz	= 512,
> -	.np_tx_fifo_sz	= 16,
> -	.tx_fifo_sz	= 128,
> -};
> -
> -int board_usb_init(int index, enum usb_init_type init)
> -{
> -	int node;
> -	const char *mode;
> -	bool matched = false;
> -	const void *blob = gd->fdt_blob;
> -
> -	/* find the usb_otg node */
> -	node = fdt_node_offset_by_compatible(blob, -1,
> -					"snps,dwc2");
> -
> -	while (node > 0) {
> -		mode = fdt_getprop(blob, node, "dr_mode", NULL);
> -		if (mode && strcmp(mode, "otg") == 0) {
> -			matched = true;
> -			break;
> -		}
> -
> -		node = fdt_node_offset_by_compatible(blob, node,
> -					"snps,dwc2");
> -	}
> -	if (!matched) {
> -		debug("Not found usb_otg device\n");
> -		return -ENODEV;
> -	}
> -	otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
> -
> -	return dwc2_udc_probe(&otg_data);
> -}
> -
> -int board_usb_cleanup(int index, enum usb_init_type init)
> -{
> -	return 0;
> -}
> -#endif
> 

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2019-07-23 19:51 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-22 12:01 [U-Boot] [PATCH 00/24] rockchip: Migrate to use common board file Kever Yang
2019-07-22 12:01 ` [U-Boot] [PATCH 01/24] rockchip: rk3328: add board_debug_uart_init() Kever Yang
2019-07-22 12:01 ` [U-Boot] [PATCH 02/24] rockchip: convert to use ROCKCHIP_BOOT_MODE_REG for fastboot tag Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 03/24] rockchip: clean up board_usb_init() for all SoCs Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 04/24] rockchip: add common board file for U-Boot proper Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 05/24] rockchip: sdram_common: add common dram_init_banksize Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 06/24] rockchip: rk3036: move dram_init() into soc file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 07/24] rockchip: rk3036: Migrate to use common board file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 08/24] rockchip: rk3128: " Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 09/24] rockchip: rk322x: move SoC setting into arch_cpu_init() Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 10/24] rockchip: rk322x: Migrate to use common board file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 11/24] rockchip: rk3188: Move SoC one time setting into arch_cpu_init() Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 12/24] rockchip: rk3188: Migrate to use common board file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 13/24] rockchip: rk3288: move SOC setting into arch_cpu_init() Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 14/24] rockchip: rk3288: move board_early_init_f() back to veyron Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 15/24] rockchip: rk3288: Move veyron_init() back to veyron.c Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 16/24] rockchip: rk3288: Move clock CMD to SoC file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 17/24] rockchip: rk3288: Move rk3288_detect_reset_reason to soc file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 18/24] rockchip: rk3288: Migrate to use common board file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 19/24] rockchip: rk3328: " Kever Yang
2019-07-23 19:51   ` Matwey V. Kornilov
2019-07-22 12:02 ` [U-Boot] [PATCH 20/24] " Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 21/24] rockchip: rk3399: init vbus regulator in board_early_init_f() Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 22/24] rockchip: rk3399: Migrate to use common board file Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 23/24] rockchip: elgin-rv1108: use board_early_init_f for per-boar init Kever Yang
2019-07-22 12:02 ` [U-Boot] [PATCH 24/24] rockchip: rv1108: Migrate to use common board file Kever Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.