Index: sys/arm/ti/aintc.c =================================================================== --- sys/arm/ti/aintc.c +++ sys/arm/ti/aintc.c @@ -158,6 +158,7 @@ EARLY_DRIVER_MODULE(aintc, simplebus, ti_aintc_driver, ti_aintc_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); +SIMPLEBUS_PNP_INFO(compat_data); int arm_get_next_irq(int last_irq) Index: sys/arm/ti/am335x/am335x_dmtimer.c =================================================================== --- sys/arm/ti/am335x/am335x_dmtimer.c +++ sys/arm/ti/am335x/am335x_dmtimer.c @@ -327,6 +327,7 @@ DRIVER_MODULE(am335x_dmtimer, simplebus, am335x_dmtimer_driver, am335x_dmtimer_devclass, 0, 0); MODULE_DEPEND(am335x_dmtimer, am335x_prcm, 1, 1, 1); +SIMPLEBUS_PNP_INFO(compat_data); void DELAY(int usec) Index: sys/arm/ti/am335x/am335x_dmtpps.c =================================================================== --- sys/arm/ti/am335x/am335x_dmtpps.c +++ sys/arm/ti/am335x/am335x_dmtpps.c @@ -546,4 +546,4 @@ DRIVER_MODULE(am335x_dmtpps, simplebus, dmtpps_driver, dmtpps_devclass, 0, 0); MODULE_DEPEND(am335x_dmtpps, am335x_prcm, 1, 1, 1); - +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/am335x/am335x_gpio.c =================================================================== --- sys/arm/ti/am335x/am335x_gpio.c +++ sys/arm/ti/am335x/am335x_gpio.c @@ -157,3 +157,4 @@ sizeof(struct ti_gpio_softc), ti_gpio_driver); DRIVER_MODULE(am335x_gpio, simplebus, am335x_gpio_driver, am335x_gpio_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/omap4/omap4_gpio.c =================================================================== --- sys/arm/ti/omap4/omap4_gpio.c +++ sys/arm/ti/omap4/omap4_gpio.c @@ -147,3 +147,4 @@ sizeof(struct ti_gpio_softc), ti_gpio_driver); DRIVER_MODULE(omap4_gpio, simplebus, omap4_gpio_driver, omap4_gpio_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/omap4/omap4_prcm_clks.c =================================================================== --- sys/arm/ti/omap4/omap4_prcm_clks.c +++ sys/arm/ti/omap4/omap4_prcm_clks.c @@ -1494,3 +1494,4 @@ EARLY_DRIVER_MODULE(omap4_prcm, simplebus, omap4_prcm_driver, omap4_prcm_devclass, 0, 0, BUS_PASS_TIMER + BUS_PASS_ORDER_EARLY); MODULE_VERSION(omap4_prcm, 1); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_adc.c =================================================================== --- sys/arm/ti/ti_adc.c +++ sys/arm/ti/ti_adc.c @@ -64,6 +64,11 @@ static int ti_adc_samples[5] = { 0, 2, 4, 8, 16 }; +static struct ofw_compat_data compat_data[] = { + {"ti,am3359-tscadc", 1}, + {NULL, 0}, +}; + static void ti_adc_enable(struct ti_adc_softc *sc) { @@ -467,7 +472,7 @@ ti_adc_probe(device_t dev) { - if (!ofw_bus_is_compatible(dev, "ti,am3359-tscadc")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); device_set_desc(dev, "TI ADC controller"); @@ -592,3 +597,4 @@ DRIVER_MODULE(ti_adc, simplebus, ti_adc_driver, ti_adc_devclass, 0, 0); MODULE_VERSION(ti_adc, 1); MODULE_DEPEND(ti_adc, simplebus, 1, 1, 1); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_edma3.c =================================================================== --- sys/arm/ti/ti_edma3.c +++ sys/arm/ti/ti_edma3.c @@ -138,6 +138,11 @@ { ti_edma3_intr_err, "EDMA Error Interrupt" }, }; +static struct ofw_compat_data compat_data[] = { + {"ti,edma3", 0}, + {NULL, 0}, +}; + static int ti_edma3_probe(device_t dev) { @@ -145,7 +150,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "ti,edma3")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); device_set_desc(dev, "TI EDMA Controller"); @@ -218,6 +223,7 @@ DRIVER_MODULE(ti_edma3, simplebus, ti_edma3_driver, ti_edma3_devclass, 0, 0); MODULE_DEPEND(ti_edma3, ti_prcm, 1, 1, 1); +SIMPLEBUS_PNP_INFO(compat_data); static void ti_edma3_intr_comp(void *arg) Index: sys/arm/ti/ti_i2c.c =================================================================== --- sys/arm/ti/ti_i2c.c +++ sys/arm/ti/ti_i2c.c @@ -140,6 +140,11 @@ }; #endif +static struct ofw_compat_data compat_data[] = { + {"ti,omap4-i2c", 0}, + {NULL, 0}, +}; + /** * Locking macros used throughout the driver */ @@ -812,7 +817,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "ti,omap4-i2c")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); device_set_desc(dev, "TI I2C Controller"); @@ -986,3 +991,4 @@ MODULE_DEPEND(ti_iic, ti_prcm, 1, 1, 1); MODULE_DEPEND(ti_iic, iicbus, 1, 1, 1); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_mbox.c =================================================================== --- sys/arm/ti/ti_mbox.c +++ sys/arm/ti/ti_mbox.c @@ -100,7 +100,13 @@ static devclass_t ti_mbox_devclass; +static struct ofw_compat_data compat_data[] = { + {"ti,omap4-mailbox", 1}, + {NULL, 0}, +}; + DRIVER_MODULE(ti_mbox, simplebus, ti_mbox_driver, ti_mbox_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); static __inline uint32_t ti_mbox_reg_read(struct ti_mbox_softc *sc, uint16_t reg) @@ -121,7 +127,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (ofw_bus_is_compatible(dev, "ti,omap4-mailbox")) { + if (ofw_bus_compatible_lookup(dev, compat_data)) { device_set_desc(dev, "TI System Mailbox"); return (BUS_PROBE_DEFAULT); } Index: sys/arm/ti/ti_pinmux.c =================================================================== --- sys/arm/ti/ti_pinmux.c +++ sys/arm/ti/ti_pinmux.c @@ -69,6 +69,11 @@ { -1, 0 } }; +static struct ofw_compat_data compat_data[] = { + {"pinctrl-single", 1}, + {NULL, 0}, +}; + static struct ti_pinmux_softc *ti_pinmux_sc; #define ti_pinmux_read_2(sc, reg) \ @@ -376,7 +381,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "pinctrl-single")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); if (ti_pinmux_sc) { @@ -443,3 +448,4 @@ static devclass_t ti_pinmux_devclass; DRIVER_MODULE(ti_pinmux, simplebus, ti_pinmux_driver, ti_pinmux_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_pruss.c =================================================================== --- sys/arm/ti/ti_pruss.c +++ sys/arm/ti/ti_pruss.c @@ -107,7 +107,14 @@ static devclass_t ti_pruss_devclass; +static struct ofw_compat_data compat_data[] = { + {"ti,pruss-v1", 0}, + {"ti,pruss-v2", 0}, + {NULL, 0}, +}; + DRIVER_MODULE(ti_pruss, simplebus, ti_pruss_driver, ti_pruss_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); static struct resource_spec ti_pruss_irq_spec[] = { { SYS_RES_IRQ, 0, RF_ACTIVE }, @@ -146,8 +153,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (ofw_bus_is_compatible(dev, "ti,pruss-v1") || - ofw_bus_is_compatible(dev, "ti,pruss-v2")) { + if (ofw_bus_compatible_lookup(dev, compat_data)) { device_set_desc(dev, "TI Programmable Realtime Unit Subsystem"); return (BUS_PROBE_DEFAULT); } Index: sys/arm/ti/ti_scm.c =================================================================== --- sys/arm/ti/ti_scm.c +++ sys/arm/ti/ti_scm.c @@ -78,6 +78,11 @@ static struct ti_scm_softc *ti_scm_sc; +static struct ofw_compat_data compat_data[] = { + {"syscon", 0}, + {NULL, 0}, +}; + #define ti_scm_read_4(sc, reg) \ bus_space_read_4((sc)->sc_bst, (sc)->sc_bsh, (reg)) #define ti_scm_write_4(sc, reg, val) \ @@ -92,7 +97,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "syscon")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); if (ti_scm_sc) { @@ -171,3 +176,4 @@ static devclass_t ti_scm_devclass; DRIVER_MODULE(ti_scm, simplebus, ti_scm_driver, ti_scm_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_sdhci.c =================================================================== --- sys/arm/ti/ti_sdhci.c +++ sys/arm/ti/ti_sdhci.c @@ -722,3 +722,4 @@ DRIVER_MODULE(sdhci_ti, simplebus, ti_sdhci_driver, ti_sdhci_devclass, 0, 0); MODULE_DEPEND(sdhci_ti, sdhci, 1, 1, 1); DRIVER_MODULE(mmc, sdhci_ti, mmc_driver, mmc_devclass, NULL, NULL); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_sdma.c =================================================================== --- sys/arm/ti/ti_sdma.c +++ sys/arm/ti/ti_sdma.c @@ -128,6 +128,11 @@ }; +static struct ofw_compat_data compat_data[] = { + {"ti,omap4430-sdma", 1}, + {NULL, 0}, +}; + static struct ti_sdma_softc *ti_sdma_sc = NULL; /** @@ -1131,7 +1136,7 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "ti,omap4430-sdma")) + if (!ofw_bus_compatible_lookup(dev, compat_data)) return (ENXIO); device_set_desc(dev, "TI sDMA Controller"); @@ -1248,3 +1253,4 @@ DRIVER_MODULE(ti_sdma, simplebus, ti_sdma_driver, ti_sdma_devclass, 0, 0); MODULE_DEPEND(ti_sdma, ti_prcm, 1, 1, 1); +SIMPLEBUS_PNP_INFO(compat_data); Index: sys/arm/ti/ti_wdt.c =================================================================== --- sys/arm/ti/ti_wdt.c +++ sys/arm/ti/ti_wdt.c @@ -92,7 +92,13 @@ static devclass_t ti_wdt_devclass; +static struct ofw_compat_data compat_data[] = { + {"ti,omap3-wdt", 0}, + {NULL, 0}, +}; + DRIVER_MODULE(ti_wdt, simplebus, ti_wdt_driver, ti_wdt_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); static __inline uint32_t ti_wdt_reg_read(struct ti_wdt_softc *sc, uint32_t reg) @@ -147,7 +153,8 @@ if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (ofw_bus_is_compatible(dev, "ti,omap3-wdt")) { + + if (ofw_bus_compatible_lookup(dev, compat_data)) { device_set_desc(dev, "TI Watchdog Timer"); return (BUS_PROBE_DEFAULT); }