[PATCH] Nokia RX-51: Convert to CONFIG_DM_MMC

Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP and CONFIG_DM_DEVICE_REMOVE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org --- board/nokia/rx51/rx51.c | 32 ++++++++++++++++---------------- configs/nokia_rx51_defconfig | 4 ++++ 2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index 2dd41604c9..7390e5be65 100644 --- a/board/nokia/rx51/rx51.c +++ b/board/nokia/rx51/rx51.c @@ -415,6 +415,8 @@ int misc_init_r(void)
/* initialize twl4030 power managment */ twl4030_power_init(); + twl4030_power_mmc_init(0); + twl4030_power_mmc_init(1);
/* set VSIM to 1.8V */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VSIM_DEDICATED, @@ -686,22 +688,18 @@ int rx51_kp_getc(struct stdio_dev *sdev) return keybuf[keybuf_head++]; }
-/* - * Routine: board_mmc_init - * Description: Initialize mmc devices. - */ -int board_mmc_init(struct bd_info *bis) -{ - omap_mmc_init(0, 0, 0, -1, -1); - omap_mmc_init(1, 0, 0, -1, -1); - return 0; -} +static const struct mmc_config rx51_mmc_cfg = { + .host_caps = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS, + .f_min = 400000, + .f_max = 52000000, + .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT, + .voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195, +};
-void board_mmc_power_init(void) -{ - twl4030_power_mmc_init(0); - twl4030_power_mmc_init(1); -} +static const struct omap_hsmmc_plat rx51_mmc[] = { + { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC1_BASE }, + { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC2_BASE }, +};
static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE1, 100000, OMAP_I2C_REV_V1 }, @@ -709,7 +707,9 @@ static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE3, 100000, OMAP_I2C_REV_V1 }, };
-U_BOOT_DEVICES(rx51_i2c) = { +U_BOOT_DEVICES(rx51) = { + { "omap_hsmmc", &rx51_mmc[0] }, + { "omap_hsmmc", &rx51_mmc[1] }, { "i2c_omap", &rx51_i2c[0] }, { "i2c_omap", &rx51_i2c[1] }, { "i2c_omap", &rx51_i2c[2] }, diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index 6310a12aaa..0f05fe6fc3 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set

Hi Pali,
[...snip...]
+++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set
I am not able to apply this hunk. Is there any dependency on this patch?
Thanks and regards, Lokesh

On Tuesday 22 December 2020 19:26:21 Lokesh Vutla wrote:
Hi Pali,
[...snip...]
+++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set
I am not able to apply this hunk. Is there any dependency on this patch?
Hello! In this git branch are applied all patches in the correct order: https://github.com/pali/u-boot/commits/nokia-rx51
So this patch has dependency on "Nokia RX-51: Decrease i2c speed to 100000" patch.
Thanks and regards, Lokesh

On 22/12/20 7:30 pm, Pali Rohár wrote:
On Tuesday 22 December 2020 19:26:21 Lokesh Vutla wrote:
Hi Pali,
[...snip...]
+++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set
I am not able to apply this hunk. Is there any dependency on this patch?
Hello! In this git branch are applied all patches in the correct order: https://github.com/pali/u-boot/commits/nokia-rx51
One of the patch caused Gitlab pipeline failure. Can you check https://pastebin.ubuntu.com/p/fjQKyBYQdj/?
So this patch has dependency on "Nokia RX-51: Decrease i2c speed to 100000" patch.
Thanks and regards, Lokesh

On Tuesday 22 December 2020 20:20:26 Lokesh Vutla wrote:
On 22/12/20 7:30 pm, Pali Rohár wrote:
On Tuesday 22 December 2020 19:26:21 Lokesh Vutla wrote:
Hi Pali,
[...snip...]
+++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set
I am not able to apply this hunk. Is there any dependency on this patch?
Hello! In this git branch are applied all patches in the correct order: https://github.com/pali/u-boot/commits/nokia-rx51
One of the patch caused Gitlab pipeline failure. Can you check https://pastebin.ubuntu.com/p/fjQKyBYQdj/?
Have you used patches in the correct order?
Because I put my above branch to github testing pipeline and all tests passed. See results:
https://github.com/u-boot/u-boot/pull/40 https://travis-ci.org/github/u-boot/u-boot/builds/746775905 https://github.com/u-boot/u-boot/runs/1474847620
So this patch has dependency on "Nokia RX-51: Decrease i2c speed to 100000" patch.
Thanks and regards, Lokesh

On 22/11/20 4:03 am, Pali Rohár wrote:
Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP and CONFIG_DM_DEVICE_REMOVE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org
board/nokia/rx51/rx51.c | 32 ++++++++++++++++---------------- configs/nokia_rx51_defconfig | 4 ++++ 2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index 2dd41604c9..7390e5be65 100644 --- a/board/nokia/rx51/rx51.c +++ b/board/nokia/rx51/rx51.c @@ -415,6 +415,8 @@ int misc_init_r(void)
/* initialize twl4030 power managment */ twl4030_power_init();
twl4030_power_mmc_init(0);
twl4030_power_mmc_init(1);
/* set VSIM to 1.8V */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VSIM_DEDICATED,
@@ -686,22 +688,18 @@ int rx51_kp_getc(struct stdio_dev *sdev) return keybuf[keybuf_head++]; }
-/*
- Routine: board_mmc_init
- Description: Initialize mmc devices.
- */
-int board_mmc_init(struct bd_info *bis) -{
- omap_mmc_init(0, 0, 0, -1, -1);
- omap_mmc_init(1, 0, 0, -1, -1);
- return 0;
-} +static const struct mmc_config rx51_mmc_cfg = {
- .host_caps = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS,
- .f_min = 400000,
- .f_max = 52000000,
- .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT,
- .voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195,
+};
-void board_mmc_power_init(void) -{
- twl4030_power_mmc_init(0);
- twl4030_power_mmc_init(1);
-} +static const struct omap_hsmmc_plat rx51_mmc[] = {
- { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC1_BASE },
- { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC2_BASE },
+};
static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE1, 100000, OMAP_I2C_REV_V1 }, @@ -709,7 +707,9 @@ static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE3, 100000, OMAP_I2C_REV_V1 }, };
-U_BOOT_DEVICES(rx51_i2c) = { +U_BOOT_DEVICES(rx51) = {
- { "omap_hsmmc", &rx51_mmc[0] },
- { "omap_hsmmc", &rx51_mmc[1] }, { "i2c_omap", &rx51_i2c[0] }, { "i2c_omap", &rx51_i2c[1] }, { "i2c_omap", &rx51_i2c[2] },
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index 6310a12aaa..0f05fe6fc3 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set
As you suggested disabled MMC_VERBOSE and applied to u-boot-ti/for-next branch.
Thanks and regards, Lokesh

Hi Pali,
On 22/11/20 4:03 am, Pali Rohár wrote:
Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP and CONFIG_DM_DEVICE_REMOVE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org
board/nokia/rx51/rx51.c | 32 ++++++++++++++++---------------- configs/nokia_rx51_defconfig | 4 ++++ 2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index 2dd41604c9..7390e5be65 100644 --- a/board/nokia/rx51/rx51.c +++ b/board/nokia/rx51/rx51.c @@ -415,6 +415,8 @@ int misc_init_r(void)
/* initialize twl4030 power managment */ twl4030_power_init();
twl4030_power_mmc_init(0);
twl4030_power_mmc_init(1);
/* set VSIM to 1.8V */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VSIM_DEDICATED,
@@ -686,22 +688,18 @@ int rx51_kp_getc(struct stdio_dev *sdev) return keybuf[keybuf_head++]; }
-/*
- Routine: board_mmc_init
- Description: Initialize mmc devices.
- */
-int board_mmc_init(struct bd_info *bis) -{
- omap_mmc_init(0, 0, 0, -1, -1);
- omap_mmc_init(1, 0, 0, -1, -1);
- return 0;
-} +static const struct mmc_config rx51_mmc_cfg = {
- .host_caps = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS,
- .f_min = 400000,
- .f_max = 52000000,
- .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT,
- .voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195,
+};
-void board_mmc_power_init(void) -{
- twl4030_power_mmc_init(0);
- twl4030_power_mmc_init(1);
-} +static const struct omap_hsmmc_plat rx51_mmc[] = {
- { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC1_BASE },
- { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC2_BASE },
+};
static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE1, 100000, OMAP_I2C_REV_V1 }, @@ -709,7 +707,9 @@ static const struct omap_i2c_platdata rx51_i2c[] = { { I2C_BASE3, 100000, OMAP_I2C_REV_V1 }, };
-U_BOOT_DEVICES(rx51_i2c) = { +U_BOOT_DEVICES(rx51) = {
Tom has raised few questions on this when sending the PR, can you please clarify?
Thanks and regards, Lokesh
- { "omap_hsmmc", &rx51_mmc[0] },
- { "omap_hsmmc", &rx51_mmc[1] }, { "i2c_omap", &rx51_i2c[0] }, { "i2c_omap", &rx51_i2c[1] }, { "i2c_omap", &rx51_i2c[2] },
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index 6310a12aaa..0f05fe6fc3 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_SAVEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_FLASH is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y @@ -62,3 +63,6 @@ CONFIG_SPLASH_SCREEN=y # CONFIG_GZIP is not set CONFIG_DM=y CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_SYS_MALLOC_F is not set

Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP CONFIG_DM_DEVICE_REMOVE CONFIG_MMC_VERBOSE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org
--- Changes in v2: * Disable also CONFIG_MMC_VERBOSE * Put mmc definition into separate U_BOOT_DRVINFOS --- board/nokia/rx51/rx51.c | 33 ++++++++++++++++++--------------- configs/nokia_rx51_defconfig | 5 +++++ 2 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index ceb4317901..84739ae129 100644 --- a/board/nokia/rx51/rx51.c +++ b/board/nokia/rx51/rx51.c @@ -415,6 +415,8 @@ int misc_init_r(void)
/* initialize twl4030 power managment */ twl4030_power_init(); + twl4030_power_mmc_init(0); + twl4030_power_mmc_init(1);
/* set VSIM to 1.8V */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VSIM_DEDICATED, @@ -686,22 +688,23 @@ int rx51_kp_getc(struct stdio_dev *sdev) return keybuf[keybuf_head++]; }
-/* - * Routine: board_mmc_init - * Description: Initialize mmc devices. - */ -int board_mmc_init(struct bd_info *bis) -{ - omap_mmc_init(0, 0, 0, -1, -1); - omap_mmc_init(1, 0, 0, -1, -1); - return 0; -} +static const struct mmc_config rx51_mmc_cfg = { + .host_caps = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS, + .f_min = 400000, + .f_max = 52000000, + .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT, + .voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195, +};
-void board_mmc_power_init(void) -{ - twl4030_power_mmc_init(0); - twl4030_power_mmc_init(1); -} +static const struct omap_hsmmc_plat rx51_mmc[] = { + { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC1_BASE }, + { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC2_BASE }, +}; + +U_BOOT_DRVINFOS(rx51_mmc) = { + { "omap_hsmmc", &rx51_mmc[0] }, + { "omap_hsmmc", &rx51_mmc[1] }, +};
static const struct omap_i2c_plat rx51_i2c[] = { { I2C_BASE1, 100000, OMAP_I2C_REV_V1 }, diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index 30a02e2bc3..3b782715c7 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -4,6 +4,7 @@ CONFIG_ARCH_OMAP2PLUS=y CONFIG_SYS_TEXT_BASE=0x80008000 CONFIG_NR_DRAM_BANKS=2 CONFIG_TARGET_NOKIA_RX51=y +# CONFIG_SYS_MALLOC_F is not set # CONFIG_TI_SYSC is not set # CONFIG_FIT is not set CONFIG_BOOTDELAY=30 @@ -36,6 +37,7 @@ CONFIG_CMD_MMC=y CONFIG_CMD_MTD=y CONFIG_CMD_ONENAND=y # CONFIG_CMD_SETEXPR is not set +# CONFIG_CMD_SLEEP is not set CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y CONFIG_CMD_FAT=y @@ -45,9 +47,12 @@ CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y # CONFIG_NET is not set CONFIG_DM=y +# CONFIG_DM_DEVICE_REMOVE is not set CONFIG_DM_I2C=y CONFIG_TWL4030_LED=y +CONFIG_DM_MMC=y # CONFIG_MMC_HW_PARTITIONING is not set +# CONFIG_MMC_VERBOSE is not set CONFIG_MMC_OMAP_HS=y CONFIG_MTD=y CONFIG_CONS_INDEX=3

On Sat, Jan 16, 2021 at 01:04:54AM +0100, Pali Rohár wrote:
Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP CONFIG_DM_DEVICE_REMOVE CONFIG_MMC_VERBOSE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org
Reviewed-by: Tom Rini trini@konsulko.com

On 16/01/21 9:51 pm, Tom Rini wrote:
On Sat, Jan 16, 2021 at 01:04:54AM +0100, Pali Rohár wrote:
Move twl4030_power_mmc_init() from board_mmc_power_init() to misc_init_r() and disable CONFIG_SYS_MALLOC_F. Otherwise U-Boot cannot initialize MMC. Also disable CONFIG_CMD_SLEEP CONFIG_DM_DEVICE_REMOVE CONFIG_MMC_VERBOSE to free some space.
Signed-off-by: Pali Rohár pali@kernel.org
Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot-ti/for-rc branch.
Thanks and regards, Lokesh
participants (3)
-
Lokesh Vutla
-
Pali Rohár
-
Tom Rini