summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91sam9g20.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2012-07-12 04:23:11 +0000
committerimp <imp@FreeBSD.org>2012-07-12 04:23:11 +0000
commitd3c013c5a4ae3ebfa72239fe3050dada9f11d80f (patch)
tree715af755ad0e414063f2ddb929856fb8bfa8c571 /sys/arm/at91/at91sam9g20.c
parent8cc7a49b9609578a34b73a544be8d8cd3b7faacf (diff)
downloadFreeBSD-src-d3c013c5a4ae3ebfa72239fe3050dada9f11d80f.zip
FreeBSD-src-d3c013c5a4ae3ebfa72239fe3050dada9f11d80f.tar.gz
Create the children devices for the SoC in atmelarm bus node, not in
the identify routine of the CPU.
Diffstat (limited to 'sys/arm/at91/at91sam9g20.c')
-rw-r--r--sys/arm/at91/at91sam9g20.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/sys/arm/at91/at91sam9g20.c b/sys/arm/at91/at91sam9g20.c
index 905d0ea..324064c 100644
--- a/sys/arm/at91/at91sam9g20.c
+++ b/sys/arm/at91/at91sam9g20.c
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
#include <arm/at91/at91_rstreg.h>
struct at91sam9_softc {
- device_t dev;
bus_space_tag_t sc_st;
bus_space_handle_t sc_sh;
bus_space_handle_t sc_matrix_sh;
@@ -129,19 +128,6 @@ static const struct cpu_devs at91_devs[] =
{ 0, 0, 0, 0, 0 }
};
-static void
-at91_cpu_add_builtin_children(device_t dev)
-{
- int i;
- const struct cpu_devs *walker;
-
- for (i = 1, walker = at91_devs; walker->name; i++, walker++) {
- at91_add_child(dev, i, walker->name, walker->unit,
- walker->mem_base, walker->mem_len, walker->irq0,
- walker->irq1, walker->irq2);
- }
-}
-
static uint32_t
at91_pll_outa(int freq)
{
@@ -170,10 +156,8 @@ static void
at91_identify(driver_t *drv, device_t parent)
{
- if (at91_cpu_is(AT91_T_SAM9G20)) {
+ if (at91_cpu_is(AT91_T_SAM9G20))
at91_add_child(parent, 0, "at91sam", 9, 0, 0, -1, 0, 0);
- at91_cpu_add_builtin_children(parent);
- }
}
static int
@@ -194,7 +178,6 @@ at91_attach(device_t dev)
sc->sc_st = at91sc->sc_st;
sc->sc_sh = at91sc->sc_sh;
- sc->dev = dev;
if (bus_space_subregion(sc->sc_st, sc->sc_sh,
AT91SAM9G20_MATRIX_BASE, AT91SAM9G20_MATRIX_SIZE,
@@ -267,6 +250,7 @@ static struct at91_soc_data soc_data = {
.soc_delay = at91_pit_delay,
.soc_reset = at91_rst_cpu_reset,
.soc_irq_prio = at91_irq_prio,
+ .soc_childpren = at91_devs,
};
AT91_SOC(AT91_T_SAM9G20, &soc_data);
OpenPOWER on IntegriCloud