]> xenbits.xensource.com Git - people/liuw/freebsd.git/commitdiff
Make if_macb work with FDT.
authorcognet <cognet@FreeBSD.org>
Thu, 5 Nov 2015 22:03:42 +0000 (22:03 +0000)
committercognet <cognet@FreeBSD.org>
Thu, 5 Nov 2015 22:03:42 +0000 (22:03 +0000)
sys/arm/at91/if_macb.c

index a7acc31d43990a5bcd9fee84d994c09968137236..6ad167ccb680432bf2fea2b06c0274d25c8291db 100644 (file)
@@ -24,6 +24,8 @@
  * SUCH DAMAGE.
  */
 
+#include "opt_platform.h"
+
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
@@ -72,6 +74,12 @@ __FBSDID("$FreeBSD$");
 #include <machine/bus.h>
 #include <machine/intr.h>
 
+#ifdef FDT
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#endif
+
 /* "device miibus" required.  See GENERIC if you get errors here. */
 #include "miibus_if.h"
 
@@ -1196,6 +1204,11 @@ macbioctl(struct ifnet * ifp, u_long cmd, caddr_t data)
 static int
 macb_probe(device_t dev)
 {
+#ifdef FDT
+        if (!ofw_bus_is_compatible(dev, "cdns,at32ap7000-macb"))
+                return (ENXIO);
+#endif
+
        device_set_desc(dev, "macb");
        return (0);
 }
@@ -1546,7 +1559,11 @@ static driver_t macb_driver = {
 };
 
 
+#ifdef FDT
+DRIVER_MODULE(macb, simplebus, macb_driver, macb_devclass, NULL, NULL);
+#else
 DRIVER_MODULE(macb, atmelarm, macb_driver, macb_devclass, 0, 0);
+#endif
 DRIVER_MODULE(miibus, macb, miibus_driver, miibus_devclass, 0, 0);
 MODULE_DEPEND(macb, miibus, 1, 1, 1);
 MODULE_DEPEND(macb, ether, 1, 1, 1);