Lines Matching refs:dev

53 #include <dev/extres/clk/clk.h>
54 #include <dev/extres/hwreset/hwreset.h>
55 #include <dev/gpio/gpiobusvar.h>
56 #include <dev/mmc/bridge.h>
57 #include <dev/mmc/mmcbrvar.h>
58 #include <dev/ofw/ofw_bus.h>
59 #include <dev/ofw/ofw_bus_subr.h>
60 #include <dev/sdhci/sdhci.h>
61 #include <dev/sdhci/sdhci_fdt_gpio.h>
100 device_t dev;
125 tegra_sdhci_read_1(device_t dev, struct sdhci_slot *slot, bus_size_t off)
129 sc = device_get_softc(dev);
134 tegra_sdhci_read_2(device_t dev, struct sdhci_slot *slot, bus_size_t off)
138 sc = device_get_softc(dev);
143 tegra_sdhci_read_4(device_t dev, struct sdhci_slot *slot, bus_size_t off)
148 sc = device_get_softc(dev);
157 tegra_sdhci_read_multi_4(device_t dev, struct sdhci_slot *slot, bus_size_t off,
162 sc = device_get_softc(dev);
167 tegra_sdhci_write_1(device_t dev, struct sdhci_slot *slot, bus_size_t off,
172 sc = device_get_softc(dev);
177 tegra_sdhci_write_2(device_t dev, struct sdhci_slot *slot, bus_size_t off,
182 sc = device_get_softc(dev);
187 tegra_sdhci_write_4(device_t dev, struct sdhci_slot *slot, bus_size_t off,
192 sc = device_get_softc(dev);
197 tegra_sdhci_write_multi_4(device_t dev, struct sdhci_slot *slot, bus_size_t off,
202 sc = device_get_softc(dev);
224 tegra_sdhci_get_card_present(device_t dev, struct sdhci_slot *slot)
226 struct tegra_sdhci_softc *sc = device_get_softc(dev);
232 tegra_sdhci_probe(device_t dev)
239 sc = device_get_softc(dev);
240 if (!ofw_bus_status_okay(dev))
243 if (ofw_bus_is_compatible(dev, "nvidia,tegra124-sdhci")) {
244 device_set_desc(dev, "Tegra SDHCI controller");
247 cd = ofw_bus_search_compatible(dev, compat_data);
251 node = ofw_bus_get_node(dev);
263 tegra_sdhci_attach(device_t dev)
270 sc = device_get_softc(dev);
271 sc->dev = dev;
272 node = ofw_bus_get_node(dev);
275 sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
278 device_printf(dev, "cannot allocate memory window\n");
284 sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
287 device_printf(dev, "cannot allocate interrupt\n");
292 if (bus_setup_intr(dev, sc->irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
294 device_printf(dev, "cannot setup interrupt handler\n");
299 rv = hwreset_get_by_ofw_name(sc->dev, 0, "sdhci", &sc->reset);
301 device_printf(sc->dev, "Cannot get 'sdhci' reset\n");
306 device_printf(dev, "Cannot unreset 'sdhci' reset\n");
310 gpio_pin_get_by_ofw_property(sc->dev, node, "power-gpios", &sc->gpio_power);
312 rv = clk_get_by_ofw_index(dev, 0, 0, &sc->clk);
315 device_printf(dev, "Cannot get clock\n");
319 rv = clk_get_by_ofw_index(dev, 0, 0, &sc->clk);
321 device_printf(dev, "Cannot get clock\n");
326 device_printf(dev, "Cannot enable clock\n");
331 device_printf(dev, "Cannot set clock\n");
335 device_printf(dev, "Cannot get clock frequency\n");
339 device_printf(dev, " Base MMC clock: %lld\n", freq);
361 device_printf(dev, "Bad bus-width value %u\n", prop);
377 rv = sdhci_init_slot(dev, &sc->slot, 0);
382 sc->gpio = sdhci_fdt_gpio_setup(sc->dev, &sc->slot);
384 bus_generic_probe(dev);
385 bus_generic_attach(dev);
395 bus_teardown_intr(dev, sc->irq_res, sc->intr_cookie);
403 bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res);
405 bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res);
411 tegra_sdhci_detach(device_t dev)
413 struct tegra_sdhci_softc *sc = device_get_softc(dev);
416 bus_generic_detach(dev);
419 bus_teardown_intr(dev, sc->irq_res, sc->intr_cookie);
420 bus_release_resource(dev, SYS_RES_IRQ, rman_get_rid(sc->irq_res),
424 bus_release_resource(dev, SYS_RES_MEMORY,