diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-01-21 07:10:05 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-01-21 07:10:05 +0000 |
commit | 2d00c2403fcc61ad2c145acd17c0d15c4512b815 (patch) | |
tree | 495345d9bb1fb546d439f0a4cc0f271aa2caa39f /sys/arch/armv7/sunxi | |
parent | eed95b1d5c2470bf95a933f13299378b945bd6ea (diff) |
Add support for the Allwinner A64 (sun50i-a64).
Requested by patrick@
Diffstat (limited to 'sys/arch/armv7/sunxi')
-rw-r--r-- | sys/arch/armv7/sunxi/sxipio.c | 6 | ||||
-rw-r--r-- | sys/arch/armv7/sunxi/sxipio_pins.h | 651 |
2 files changed, 656 insertions, 1 deletions
diff --git a/sys/arch/armv7/sunxi/sxipio.c b/sys/arch/armv7/sunxi/sxipio.c index cde63906a9c..88fcfe15c76 100644 --- a/sys/arch/armv7/sunxi/sxipio.c +++ b/sys/arch/armv7/sunxi/sxipio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sxipio.c,v 1.18 2017/01/04 12:15:37 kettenis Exp $ */ +/* $OpenBSD: sxipio.c,v 1.19 2017/01/21 07:10:04 kettenis Exp $ */ /* * Copyright (c) 2010 Miodrag Vallat. * Copyright (c) 2013 Artturi Alm @@ -147,6 +147,10 @@ struct sxipio_pins sxipio_pins[] = { { "allwinner,sun9i-a80-r-pinctrl", sun9i_a80_r_pins, nitems(sun9i_a80_r_pins) + }, + { + "allwinner,sun50i-a64-pinctrl", + sun50i_a64_pins, nitems(sun50i_a64_pins) } }; diff --git a/sys/arch/armv7/sunxi/sxipio_pins.h b/sys/arch/armv7/sunxi/sxipio_pins.h index 3638af3bfcd..10f27f03e47 100644 --- a/sys/arch/armv7/sunxi/sxipio_pins.h +++ b/sys/arch/armv7/sunxi/sxipio_pins.h @@ -5103,3 +5103,654 @@ struct sxipio_pin sun9i_a80_r_pins[] = { { "s_rsb", 3 }, } }, }; + +struct sxipio_pin sun50i_a64_pins[] = { + { SXIPIO_PIN(B, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart2", 2 }, + { "jtag", 4 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart2", 2 }, + { "jtag", 4 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart2", 2 }, + { "jtag", 4 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart2", 2 }, + { "i2s0", 3 }, + { "jtag", 4 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif2", 2 }, + { "i2s0", 3 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif2", 2 }, + { "i2s0", 3 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif2", 2 }, + { "i2s0", 3 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif2", 2 }, + { "i2s0", 3 }, + { "sim", 5 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart0", 4 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(B, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart0", 4 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(C, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "spi0", 4 }, + } }, + { SXIPIO_PIN(C, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + { "spi0", 4 }, + } }, + { SXIPIO_PIN(C, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "spi0", 4 }, + } }, + { SXIPIO_PIN(C, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "spi0", 4 }, + } }, + { SXIPIO_PIN(C, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + } }, + { SXIPIO_PIN(C, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + } }, + { SXIPIO_PIN(C, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 10), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 11), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 12), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 13), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 14), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 15), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(C, 16), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "nand0", 2 }, + { "mmc2", 3 }, + } }, + { SXIPIO_PIN(D, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart3", 3 }, + { "spi1", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart3", 3 }, + { "spi1", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart4", 3 }, + { "spi1", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart4", 3 }, + { "spi1", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart4", 3 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "uart4", 3 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "emac", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "emac", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 10), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 11), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 12), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 13), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 14), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 15), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 16), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + { "ccir", 5 }, + } }, + { SXIPIO_PIN(D, 17), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 18), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 19), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 20), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 21), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "lcd0", 2 }, + { "lvds0", 3 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 22), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "pwm", 2 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 23), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "emac", 4 }, + } }, + { SXIPIO_PIN(D, 24), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + } }, + { SXIPIO_PIN(E, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 10), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 11), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + { "ts0", 4 }, + } }, + { SXIPIO_PIN(E, 12), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + } }, + { SXIPIO_PIN(E, 13), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "csi0", 2 }, + } }, + { SXIPIO_PIN(E, 14), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "pll", 2 }, + { "i2c2", 3 }, + } }, + { SXIPIO_PIN(E, 15), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "i2c2", 3 }, + } }, + { SXIPIO_PIN(E, 16), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + } }, + { SXIPIO_PIN(E, 17), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + } }, + { SXIPIO_PIN(F, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "jtag", 3 }, + } }, + { SXIPIO_PIN(F, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "jtag", 3 }, + } }, + { SXIPIO_PIN(F, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "uart0", 3 }, + } }, + { SXIPIO_PIN(F, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "jtag", 3 }, + } }, + { SXIPIO_PIN(F, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "uart0", 4 }, + } }, + { SXIPIO_PIN(F, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc0", 2 }, + { "jtag", 3 }, + } }, + { SXIPIO_PIN(F, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + } }, + { SXIPIO_PIN(G, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mmc1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 10), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif3", 2 }, + { "i2s1", 3 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 11), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif3", 2 }, + { "i2s1", 3 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 12), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif3", 2 }, + { "i2s1", 3 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(G, 13), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "aif3", 2 }, + { "i2s1", 3 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 0), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "i2c0", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 1), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "i2c0", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 2), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "i2c1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 3), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "i2c1", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 4), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart3", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 5), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart3", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 6), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart3", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 7), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "uart3", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 8), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "spdif", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 9), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 10), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mic", 2 }, + { "irq", 6 }, + } }, + { SXIPIO_PIN(H, 11), { + { "gpio_in", 0 }, + { "gpio_out", 1 }, + { "mic", 2 }, + { "irq", 6 }, + } }, +}; |