[U-Boot] [PATCH 11/18] dm: test: Add a test for the mmc uclass

Simon Glass sjg at chromium.org
Mon Jul 6 20:54:32 CEST 2015


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 at chromium.org>
---

 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 c884aeb..3b4ce2e5 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -183,6 +183,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 2e4a0a7..159f6e0 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -47,3 +47,4 @@ CONFIG_CLK=y
 CONFIG_PINCTRL=y
 CONFIG_RESET=y
 CONFIG_RAM=y
+CONFIG_DM_MMC=y
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
index 83e1ff3..753353e 100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -32,6 +32,7 @@ obj-$(CONFIG_ROCKCHIP_MMC) += rockchip_mmc.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 0000000..f4646a8
--- /dev/null
+++ b/drivers/mmc/sandbox_mmc.c
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2015 Google, Inc
+ * Written by Simon Glass <sjg at 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,
+};
diff --git a/test/dm/Makefile b/test/dm/Makefile
index f649486..2238a0f 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_PINCTRL) += pinctrl.o
 obj-$(CONFIG_RAM) += ram.o
diff --git a/test/dm/mmc.c b/test/dm/mmc.c
new file mode 100644
index 0000000..0461423
--- /dev/null
+++ b/test/dm/mmc.c
@@ -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);
-- 
2.4.3.573.g4eafbef



More information about the U-Boot mailing list