diff options
author | imp <imp@FreeBSD.org> | 2012-07-12 04:23:11 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2012-07-12 04:23:11 +0000 |
commit | d3c013c5a4ae3ebfa72239fe3050dada9f11d80f (patch) | |
tree | 715af755ad0e414063f2ddb929856fb8bfa8c571 /sys/arm/at91/at91rm9200.c | |
parent | 8cc7a49b9609578a34b73a544be8d8cd3b7faacf (diff) | |
download | FreeBSD-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/at91rm9200.c')
-rw-r--r-- | sys/arm/at91/at91rm9200.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/sys/arm/at91/at91rm9200.c b/sys/arm/at91/at91rm9200.c index f50bd67..00b503b 100644 --- a/sys/arm/at91/at91rm9200.c +++ b/sys/arm/at91/at91rm9200.c @@ -137,19 +137,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_outb(int freq) { @@ -164,10 +151,8 @@ static void at91_identify(driver_t *drv, device_t parent) { - if (at91_cpu_is(AT91_T_RM9200)) { + if (at91_cpu_is(AT91_T_RM9200)) at91_add_child(parent, 0, "at91rm920", 0, 0, 0, -1, 0, 0); - at91_cpu_add_builtin_children(parent); - } } static int @@ -258,6 +243,7 @@ static struct at91_soc_data soc_data = { .soc_delay = at91_st_delay, .soc_reset = at91_st_cpu_reset, .soc_irq_prio = at91_irq_prio, + .soc_children = at91_devs, }; AT91_SOC(AT91_T_RM9200, &soc_data); |