aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2014-08-14 04:21:25 +0000
committerWarner Losh <imp@FreeBSD.org>2014-08-14 04:21:25 +0000
commit9a6e86e109b4ca6e296be9d3c6398d5162dc7911 (patch)
treedf985bc88c4b2655df19b7e9832cbdee38cee4bc
parent66f2388712c5cbe5cc4bc26e28b2b74d4d158708 (diff)
downloadsrc-9a6e86e109b4ca6e296be9d3c6398d5162dc7911.tar.gz
src-9a6e86e109b4ca6e296be9d3c6398d5162dc7911.zip
Add support for multipass to Atmel, for both FDT and !FDT cases.
Notes
Notes: svn path=/head/; revision=269959
-rw-r--r--sys/arm/arm/nexus.c1
-rw-r--r--sys/arm/at91/at91_aic.c12
-rw-r--r--sys/arm/at91/at91_pit.c8
-rw-r--r--sys/arm/at91/at91_pmc.c8
-rw-r--r--sys/arm/at91/std.atmel2
5 files changed, 14 insertions, 17 deletions
diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c
index a66fc3e0135b..c38848628318 100644
--- a/sys/arm/arm/nexus.c
+++ b/sys/arm/arm/nexus.c
@@ -362,4 +362,3 @@ nexus_ofw_map_intr(device_t dev, device_t child, phandle_t iparent, int icells,
return (interrupt);
}
#endif
-
diff --git a/sys/arm/at91/at91_aic.c b/sys/arm/at91/at91_aic.c
index 0f1556c6fe57..f7489de2c4b4 100644
--- a/sys/arm/at91/at91_aic.c
+++ b/sys/arm/at91/at91_aic.c
@@ -176,13 +176,9 @@ static driver_t at91_aic_driver = {
static devclass_t at91_aic_devclass;
#ifdef FDT
-DRIVER_MODULE(at91_aic, simplebus, at91_aic_driver, at91_aic_devclass, NULL,
- NULL);
-#else
-DRIVER_MODULE(at91_aic, atmelarm, at91_aic_driver, at91_aic_devclass, NULL,
- NULL);
-#endif
-/* not yet
EARLY_DRIVER_MODULE(at91_aic, simplebus, at91_aic_driver, at91_aic_devclass,
NULL, NULL, BUS_PASS_INTERRUPT);
-*/
+#else
+EARLY_DRIVER_MODULE(at91_aic, atmelarm, at91_aic_driver, at91_aic_devclass,
+ NULL, NULL, BUS_PASS_INTERRUPT);
+#endif
diff --git a/sys/arm/at91/at91_pit.c b/sys/arm/at91/at91_pit.c
index 944c75ea2f9a..a4b58ebc3295 100644
--- a/sys/arm/at91/at91_pit.c
+++ b/sys/arm/at91/at91_pit.c
@@ -214,9 +214,9 @@ static driver_t at91_pit_driver = {
static devclass_t at91_pit_devclass;
#ifdef FDT
-DRIVER_MODULE(at91_pit, simplebus, at91_pit_driver, at91_pit_devclass, NULL,
- NULL);
+EARLY_DRIVER_MODULE(at91_pit, simplebus, at91_pit_driver, at91_pit_devclass,
+ NULL, NULL, BUS_PASS_TIMER);
#else
-DRIVER_MODULE(at91_pit, atmelarm, at91_pit_driver, at91_pit_devclass, NULL,
- NULL);
+EARLY_DRIVER_MODULE(at91_pit, atmelarm, at91_pit_driver, at91_pit_devclass,
+ NULL, NULL, BUS_PASS_TIMER);
#endif
diff --git a/sys/arm/at91/at91_pmc.c b/sys/arm/at91/at91_pmc.c
index 904709b36dbc..13d5ff7f7479 100644
--- a/sys/arm/at91/at91_pmc.c
+++ b/sys/arm/at91/at91_pmc.c
@@ -709,9 +709,9 @@ static driver_t at91_pmc_driver = {
static devclass_t at91_pmc_devclass;
#ifdef FDT
-DRIVER_MODULE(at91_pmc, simplebus, at91_pmc_driver, at91_pmc_devclass, NULL,
- NULL);
+EARLY_DRIVER_MODULE(at91_pmc, simplebus, at91_pmc_driver, at91_pmc_devclass,
+ NULL, NULL, BUS_PASS_CPU);
#else
-DRIVER_MODULE(at91_pmc, atmelarm, at91_pmc_driver, at91_pmc_devclass, NULL,
- NULL);
+EARLY_DRIVER_MODULE(at91_pmc, atmelarm, at91_pmc_driver, at91_pmc_devclass,
+ NULL, NULL, BUS_PASS_CPU);
#endif
diff --git a/sys/arm/at91/std.atmel b/sys/arm/at91/std.atmel
index 108cf545aced..fc1e968387c1 100644
--- a/sys/arm/at91/std.atmel
+++ b/sys/arm/at91/std.atmel
@@ -11,3 +11,5 @@ device at91sam9x5
# bring in the sam specific timers and such
device at91sam9
+
+options ARM_DEVICE_MULTIPASS