diff options
| author | Max Merchel <[email protected]> | 2026-03-23 14:47:38 +0100 |
|---|---|---|
| committer | Fabio Estevam <[email protected]> | 2026-04-02 09:05:46 -0300 |
| commit | e9b935a8ade266b0190cf077c48d5970077060f8 (patch) | |
| tree | 39a95c56b671194d7672c4a45d72d03b43fb68fc /board | |
| parent | c7626d61a5a4ff9e8d75426705d8f38d1a1287dc (diff) | |
board/tq: Add common mmc API
Reduce code duplication by adding a default implementation
Signed-off-by: Max Merchel <[email protected]>
Diffstat (limited to 'board')
| -rw-r--r-- | board/tq/common/Kconfig | 3 | ||||
| -rw-r--r-- | board/tq/common/Makefile | 1 | ||||
| -rw-r--r-- | board/tq/common/tq_sdmmc.c | 46 |
3 files changed, 50 insertions, 0 deletions
diff --git a/board/tq/common/Kconfig b/board/tq/common/Kconfig index a4a1d17bb9c..a1896929ea3 100644 --- a/board/tq/common/Kconfig +++ b/board/tq/common/Kconfig @@ -8,3 +8,6 @@ config TQ_COMMON_BB bool default y + +config TQ_COMMON_SDMMC + bool diff --git a/board/tq/common/Makefile b/board/tq/common/Makefile index b643321fcb0..ac564a713fd 100644 --- a/board/tq/common/Makefile +++ b/board/tq/common/Makefile @@ -6,3 +6,4 @@ # obj-$(CONFIG_TQ_COMMON_BB) += tq_bb.o +obj-$(CONFIG_TQ_COMMON_SDMMC) += tq_sdmmc.o diff --git a/board/tq/common/tq_sdmmc.c b/board/tq/common/tq_sdmmc.c new file mode 100644 index 00000000000..b7336faa0c7 --- /dev/null +++ b/board/tq/common/tq_sdmmc.c @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2016 Freescale Semiconductor, Inc. + * Copyright (C) 2018-2026 TQ-Systems GmbH <[email protected]>, + * D-82229 Seefeld, Germany. + */ + +#include <command.h> +#include <env.h> +#include <mmc.h> +#include <stdbool.h> +#include <vsprintf.h> +#include <asm/arch/sys_proto.h> +#include <asm/io.h> +#include <linux/errno.h> + +#include "tq_bb.h" + +static int check_mmc_autodetect(void) +{ + /* NO or unset: 0 / YES: 1 */ + return (env_get_yesno("mmcautodetect") > 0); +} + +/* This should be defined for each board */ +__weak int mmc_map_to_kernel_blk(int dev_no) +{ + return dev_no; +} + +void board_late_mmc_env_init(void) +{ + char cmd[32]; + u32 dev_no; + + dev_no = mmc_get_env_dev(); + + if (!check_mmc_autodetect()) + return; + + env_set_ulong("mmcdev", dev_no); + env_set_ulong("mmcblkdev", mmc_map_to_kernel_blk(dev_no)); + + snprintf(cmd, ARRAY_SIZE(cmd), "mmc dev %d", dev_no); + run_command(cmd, 0); +} |
