From 8e6cc46178f9eecada860f7a8f14672e6a94c2de Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 6 Jul 2015 12:54:32 -0600 Subject: [PATCH] dm: test: Add a test for the mmc uclass Add a test to confirm that we can probe this device. Since there is no MMC stack support in sandbox at present, this is as far as the test goes. Signed-off-by: Simon Glass --- arch/sandbox/dts/test.dts | 4 ++++ configs/sandbox_defconfig | 1 + drivers/mmc/Makefile | 1 + drivers/mmc/sandbox_mmc.c | 25 +++++++++++++++++++++++++ test/dm/Makefile | 1 + test/dm/mmc.c | 27 +++++++++++++++++++++++++++ 6 files changed, 59 insertions(+) create mode 100644 drivers/mmc/sandbox_mmc.c create mode 100644 test/dm/mmc.c diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index cdc2a7b2ef..2077e851a6 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -180,6 +180,10 @@ }; }; + mmc { + compatible = "sandbox,mmc"; + }; + pci: pci-controller { compatible = "sandbox,pci"; device_type = "pci"; diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index 99dc00f30c..a6e8d6eee0 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -48,3 +48,4 @@ CONFIG_UT_ENV=y CONFIG_CLK=y CONFIG_RESET=y CONFIG_RAM=y +CONFIG_DM_MMC=y diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 2680c6342b..286df2fc7d 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o obj-$(CONFIG_S3C_SDI) += s3c_sdi.o obj-$(CONFIG_S5P_SDHCI) += s5p_sdhci.o +obj-$(CONFIG_SANDBOX) += sandbox_mmc.o obj-$(CONFIG_SDHCI) += sdhci.o obj-$(CONFIG_SH_MMCIF) += sh_mmcif.o obj-$(CONFIG_SH_SDHI) += sh_sdhi.o diff --git a/drivers/mmc/sandbox_mmc.c b/drivers/mmc/sandbox_mmc.c new file mode 100644 index 0000000000..f4646a824f --- /dev/null +++ b/drivers/mmc/sandbox_mmc.c @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2015 Google, Inc + * Written by Simon Glass + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +static const struct udevice_id sandbox_mmc_ids[] = { + { .compatible = "sandbox,mmc" }, + { } +}; + +U_BOOT_DRIVER(warm_mmc_sandbox) = { + .name = "mmc_sandbox", + .id = UCLASS_MMC, + .of_match = sandbox_mmc_ids, +}; diff --git a/test/dm/Makefile b/test/dm/Makefile index f6a955cfaf..54046d31a1 100644 --- a/test/dm/Makefile +++ b/test/dm/Makefile @@ -19,6 +19,7 @@ obj-$(CONFIG_CLK) += clk.o obj-$(CONFIG_DM_ETH) += eth.o obj-$(CONFIG_DM_GPIO) += gpio.o obj-$(CONFIG_DM_I2C) += i2c.o +obj-$(CONFIG_DM_MMC) += mmc.o obj-$(CONFIG_DM_PCI) += pci.o obj-$(CONFIG_RAM) += ram.o obj-$(CONFIG_RESET) += reset.o diff --git a/test/dm/mmc.c b/test/dm/mmc.c new file mode 100644 index 0000000000..046142322d --- /dev/null +++ b/test/dm/mmc.c @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2015 Google, Inc + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +/* + * Basic test of the mmc uclass. We could expand this by implementing an MMC + * stack for sandbox, or at least implementing the basic operation. + */ +static int dm_test_mmc_base(struct unit_test_state *uts) +{ + struct udevice *dev; + + ut_assertok(uclass_get_device(UCLASS_MMC, 0, &dev)); + + return 0; +} +DM_TEST(dm_test_mmc_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); -- 2.25.1