sync code with last improvements from OpenBSD

This commit is contained in:
purplerain 2023-09-01 17:37:08 +00:00
parent f8bbd6dd90
commit 81d24aa0e0
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
16 changed files with 1834 additions and 90 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: sxipio.c,v 1.15 2022/06/28 23:43:12 naddy Exp $ */
/* $OpenBSD: sxipio.c,v 1.16 2023/09/01 16:13:56 kettenis Exp $ */
/*
* Copyright (c) 2010 Miodrag Vallat.
* Copyright (c) 2013 Artturi Alm
@ -166,6 +166,10 @@ const struct sxipio_pins sxipio_pins[] = {
"allwinner,sun8i-h3-r-pinctrl",
sun8i_h3_r_pins, nitems(sun8i_h3_r_pins)
},
{
"allwinner,sun8i-v3-pinctrl",
sun8i_v3_pins, nitems(sun8i_v3_pins)
},
{
"allwinner,sun8i-v3s-pinctrl",
sun8i_v3s_pins, nitems(sun8i_v3s_pins)

View file

@ -6485,6 +6485,568 @@ const struct sxipio_pin sun8i_h3_r_pins[] = {
} },
};
const struct sxipio_pin sun8i_v3_pins[] = {
{ SXIPIO_PIN(B, 0), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "uart2", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 1), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "uart2", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 2), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "uart2", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 3), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "uart2", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 4), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "pwm0", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 5), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "pwm1", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 6), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2c0", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 7), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2c0", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 8), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2c1", 2 },
{ "uart0", 3 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 9), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2c1", 2 },
{ "uart0", 3 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 10), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "jtag", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 11), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "jtag", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 12), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "jtag", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(B, 13), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "jtag", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(C, 0), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
{ "spi0", 3 },
} },
{ SXIPIO_PIN(C, 1), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
{ "spi0", 3 },
} },
{ SXIPIO_PIN(C, 2), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
{ "spi0", 3 },
} },
{ SXIPIO_PIN(C, 3), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
{ "spi0", 3 },
} },
{ SXIPIO_PIN(C, 4), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 5), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 6), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 7), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 8), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 9), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(C, 10), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "mmc2", 2 },
} },
{ SXIPIO_PIN(D, 0), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 1), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 2), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 3), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 4), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 5), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 6), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 7), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 8), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 9), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 10), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 11), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 12), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 13), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 14), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 15), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 16), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 17), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
{ "emac", 4 },
} },
{ SXIPIO_PIN(D, 18), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
} },
{ SXIPIO_PIN(D, 19), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
} },
{ SXIPIO_PIN(D, 20), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
} },
{ SXIPIO_PIN(D, 21), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 2 },
{ "lvds", 3 },
} },
{ SXIPIO_PIN(E, 0), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 1), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 2), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 3), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 4), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 5), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 6), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 7), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 8), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 9), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 10), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 11), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 12), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 13), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 14), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 15), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 16), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 17), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 18), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 19), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "lcd", 3 },
} },
{ SXIPIO_PIN(E, 20), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "csi_mipi", 3 },
} },
{ SXIPIO_PIN(E, 21), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "i2c1", 3 },
{ "uart1", 4 },
} },
{ SXIPIO_PIN(E, 22), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "csi", 2 },
{ "i2c1", 3 },
{ "uart1", 4 },
} },
{ SXIPIO_PIN(E, 23), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 3 },
{ "uart1", 4 },
} },
{ SXIPIO_PIN(E, 24), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "lcd", 3 },
{ "uart1", 4 },
} },
{ 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", 3 },
} },
{ 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 },
{ "i2s", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(G, 11), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2s", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(G, 12), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2s", 2 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(G, 13), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "i2s", 2 },
{ "irq", 6 },
} },
};
const struct sxipio_pin sun8i_v3s_pins[] = {
{ SXIPIO_PIN(B, 0), {
{ "gpio_in", 0 },
@ -9768,12 +10330,14 @@ const struct sxipio_pin sun50i_h6_r_pins[] = {
{ SXIPIO_PIN(L, 0), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "s_rsb", 2 },
{ "s_i2c", 3 },
{ "irq", 6 },
} },
{ SXIPIO_PIN(L, 1), {
{ "gpio_in", 0 },
{ "gpio_out", 1 },
{ "s_rsb", 2 },
{ "s_i2c", 3 },
{ "irq", 6 },
} },