diff options
| author | Emmanuel Vadot <manu@FreeBSD.org> | 2020-04-14 16:35:18 +0000 |
|---|---|---|
| committer | Emmanuel Vadot <manu@FreeBSD.org> | 2020-04-14 16:35:18 +0000 |
| commit | a1af70e58ba5e89b5449947b168769125981dec2 (patch) | |
| tree | 7dfcd80845b6e5a85319e98a6eed9c4a491596fd /sys/dev/mmc | |
| parent | b89af8e16db66225520b80a277fe02ede951ab70 (diff) | |
Notes
Diffstat (limited to 'sys/dev/mmc')
| -rw-r--r-- | sys/dev/mmc/host/dwmmc.c | 26 | ||||
| -rw-r--r-- | sys/dev/mmc/host/dwmmc_altera.c | 1 | ||||
| -rw-r--r-- | sys/dev/mmc/host/dwmmc_hisi.c | 1 | ||||
| -rw-r--r-- | sys/dev/mmc/host/dwmmc_rockchip.c | 1 | ||||
| -rw-r--r-- | sys/dev/mmc/host/dwmmc_samsung.c | 1 | ||||
| -rw-r--r-- | sys/dev/mmc/host/dwmmc_var.h | 1 |
6 files changed, 13 insertions, 18 deletions
diff --git a/sys/dev/mmc/host/dwmmc.c b/sys/dev/mmc/host/dwmmc.c index 76ac61d94776b..c3922d08c1dd9 100644 --- a/sys/dev/mmc/host/dwmmc.c +++ b/sys/dev/mmc/host/dwmmc.c @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include <dev/mmc/bridge.h> #include <dev/mmc/mmcbrvar.h> +#include <dev/mmc/mmc_fdt_helpers.h> #include <dev/fdt/fdt_common.h> #include <dev/ofw/openfirm.h> @@ -446,7 +447,6 @@ dwmmc_card_task(void *arg, int pending __unused) } } else DWMMC_UNLOCK(sc); - } else { /* Card isn't present, detach if necessary */ if (sc->child != NULL) { @@ -466,7 +466,7 @@ parse_fdt(struct dwmmc_softc *sc) { pcell_t dts_value[3]; phandle_t node; - uint32_t bus_hz = 0, bus_width; + uint32_t bus_hz = 0; int len; #ifdef EXT_RESOURCES int error; @@ -475,17 +475,12 @@ parse_fdt(struct dwmmc_softc *sc) if ((node = ofw_bus_get_node(sc->dev)) == -1) return (ENXIO); - /* bus-width */ - if (OF_getencprop(node, "bus-width", &bus_width, sizeof(uint32_t)) <= 0) - bus_width = 4; - if (bus_width >= 4) - sc->host.caps |= MMC_CAP_4_BIT_DATA; - if (bus_width >= 8) - sc->host.caps |= MMC_CAP_8_BIT_DATA; - - /* max-frequency */ - if (OF_getencprop(node, "max-frequency", &sc->host.f_max, sizeof(uint32_t)) <= 0) - sc->host.f_max = 200000000; + /* Set some defaults for freq and supported mode */ + sc->host.f_min = 400000; + sc->host.f_max = 200000000; + sc->host.host_ocr = MMC_OCR_320_330 | MMC_OCR_330_340; + sc->host.caps = MMC_CAP_HSPEED | MMC_CAP_SIGNALING_330; + mmc_fdt_parse(sc->dev, node, &sc->mmc_helper, &sc->host); /* fifo-depth */ if ((len = OF_getproplen(node, "fifo-depth")) > 0) { @@ -722,11 +717,6 @@ dwmmc_attach(device_t dev) SDMMC_INTMASK_CD)); WRITE4(sc, SDMMC_CTRL, SDMMC_CTRL_INT_ENABLE); - sc->host.f_min = 400000; - sc->host.host_ocr = MMC_OCR_320_330 | MMC_OCR_330_340; - sc->host.caps |= MMC_CAP_HSPEED; - sc->host.caps |= MMC_CAP_SIGNALING_330; - TASK_INIT(&sc->card_task, 0, dwmmc_card_task, sc); TIMEOUT_TASK_INIT(taskqueue_swi_giant, &sc->card_delayed_task, 0, dwmmc_card_task, sc); diff --git a/sys/dev/mmc/host/dwmmc_altera.c b/sys/dev/mmc/host/dwmmc_altera.c index 016d9330895c1..54c227254ff42 100644 --- a/sys/dev/mmc/host/dwmmc_altera.c +++ b/sys/dev/mmc/host/dwmmc_altera.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include <machine/bus.h> #include <dev/mmc/bridge.h> +#include <dev/mmc/mmc_fdt_helpers.h> #include <dev/ofw/ofw_bus_subr.h> diff --git a/sys/dev/mmc/host/dwmmc_hisi.c b/sys/dev/mmc/host/dwmmc_hisi.c index 5f08fb937b456..5d6a95cfdd372 100644 --- a/sys/dev/mmc/host/dwmmc_hisi.c +++ b/sys/dev/mmc/host/dwmmc_hisi.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include <machine/bus.h> #include <dev/mmc/bridge.h> +#include <dev/mmc/mmc_fdt_helpers.h> #include <dev/ofw/ofw_bus_subr.h> diff --git a/sys/dev/mmc/host/dwmmc_rockchip.c b/sys/dev/mmc/host/dwmmc_rockchip.c index 273f9d7031789..25baffb267e36 100644 --- a/sys/dev/mmc/host/dwmmc_rockchip.c +++ b/sys/dev/mmc/host/dwmmc_rockchip.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include <machine/bus.h> #include <dev/mmc/bridge.h> +#include <dev/mmc/mmc_fdt_helpers.h> #include <dev/ofw/ofw_bus_subr.h> diff --git a/sys/dev/mmc/host/dwmmc_samsung.c b/sys/dev/mmc/host/dwmmc_samsung.c index 9f2137a5c74e4..4443cda587368 100644 --- a/sys/dev/mmc/host/dwmmc_samsung.c +++ b/sys/dev/mmc/host/dwmmc_samsung.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include <machine/bus.h> #include <dev/mmc/bridge.h> +#include <dev/mmc/mmc_fdt_helpers.h> #include <dev/ofw/ofw_bus.h> #include <dev/ofw/ofw_bus_subr.h> diff --git a/sys/dev/mmc/host/dwmmc_var.h b/sys/dev/mmc/host/dwmmc_var.h index c586ffb554570..a9a77223f9e11 100644 --- a/sys/dev/mmc/host/dwmmc_var.h +++ b/sys/dev/mmc/host/dwmmc_var.h @@ -52,6 +52,7 @@ struct dwmmc_softc { device_t dev; void *intr_cookie; struct mmc_host host; + struct mmc_fdt_helper mmc_helper; struct mtx sc_mtx; struct mmc_request *req; struct mmc_command *curcmd; |
