diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-05 13:57:11 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-06 09:55:31 +0100 |
commit | c30fa94277cfdf2c8a7e0a6206d31a506453a491 (patch) | |
tree | fb60f2031c114a398485344dca016ff26af4612a /rtemsbsd/sys/dev/dw_mmc | |
parent | tests: Fix configuration dependencies (diff) | |
download | rtems-libbsd-c30fa94277cfdf2c8a7e0a6206d31a506453a491.tar.bz2 |
Add device tree support for Altera/Intel Cyclone V
Close #3290.
Diffstat (limited to 'rtemsbsd/sys/dev/dw_mmc')
-rw-r--r-- | rtemsbsd/sys/dev/dw_mmc/dw_mmc.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/rtemsbsd/sys/dev/dw_mmc/dw_mmc.c b/rtemsbsd/sys/dev/dw_mmc/dw_mmc.c index c493dca7..c4e3130b 100644 --- a/rtemsbsd/sys/dev/dw_mmc/dw_mmc.c +++ b/rtemsbsd/sys/dev/dw_mmc/dw_mmc.c @@ -51,6 +51,10 @@ #include <machine/cpufunc.h> #include <machine/resource.h> +#include <dev/ofw/openfirm.h> +#include <dev/ofw/ofw_bus.h> +#include <dev/ofw/ofw_bus_subr.h> + #include <dev/dw_mmc/dw_mmcreg.h> #include <dev/mmc/bridge.h> @@ -222,10 +226,21 @@ dw_mmc_fini(struct dw_mmc_softc *sc) WR4(sc, DW_MMC_CTRL, DW_MMC_CTRL_FIFO_RESET | DW_MMC_CTRL_RESET); } +static struct ofw_compat_data compat_data[] = { + {"altr,socfpga-dw-mshc", 1}, + {NULL, 0}, +}; + static int dw_mmc_probe(device_t dev) { + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) + return (ENXIO); + device_set_desc(dev, "DesignWare Mobile Storage Host"); return (0); } @@ -1102,6 +1117,6 @@ static driver_t dw_mmc_driver = { static devclass_t dw_mmc_devclass; -DRIVER_MODULE(dw_mmc, nexus, dw_mmc_driver, dw_mmc_devclass, NULL, NULL); +DRIVER_MODULE(dw_mmc, simplebus, dw_mmc_driver, dw_mmc_devclass, NULL, NULL); DRIVER_MODULE(mmc, dw_mmc, mmc_driver, mmc_devclass, NULL, NULL); MODULE_DEPEND(dw_mmc, mmc, 1, 1, 1); |