Skip to content

Commit 996d341

Browse files
committed
ayufan: rock64: add board_init_sdmmc_pwr_en to configure iomux in SPL mode
1 parent 05a8e06 commit 996d341

File tree

4 files changed

+41
-1
lines changed

4 files changed

+41
-1
lines changed

arch/arm/mach-rockchip/rk3328-board-spl.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,46 @@
1818
#include <asm/arch/periph.h>
1919
#include <asm/arch/timer.h>
2020

21+
#define GRF_BASE 0xFF100000
22+
2123
DECLARE_GLOBAL_DATA_PTR;
2224

2325
void board_debug_uart_init(void)
2426
{
2527
}
2628

29+
void board_init_sdmmc_pwr_en(void)
30+
{
31+
struct rk3328_grf_regs * const grf = (void *)GRF_BASE;
32+
33+
printf("board_init_sdmmc_pwr_en\n");
34+
35+
/* uart2 select m1, sdcard select m1*/
36+
rk_clrsetreg(&grf->com_iomux,
37+
IOMUX_SEL_UART2_MASK | IOMUX_SEL_SDMMC_MASK,
38+
IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT |
39+
IOMUX_SEL_SDMMC_M1 << IOMUX_SEL_SDMMC_SHIFT);
40+
41+
u32 com_iomux = readl(&grf->com_iomux);
42+
43+
if (com_iomux & IOMUX_SEL_SDMMC_MASK) {
44+
rk_clrsetreg(&grf->gpio0d_iomux,
45+
GPIO0D6_SEL_MASK,
46+
GPIO0D6_GPIO << GPIO0D6_SEL_SHIFT);
47+
printf("GPIO0D6_GPIO\n");
48+
} else {
49+
rk_clrsetreg(&grf->gpio2a_iomux,
50+
GPIO2A7_SEL_MASK,
51+
GPIO2A7_GPIO << GPIO2A7_SEL_SHIFT);
52+
printf("GPIO2A7_GPIO\n");
53+
}
54+
rk_clrsetreg(&grf->gpio1a_iomux,
55+
GPIO1A0_SEL_MASK,
56+
GPIO1A0_CARD_DATA_CLK_CMD_DETN
57+
<< GPIO1A0_SEL_SHIFT);
58+
printf("GPIO1A0_CARD_DATA_CLK_CMD_DETN\n");
59+
}
60+
2761
void board_init_f(ulong dummy)
2862
{
2963
struct udevice *dev;
@@ -36,6 +70,7 @@ void board_init_f(ulong dummy)
3670
}
3771

3872
preloader_console_init();
73+
board_init_sdmmc_pwr_en();
3974

4075
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
4176
if (ret) {

arch/arm/mach-rockchip/rk3328/rk3328.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ int board_init(void)
9696
#define GRF_BASE 0xff100000
9797
struct rk3328_grf_regs * const grf = (void *)GRF_BASE;
9898

99+
printf("board_init\n");
100+
99101
/* uart2 select m1, sdcard select m1*/
100102
rk_clrsetreg(&grf->com_iomux,
101103
IOMUX_SEL_UART2_MASK | IOMUX_SEL_SDMMC_MASK,
102104
IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT |
103-
IOMUX_SEL_SDMMC_M1 << IOMUX_SEL_SDMMC_SHIFT);
105+
IOMUX_SEL_SDMMC_M0 << IOMUX_SEL_SDMMC_SHIFT);
104106

105107
ret = regulators_enable_boot_on(false);
106108
if (ret)

dev-ayufan/rockchip.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ loader-boot: $(UBOOT_LOADERS) $(UBOOT_TPL) $(UBOOT_SPL)
88
./dev-make loader-download-mode
99
rkdeveloptool rid
1010
dd if=/dev/zero of=$(UBOOT_OUTPUT_DIR)/clear.img count=1
11+
sleep 3s
1112
rkdeveloptool wl 64 $(UBOOT_OUTPUT_DIR)/clear.img
1213
rkdeveloptool wl 512 $(UBOOT_OUTPUT_DIR)/u-boot.itb
1314

drivers/pinctrl/rockchip/pinctrl_rk3328.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ static void pinctrl_rk3328_sdmmc_config(struct rk3328_grf_regs *grf,
166166
{
167167
u32 com_iomux = readl(&grf->com_iomux);
168168

169+
printf("pinctrl_rk3328_sdmmc_config\n");
169170
switch (mmc_id) {
170171
case PERIPH_ID_EMMC:
171172
rk_clrsetreg(&grf->gpio0a_iomux,
@@ -180,6 +181,7 @@ static void pinctrl_rk3328_sdmmc_config(struct rk3328_grf_regs *grf,
180181
<< GPIO3C0_SEL_SHIFT);
181182
break;
182183
case PERIPH_ID_SDCARD:
184+
printf("PERIPH_ID_SDCARD\n");
183185
/* SDMMC_PWREN use GPIO and init as regulator-fiexed */
184186
if (com_iomux & IOMUX_SEL_SDMMC_MASK)
185187
rk_clrsetreg(&grf->gpio0d_iomux,

0 commit comments

Comments
 (0)