dm: test: Add a test for the mmc uclass
authorSimon Glass <sjg@chromium.org>
Mon, 6 Jul 2015 18:54:32 +0000 (12:54 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 21 Jul 2015 23:39:32 +0000 (17:39 -0600)
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 <sjg@chromium.org>
arch/sandbox/dts/test.dts
configs/sandbox_defconfig
drivers/mmc/Makefile
drivers/mmc/sandbox_mmc.c [new file with mode: 0644]
test/dm/Makefile
test/dm/mmc.c [new file with mode: 0644]

index cdc2a7b2ef3237c29fa36b78df9d72e759c54e62..2077e851a6336d4be4cb35743de2c2efe9722b83 100644 (file)
                };
        };
 
+       mmc {
+               compatible = "sandbox,mmc";
+       };
+
        pci: pci-controller {
                compatible = "sandbox,pci";
                device_type = "pci";
index 99dc00f30ce9db431653e0d27a4dbb81419c79c9..a6e8d6eee03bb83389f88a882642973f24ecd029 100644 (file)
@@ -48,3 +48,4 @@ CONFIG_UT_ENV=y
 CONFIG_CLK=y
 CONFIG_RESET=y
 CONFIG_RAM=y
+CONFIG_DM_MMC=y
index 2680c6342b1308a325c42187e05e9d79c4115a67..286df2fc7d360f1e615dddaab8c04a62014fbbbb 100644 (file)
@@ -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 (file)
index 0000000..f4646a8
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2015 Google, Inc
+ * Written by Simon Glass <sjg@chromium.org>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <errno.h>
+#include <mmc.h>
+#include <asm/test.h>
+
+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,
+};
index f6a955cfafce1810e28e760d236bff05ac0d1074..54046d31a1171f5357b70f287a94d550f0111fe8 100644 (file)
@@ -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 (file)
index 0000000..0461423
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 Google, Inc
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <mmc.h>
+#include <dm/test.h>
+#include <test/ut.h>
+
+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);