diff options
Diffstat (limited to 'sys/arm/allwinner/common.c')
-rw-r--r-- | sys/arm/allwinner/common.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arm/allwinner/common.c b/sys/arm/allwinner/common.c index eb49479..2aaa451 100644 --- a/sys/arm/allwinner/common.c +++ b/sys/arm/allwinner/common.c @@ -47,10 +47,16 @@ static int fdt_aintc_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig, int *pol) { - if (!fdt_is_compatible(node, "allwinner,sun4i-ic")) + int offset; + + if (fdt_is_compatible(node, "allwinner,sun4i-ic")) + offset = 0; + else if (fdt_is_compatible(node, "arm,gic")) + offset = 32; + else return (ENXIO); - *interrupt = fdt32_to_cpu(intr[0]); + *interrupt = fdt32_to_cpu(intr[0]) + offset; *trig = INTR_TRIGGER_CONFORM; *pol = INTR_POLARITY_CONFORM; |