diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-02-13 16:24:24 (GMT) |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-02-22 23:37:56 (GMT) |
commit | e5957e8d6974971d8da722ab62b062d9551adab8 (patch) | |
tree | 3f69f34b0544fc1b967d3d25ba1926a96dd28a01 /arch/arm/mach-uniphier/mmc-first-dev.c | |
parent | 5c8c6da1329f6afae318e70de97b32369ea53135 (diff) | |
download | u-boot-fsl-qoriq-e5957e8d6974971d8da722ab62b062d9551adab8.tar.xz |
ARM: uniphier: move MMC code to a separate file
Currently, arch/arm/mach-uniphier/boot-mode/boot-mode.c is messed up
with unrelated code; there is no reason why the "mmcsetn" command
must be placed in this file.
Split out the MMC code into arch/arm/mach-uniphier/mmc-first-dev.c.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'arch/arm/mach-uniphier/mmc-first-dev.c')
-rw-r--r-- | arch/arm/mach-uniphier/mmc-first-dev.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/arm/mach-uniphier/mmc-first-dev.c b/arch/arm/mach-uniphier/mmc-first-dev.c new file mode 100644 index 0000000..8c45229 --- /dev/null +++ b/arch/arm/mach-uniphier/mmc-first-dev.c @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2016 Socionext Inc. + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <mmc.h> +#include <linux/errno.h> + +static int find_first_mmc_device(void) +{ + struct mmc *mmc; + int i; + + for (i = 0; (mmc = find_mmc_device(i)); i++) { + if (!mmc_init(mmc) && IS_MMC(mmc)) + return i; + } + + return -ENODEV; +} + +int mmc_get_env_dev(void) +{ + return find_first_mmc_device(); +} + +static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + int dev; + + dev = find_first_mmc_device(); + if (dev < 0) + return CMD_RET_FAILURE; + + setenv_ulong("mmc_first_dev", dev); + return CMD_RET_SUCCESS; +} + +U_BOOT_CMD( + mmcsetn, 1, 1, do_mmcsetn, + "Set the first MMC (not SD) dev number to \"mmc_first_dev\" environment", + "" +); |