summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91sam9g20.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2012-07-11 20:17:14 +0000
committerimp <imp@FreeBSD.org>2012-07-11 20:17:14 +0000
commit515d0c1d290c1ac2fb1aa99e74ef4175c158a007 (patch)
treecdb15b34649d1c3b0b980724718c54d34344146f /sys/arm/at91/at91sam9g20.c
parent003ccf85faf91187b67eb412e643bb75b87ae2a6 (diff)
downloadFreeBSD-src-515d0c1d290c1ac2fb1aa99e74ef4175c158a007.zip
FreeBSD-src-515d0c1d290c1ac2fb1aa99e74ef4175c158a007.tar.gz
Make the SoC stuff a little more modular, and start to move away from
having the CPU device that's a child of atmelarm that does stuff. o Create a linker_set for the support fucntions for the SoCs. o Rename soc_data to soc_info. o Move the delay and reset function pointers to new soc_data struct o Create elements for all known SoCs o Add lookup of the SoC we found, and print a warning if it isn't one we know about.
Diffstat (limited to 'sys/arm/at91/at91sam9g20.c')
-rw-r--r--sys/arm/at91/at91sam9g20.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/arm/at91/at91sam9g20.c b/sys/arm/at91/at91sam9g20.c
index 9146fda..4b87ad0 100644
--- a/sys/arm/at91/at91sam9g20.c
+++ b/sys/arm/at91/at91sam9g20.c
@@ -39,10 +39,13 @@ __FBSDID("$FreeBSD$");
#include <arm/at91/at91var.h>
#include <arm/at91/at91reg.h>
+#include <arm/at91/at91soc.h>
#include <arm/at91/at91_aicreg.h>
#include <arm/at91/at91sam9g20reg.h>
+#include <arm/at91/at91_pitreg.h>
#include <arm/at91/at91_pmcreg.h>
#include <arm/at91/at91_pmcvar.h>
+#include <arm/at91/at91_rstreg.h>
struct at91sam9_softc {
device_t dev;
@@ -179,7 +182,7 @@ static int
at91_probe(device_t dev)
{
- device_set_desc(dev, soc_data.name);
+ device_set_desc(dev, soc_info.name);
return (0);
}
@@ -295,3 +298,10 @@ static driver_t at91sam9_driver = {
static devclass_t at91sam9_devclass;
DRIVER_MODULE(at91sam, atmelarm, at91sam9_driver, at91sam9_devclass, 0, 0);
+
+static struct at91_soc_data soc_data = {
+ .soc_delay = at91_pit_delay,
+ .soc_reset = at91_rst_cpu_reset
+};
+
+AT91_SOC(AT91_T_SAM9G20, &soc_data);
OpenPOWER on IntegriCloud