Update with pin definitions from Linux 6.4.
authorkettenis <kettenis@openbsd.org>
Fri, 1 Sep 2023 16:13:56 +0000 (16:13 +0000)
committerkettenis <kettenis@openbsd.org>
Fri, 1 Sep 2023 16:13:56 +0000 (16:13 +0000)
ok patrick@

sys/dev/fdt/sxipio.c
sys/dev/fdt/sxipio_pins.h

index fac9eb4..93f2e8a 100644 (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)
index 7a3f81d..03e240c 100644 (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 },
        } },