Synch pin defenitions with Linux and add support for the Allwinner GR8 and
authorkettenis <kettenis@openbsd.org>
Thu, 28 Dec 2017 11:39:11 +0000 (11:39 +0000)
committerkettenis <kettenis@openbsd.org>
Thu, 28 Dec 2017 11:39:11 +0000 (11:39 +0000)
Allwinner R40.

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

index e11fd68..9eb257a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: sxipio.c,v 1.7 2017/12/26 12:58:59 kettenis Exp $     */
+/*     $OpenBSD: sxipio.c,v 1.8 2017/12/28 11:39:11 kettenis Exp $     */
 /*
  * Copyright (c) 2010 Miodrag Vallat.
  * Copyright (c) 2013 Artturi Alm
@@ -121,18 +121,26 @@ struct sxipio_pins sxipio_pins[] = {
                "allwinner,sun4i-a10-pinctrl",
                sun4i_a10_pins, nitems(sun4i_a10_pins)
        },
+       {
+               "allwinner,sun5i-a10s-pinctrl",
+               sun5i_a10s_pins, nitems(sun5i_a10s_pins)
+       },
        {
                "allwinner,sun5i-a13-pinctrl",
                sun5i_a13_pins, nitems(sun5i_a13_pins)
        },
        {
-               "allwinner,sun5i-a10s-pinctrl",
-               sun5i_a10s_pins, nitems(sun5i_a10s_pins)
+               "allwinner,sun5i-gr8-pinctrl",
+               sun5i_gr8_pins, nitems(sun5i_gr8_pins)
        },
        {
                "allwinner,sun7i-a20-pinctrl",
                sun7i_a20_pins, nitems(sun7i_a20_pins)
        },
+       {
+               "allwinner,sun8i-r40-pinctrl",
+               sun8i_r40_pins, nitems(sun8i_r40_pins)
+       },
        {
                "allwinner,sun8i-a33-pinctrl",
                sun8i_a33_pins, nitems(sun8i_a33_pins)
index 10e8231..b756ea6 100644 (file)
@@ -920,6 +920,7 @@ struct sxipio_pin sun4i_a10_pins[] = {
                { "lcd1", 2 },
                { "pata", 3 },
                { "keypad", 4 },
+               { "sim", 5 },
                { "irq", 6 },
                { "csi1", 7 },
        } },
@@ -1160,7 +1161,148 @@ struct sxipio_pin sun4i_a10_pins[] = {
        } },
 };
 
-struct sxipio_pin sun5i_a13_pins[] = {
+struct sxipio_pin sun7i_a20_pins[] = {
+       { SXIPIO_PIN(A, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart6", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart6", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart7", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart7", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "can", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "can", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
        { SXIPIO_PIN(B, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
@@ -1175,46 +1317,126 @@ struct sxipio_pin sun5i_a13_pins[] = {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "pwm", 2 },
-               { "irq", 6 },
        } },
        { SXIPIO_PIN(B, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ir0", 2 },
-               { "irq", 6 },
+               { "spdif", 4 },
        } },
        { SXIPIO_PIN(B, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ir0", 2 },
-               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
        } },
        { SXIPIO_PIN(B, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+       } },
+       { SXIPIO_PIN(B, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+       } },
+       { SXIPIO_PIN(B, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+               { "spdif", 4 },
+       } },
+       { SXIPIO_PIN(B, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "spi2", 2 },
-               { "irq", 6 },
+               { "spdif", 4 },
+       } },
+       { SXIPIO_PIN(B, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
        } },
        { SXIPIO_PIN(B, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c1", 2 },
+               { "spi2", 2 },
+               { "jtag", 3 },
        } },
        { SXIPIO_PIN(B, 16), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c1", 2 },
+               { "spi2", 2 },
+               { "jtag", 3 },
        } },
        { SXIPIO_PIN(B, 17), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c2", 2 },
+               { "spi2", 2 },
+               { "jtag", 3 },
        } },
        { SXIPIO_PIN(B, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c2", 2 },
+       } },
+       { SXIPIO_PIN(B, 21), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "i2c2", 2 },
        } },
+       { SXIPIO_PIN(B, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "uart0", 2 },
+               { "ir1", 3 },
+       } },
+       { SXIPIO_PIN(B, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "uart0", 2 },
+               { "ir1", 3 },
+       } },
        { SXIPIO_PIN(C, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
@@ -1237,7 +1459,6 @@ struct sxipio_pin sun5i_a13_pins[] = {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "nand0", 2 },
-               { "spi0", 3 },
        } },
        { SXIPIO_PIN(C, 4), {
                { "gpio_in", 0 },
@@ -1289,342 +1510,2063 @@ struct sxipio_pin sun5i_a13_pins[] = {
                { "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, 19), {
+       { SXIPIO_PIN(C, 16), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "nand0", 2 },
-               { "uart3", 4 },
        } },
-       { SXIPIO_PIN(D, 2), {
+       { SXIPIO_PIN(C, 17), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd0", 2 },
+               { "nand0", 2 },
        } },
-       { SXIPIO_PIN(D, 3), {
+       { SXIPIO_PIN(C, 18), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd0", 2 },
+               { "nand0", 2 },
        } },
-       { SXIPIO_PIN(D, 4), {
+       { SXIPIO_PIN(C, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 3 },
+       } },
+       { SXIPIO_PIN(C, 24), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+       } },
+       { SXIPIO_PIN(D, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds0", 3 },
        } },
        { SXIPIO_PIN(D, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds0", 3 },
        } },
        { SXIPIO_PIN(D, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds0", 3 },
        } },
        { SXIPIO_PIN(D, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
        } },
        { SXIPIO_PIN(D, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 14), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 18), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 19), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "lvds1", 3 },
        } },
        { SXIPIO_PIN(D, 20), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "csi1", 3 },
        } },
        { SXIPIO_PIN(D, 21), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 22), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 23), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 24), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 25), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 26), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(D, 27), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
+               { "sim", 3 },
        } },
        { SXIPIO_PIN(E, 0), {
                { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "spi2", 4 },
-               { "irq", 6 },
        } },
        { SXIPIO_PIN(E, 1), {
                { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "spi2", 4 },
-               { "irq", 6 },
        } },
        { SXIPIO_PIN(E, 2), {
                { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "spi2", 4 },
        } },
        { SXIPIO_PIN(E, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "spi2", 4 },
        } },
        { SXIPIO_PIN(E, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
+               { "sim", 4 },
        } },
        { SXIPIO_PIN(E, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "uart1", 4 },
        } },
        { SXIPIO_PIN(E, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
+               { "ts0", 2 },
                { "csi0", 3 },
-               { "uart1", 4 },
        } },
        { SXIPIO_PIN(F, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "mmc0", 2 },
+               { "jtag", 4 },
        } },
        { SXIPIO_PIN(F, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "mmc0", 2 },
+               { "jtag", 4 },
        } },
        { SXIPIO_PIN(F, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "mmc0", 2 },
+               { "uart0", 4 },
        } },
        { SXIPIO_PIN(F, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "mmc0", 2 },
+               { "jtag", 4 },
        } },
        { 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", 4 },
        } },
        { SXIPIO_PIN(G, 0), {
                { "gpio_in", 0 },
-               { "irq", 6 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
        } },
        { SXIPIO_PIN(G, 1), {
                { "gpio_in", 0 },
-               { "irq", 6 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
        } },
        { SXIPIO_PIN(G, 2), {
                { "gpio_in", 0 },
-               { "irq", 6 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
        } },
        { SXIPIO_PIN(G, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
        } },
        { SXIPIO_PIN(G, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(G, 9), {
+       { SXIPIO_PIN(G, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(G, 10), {
+       { SXIPIO_PIN(G, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(G, 11), {
+       { SXIPIO_PIN(G, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(G, 12), {
+       { SXIPIO_PIN(G, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
        } },
-};
-
-struct sxipio_pin sun5i_a10s_pins[] = {
-       { SXIPIO_PIN(A, 0), {
+       { SXIPIO_PIN(G, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(A, 1), {
+       { SXIPIO_PIN(G, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart4", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(A, 2), {
+       { SXIPIO_PIN(G, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart4", 4 },
+               { "csi0", 5 },
        } },
-       { SXIPIO_PIN(A, 3), {
+       { SXIPIO_PIN(H, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(A, 4), {
+       { SXIPIO_PIN(H, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(A, 5), {
+       { SXIPIO_PIN(H, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "emac", 2 },
-               { "ts0", 3 },
-               { "keypad", 5 },
-       } },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart4", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart4", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart5", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart5", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "ms", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "ps2", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "ps2", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "can", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "can", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 24), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 25), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 26), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 27), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(I, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c3", 3 },
+       } },
+       { SXIPIO_PIN(I, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c3", 3 },
+       } },
+       { SXIPIO_PIN(I, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c4", 3 },
+       } },
+       { SXIPIO_PIN(I, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "pwm", 2 },
+               { "i2c4", 3 },
+       } },
+       { SXIPIO_PIN(I, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart5", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart5", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart6", 3 },
+               { "clk_out_a", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart6", 3 },
+               { "clk_out_b", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "ps2", 3 },
+               { "timer4", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "ps2", 3 },
+               { "timer5", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ps2", 2 },
+               { "uart7", 3 },
+               { "hdmi", 4 },
+       } },
+       { SXIPIO_PIN(I, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ps2", 2 },
+               { "uart7", 3 },
+               { "hdmi", 4 },
+       } },
+};
+
+struct sxipio_pin sun8i_r40_pins[] = {
+       { SXIPIO_PIN(A, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "uart2", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi1", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "spi3", 3 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart6", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart6", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+       } },
+       { SXIPIO_PIN(A, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart7", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "uart7", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "can", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(A, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "can", 3 },
+               { "uart1", 4 },
+               { "gmac", 5 },
+               { "i2s1", 6 },
+       } },
+       { SXIPIO_PIN(B, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c0", 2 },
+               { "pll_lock_dbg", 3 },
+       } },
+       { SXIPIO_PIN(B, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c0", 2 },
+       } },
+       { SXIPIO_PIN(B, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "pwm", 3 },
+       } },
+       { SXIPIO_PIN(B, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "pwm", 3 },
+               { "spdif", 4 },
+       } },
+       { SXIPIO_PIN(B, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ir0", 2 },
+       } },
+       { SXIPIO_PIN(B, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "pwm", 4 },
+       } },
+       { SXIPIO_PIN(B, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "pwm", 4 },
+       } },
+       { SXIPIO_PIN(B, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+       } },
+       { SXIPIO_PIN(B, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s0", 2 },
+               { "ac97", 3 },
+       } },
+       { SXIPIO_PIN(B, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "spdif", 4 },
+       } },
+       { SXIPIO_PIN(B, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+       } },
+       { SXIPIO_PIN(B, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+       } },
+       { SXIPIO_PIN(B, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+       } },
+       { SXIPIO_PIN(B, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+       } },
+       { SXIPIO_PIN(B, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c2", 2 },
+               { "pwm", 4 },
+       } },
+       { SXIPIO_PIN(B, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c2", 2 },
+               { "pwm", 4 },
+       } },
+       { SXIPIO_PIN(B, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "uart0", 2 },
+       } },
+       { SXIPIO_PIN(B, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "uart0", 2 },
+               { "ir1", 3 },
+       } },
+       { SXIPIO_PIN(C, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi0", 3 },
+       } },
+       { SXIPIO_PIN(C, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi0", 3 },
+       } },
+       { SXIPIO_PIN(C, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi0", 3 },
+       } },
+       { SXIPIO_PIN(C, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+       } },
+       { 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 },
+               { "mmc2", 3 },
+       } },
+       { 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 },
+       } },
+       { SXIPIO_PIN(C, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+       } },
+       { SXIPIO_PIN(C, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+       } },
+       { SXIPIO_PIN(C, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi2", 3 },
+       } },
+       { SXIPIO_PIN(C, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 3 },
+       } },
+       { SXIPIO_PIN(C, 24), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
+       } },
+       { SXIPIO_PIN(D, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds0", 3 },
+       } },
+       { SXIPIO_PIN(D, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "lvds1", 3 },
+       } },
+       { SXIPIO_PIN(D, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "csi1", 3 },
+       } },
+       { SXIPIO_PIN(D, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 24), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 25), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 26), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(D, 27), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
+               { "sim", 3 },
+       } },
+       { SXIPIO_PIN(E, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "sim", 4 },
+       } },
+       { SXIPIO_PIN(E, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(E, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+       } },
+       { SXIPIO_PIN(F, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
+       } },
+       { SXIPIO_PIN(F, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
+       } },
+       { SXIPIO_PIN(F, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "uart0", 4 },
+       } },
+       { SXIPIO_PIN(F, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
+       } },
+       { 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", 4 },
+       } },
+       { SXIPIO_PIN(G, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+       } },
+       { SXIPIO_PIN(G, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+       } },
+       { SXIPIO_PIN(G, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+       } },
+       { SXIPIO_PIN(G, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+       } },
+       { SXIPIO_PIN(G, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(G, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "mmc1", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(G, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(G, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(G, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(G, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart3", 4 },
+               { "csi0", 5 },
+               { "bist", 6 },
+       } },
+       { SXIPIO_PIN(G, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart4", 4 },
+               { "csi0", 5 },
+               { "bist", 6 },
+       } },
+       { SXIPIO_PIN(G, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ts1", 2 },
+               { "csi1", 3 },
+               { "uart4", 4 },
+               { "csi0", 5 },
+       } },
+       { SXIPIO_PIN(H, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart3", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart4", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart4", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart5", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "uart5", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "ps2", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "ps2", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "sim", 5 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "can", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "can", 4 },
+               { "irq", 6 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 23), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 24), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 25), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 26), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(H, 27), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd1", 2 },
+               { "emac", 3 },
+               { "keypad", 4 },
+               { "mmc1", 5 },
+               { "csi1", 7 },
+       } },
+       { SXIPIO_PIN(I, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c3", 3 },
+       } },
+       { SXIPIO_PIN(I, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c3", 3 },
+       } },
+       { SXIPIO_PIN(I, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c4", 3 },
+       } },
+       { SXIPIO_PIN(I, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "pwm", 2 },
+               { "i2c4", 3 },
+       } },
+       { SXIPIO_PIN(I, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc3", 2 },
+       } },
+       { SXIPIO_PIN(I, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart5", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart5", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart6", 3 },
+               { "clk_out_a", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "uart6", 3 },
+               { "clk_out_b", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi0", 2 },
+               { "ps2", 3 },
+               { "timer4", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "ps2", 3 },
+               { "timer5", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 19), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart2", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(I, 20), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ps2", 2 },
+               { "uart7", 3 },
+               { "pwm", 6 },
+       } },
+       { SXIPIO_PIN(I, 21), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ps2", 2 },
+               { "uart7", 3 },
+               { "pwm", 6 },
+       } },
+};
+
+struct sxipio_pin sun5i_a10s_pins[] = {
+       { SXIPIO_PIN(A, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
+       { SXIPIO_PIN(A, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
+       { SXIPIO_PIN(A, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
+       { SXIPIO_PIN(A, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
+       { SXIPIO_PIN(A, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
+       { SXIPIO_PIN(A, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "emac", 2 },
+               { "ts0", 3 },
+               { "keypad", 5 },
+       } },
        { SXIPIO_PIN(A, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
@@ -2239,378 +4181,157 @@ struct sxipio_pin sun5i_a10s_pins[] = {
                { "mmc0", 2 },
                { "jtag", 4 },
        } },
-       { SXIPIO_PIN(G, 0), {
-               { "gpio_in", 0 },
-               { "gps", 2 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 1), {
-               { "gpio_in", 0 },
-               { "gps", 2 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 2), {
-               { "gpio_in", 0 },
-               { "gps", 2 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 3), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 4), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 5), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 6), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart1", 4 },
-               { "uart2", 5 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 7), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart2", 5 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 8), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "mmc1", 2 },
-               { "uart2", 5 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 9), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 10), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 11), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 12), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart3", 3 },
-               { "irq", 6 },
-       } },
-       { SXIPIO_PIN(G, 13), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "pwm", 3 },
-               { "uart2", 5 },
-               { "irq", 6 },
-       } },
-};
-
-struct sxipio_pin sun7i_a20_pins[] = {
-       { SXIPIO_PIN(A, 0), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi1", 3 },
-               { "uart2", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 1), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi1", 3 },
-               { "uart2", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 2), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi1", 3 },
-               { "uart2", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 3), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi1", 3 },
-               { "uart2", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 4), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi1", 3 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 5), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi3", 3 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 6), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi3", 3 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 7), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi3", 3 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 8), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi3", 3 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 9), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "spi3", 3 },
-               { "gmac", 5 },
-               { "i2s1", 6 },
-       } },
-       { SXIPIO_PIN(A, 10), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 11), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 12), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart6", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 13), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart6", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-       } },
-       { SXIPIO_PIN(A, 14), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart7", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-               { "i2s1", 6 },
-       } },
-       { SXIPIO_PIN(A, 15), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "uart7", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-               { "i2s1", 6 },
-       } },
-       { SXIPIO_PIN(A, 16), {
+       { SXIPIO_PIN(G, 0), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "can", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-               { "i2s1", 6 },
+               { "gps", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(A, 17), {
+       { SXIPIO_PIN(G, 1), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "emac", 2 },
-               { "can", 3 },
-               { "uart1", 4 },
-               { "gmac", 5 },
-               { "i2s1", 6 },
+               { "gps", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 0), {
+       { SXIPIO_PIN(G, 2), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "i2c0", 2 },
+               { "gps", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 1), {
+       { SXIPIO_PIN(G, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c0", 2 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 2), {
+       { SXIPIO_PIN(G, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "pwm", 2 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 3), {
+       { SXIPIO_PIN(G, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ir0", 2 },
-               { "spdif", 4 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 4), {
+       { SXIPIO_PIN(G, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ir0", 2 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "uart2", 5 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 5), {
+       { SXIPIO_PIN(G, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
-               { "ac97", 3 },
+               { "mmc1", 2 },
+               { "uart2", 5 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 6), {
+       { SXIPIO_PIN(G, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
-               { "ac97", 3 },
+               { "mmc1", 2 },
+               { "uart2", 5 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 7), {
+       { SXIPIO_PIN(G, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
-               { "ac97", 3 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 8), {
+       { SXIPIO_PIN(G, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
-               { "ac97", 3 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 9), {
+       { SXIPIO_PIN(G, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 10), {
+       { SXIPIO_PIN(G, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 11), {
+       { SXIPIO_PIN(G, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
+               { "spi1", 2 },
+               { "pwm", 3 },
+               { "uart2", 5 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 12), {
+};
+
+struct sxipio_pin sun5i_a13_pins[] = {
+       { SXIPIO_PIN(B, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2s0", 2 },
-               { "ac97", 3 },
-               { "spdif", 4 },
+               { "i2c0", 2 },
        } },
-       { SXIPIO_PIN(B, 13), {
+       { SXIPIO_PIN(B, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi2", 2 },
-               { "spdif", 4 },
+               { "i2c0", 2 },
        } },
-       { SXIPIO_PIN(B, 14), {
+       { SXIPIO_PIN(B, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi2", 2 },
-               { "jtag", 3 },
+               { "pwm", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 15), {
+       { SXIPIO_PIN(B, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi2", 2 },
-               { "jtag", 3 },
+               { "ir0", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 16), {
+       { SXIPIO_PIN(B, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi2", 2 },
-               { "jtag", 3 },
+               { "ir0", 2 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 17), {
+       { SXIPIO_PIN(B, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "spi2", 2 },
-               { "jtag", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(B, 18), {
+       { SXIPIO_PIN(B, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "i2c1", 2 },
        } },
-       { SXIPIO_PIN(B, 19), {
+       { SXIPIO_PIN(B, 16), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "i2c1", 2 },
        } },
-       { SXIPIO_PIN(B, 20), {
+       { SXIPIO_PIN(B, 17), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "i2c2", 2 },
        } },
-       { SXIPIO_PIN(B, 21), {
+       { SXIPIO_PIN(B, 18), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "i2c2", 2 },
        } },
-       { SXIPIO_PIN(B, 22), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "uart0", 2 },
-               { "ir1", 3 },
-       } },
-       { SXIPIO_PIN(B, 23), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "uart0", 2 },
-               { "ir1", 3 },
-       } },
        { SXIPIO_PIN(C, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
@@ -2633,6 +4354,7 @@ struct sxipio_pin sun7i_a20_pins[] = {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "nand0", 2 },
+               { "spi0", 3 },
        } },
        { SXIPIO_PIN(C, 4), {
                { "gpio_in", 0 },
@@ -2684,311 +4406,247 @@ struct sxipio_pin sun7i_a20_pins[] = {
                { "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 },
-       } },
-       { SXIPIO_PIN(C, 16), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-       } },
-       { SXIPIO_PIN(C, 17), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-       } },
-       { SXIPIO_PIN(C, 18), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
        { SXIPIO_PIN(C, 19), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "nand0", 2 },
-               { "spi2", 3 },
-       } },
-       { SXIPIO_PIN(C, 20), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-               { "spi2", 3 },
-       } },
-       { SXIPIO_PIN(C, 21), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-               { "spi2", 3 },
-       } },
-       { SXIPIO_PIN(C, 22), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-               { "spi2", 3 },
-       } },
-       { SXIPIO_PIN(C, 23), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi0", 3 },
-       } },
-       { SXIPIO_PIN(C, 24), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "nand0", 2 },
-       } },
-       { SXIPIO_PIN(D, 0), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds0", 3 },
-       } },
-       { SXIPIO_PIN(D, 1), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "uart2", 3 },
+               { "uart3", 4 },
        } },
        { SXIPIO_PIN(D, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "uart2", 3 },
        } },
        { SXIPIO_PIN(D, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "uart2", 3 },
        } },
        { SXIPIO_PIN(D, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "uart2", 3 },
        } },
        { SXIPIO_PIN(D, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "uart2", 3 },
        } },
        { SXIPIO_PIN(D, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds0", 3 },
-       } },
-       { SXIPIO_PIN(D, 8), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds0", 3 },
-       } },
-       { SXIPIO_PIN(D, 9), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds0", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
-       } },
-       { SXIPIO_PIN(D, 12), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds1", 3 },
-       } },
-       { SXIPIO_PIN(D, 13), {
-               { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(D, 14), {
+       { SXIPIO_PIN(D, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(D, 15), {
+       { SXIPIO_PIN(D, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(D, 16), {
+       { SXIPIO_PIN(D, 14), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(D, 17), {
+       { SXIPIO_PIN(D, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 18), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 19), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "lvds1", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 20), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "csi1", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 21), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 22), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 23), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 24), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 25), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 26), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(D, 27), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "lcd0", 2 },
-               { "sim", 3 },
+               { "emac", 3 },
        } },
        { SXIPIO_PIN(E, 0), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "spi2", 4 },
+               { "irq", 6 },
        } },
        { SXIPIO_PIN(E, 1), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "spi2", 4 },
+               { "irq", 6 },
        } },
        { SXIPIO_PIN(E, 2), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "spi2", 4 },
        } },
        { SXIPIO_PIN(E, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "spi2", 4 },
        } },
        { SXIPIO_PIN(E, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
-               { "sim", 4 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "mmc2", 4 },
        } },
        { SXIPIO_PIN(E, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "uart1", 4 },
        } },
        { SXIPIO_PIN(E, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "ts0", 2 },
                { "csi0", 3 },
+               { "uart1", 4 },
        } },
        { SXIPIO_PIN(F, 0), {
                { "gpio_in", 0 },
@@ -2999,517 +4657,653 @@ struct sxipio_pin sun7i_a20_pins[] = {
        { SXIPIO_PIN(F, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc0", 2 },
-               { "jtag", 4 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
+       } },
+       { SXIPIO_PIN(F, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "uart0", 4 },
+       } },
+       { SXIPIO_PIN(F, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
+       } },
+       { 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", 4 },
+       } },
+       { SXIPIO_PIN(G, 0), {
+               { "gpio_in", 0 },
+               { "gps", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 1), {
+               { "gpio_in", 0 },
+               { "gps", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 2), {
+               { "gpio_in", 0 },
+               { "gps", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
+       } },
+};
+
+struct sxipio_pin sun5i_gr8_pins[] = {
+       { SXIPIO_PIN(B, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c0", 2 },
+       } },
+       { SXIPIO_PIN(B, 1), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c0", 2 },
+       } },
+       { SXIPIO_PIN(B, 2), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "pwm", 2 },
+               { "spdif", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 3), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ir0", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 4), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "ir0", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 5), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 6), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 7), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 8), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 9), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2s", 2 },
+               { "spdif", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 10), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "spdif", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 11), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 12), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 13), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 14), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "spi2", 2 },
+               { "jtag", 3 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(B, 15), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 16), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c1", 2 },
+       } },
+       { SXIPIO_PIN(B, 17), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c2", 2 },
+       } },
+       { SXIPIO_PIN(B, 18), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "i2c2", 2 },
+       } },
+       { SXIPIO_PIN(C, 0), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "nand0", 2 },
+               { "spi0", 3 },
        } },
-       { SXIPIO_PIN(F, 2), {
+       { SXIPIO_PIN(C, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc0", 2 },
-               { "uart0", 4 },
+               { "nand0", 2 },
+               { "spi0", 3 },
        } },
-       { SXIPIO_PIN(F, 3), {
+       { SXIPIO_PIN(C, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc0", 2 },
-               { "jtag", 4 },
+               { "nand0", 2 },
+               { "spi0", 3 },
        } },
-       { SXIPIO_PIN(F, 4), {
+       { SXIPIO_PIN(C, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc0", 2 },
-               { "uart0", 4 },
+               { "nand0", 2 },
+               { "spi0", 3 },
        } },
-       { SXIPIO_PIN(F, 5), {
+       { SXIPIO_PIN(C, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc0", 2 },
-               { "jtag", 4 },
+               { "nand0", 2 },
        } },
-       { SXIPIO_PIN(G, 0), {
+       { SXIPIO_PIN(C, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
+               { "nand0", 2 },
        } },
-       { SXIPIO_PIN(G, 1), {
+       { SXIPIO_PIN(C, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 2), {
+       { SXIPIO_PIN(C, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 3), {
+       { SXIPIO_PIN(C, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 4), {
+       { SXIPIO_PIN(C, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 5), {
+       { SXIPIO_PIN(C, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "mmc1", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 6), {
+       { SXIPIO_PIN(C, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart3", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 7), {
+       { SXIPIO_PIN(C, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart3", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 8), {
+       { SXIPIO_PIN(C, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart3", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 9), {
+       { SXIPIO_PIN(C, 14), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart3", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 10), {
+       { SXIPIO_PIN(C, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart4", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "mmc2", 3 },
        } },
-       { SXIPIO_PIN(G, 11), {
+       { SXIPIO_PIN(C, 19), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ts1", 2 },
-               { "csi1", 3 },
-               { "uart4", 4 },
-               { "csi0", 5 },
+               { "nand0", 2 },
+               { "uart2", 3 },
+               { "uart3", 4 },
        } },
-       { SXIPIO_PIN(H, 0), {
+       { SXIPIO_PIN(D, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart3", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "uart2", 3 },
        } },
-       { SXIPIO_PIN(H, 1), {
+       { SXIPIO_PIN(D, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart3", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "uart2", 3 },
        } },
-       { SXIPIO_PIN(H, 2), {
+       { SXIPIO_PIN(D, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart3", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "uart2", 3 },
        } },
-       { SXIPIO_PIN(H, 3), {
+       { SXIPIO_PIN(D, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart3", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "uart2", 3 },
        } },
-       { SXIPIO_PIN(H, 4), {
+       { SXIPIO_PIN(D, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart4", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 5), {
+       { SXIPIO_PIN(D, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart4", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 6), {
+       { SXIPIO_PIN(D, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart5", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 7), {
+       { SXIPIO_PIN(D, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "uart5", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 8), {
+       { SXIPIO_PIN(D, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 9), {
+       { SXIPIO_PIN(D, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 10), {
+       { SXIPIO_PIN(D, 14), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 11), {
+       { SXIPIO_PIN(D, 15), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "ms", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 12), {
+       { SXIPIO_PIN(D, 18), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "ps2", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 13), {
+       { SXIPIO_PIN(D, 19), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "ps2", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
+               { "lcd0", 2 },
+               { "emac", 3 },
        } },
-       { SXIPIO_PIN(H, 14), {
+       { SXIPIO_PIN(D, 20), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 15), {
+       { SXIPIO_PIN(D, 21), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
+               { "emac", 3 },
+       } },
+       { SXIPIO_PIN(D, 22), {
+               { "gpio_in", 0 },
+               { "gpio_out", 1 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 16), {
+       { SXIPIO_PIN(D, 23), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 17), {
+       { SXIPIO_PIN(D, 24), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 18), {
+       { SXIPIO_PIN(D, 25), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 19), {
+       { SXIPIO_PIN(D, 26), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "keypad", 4 },
-               { "sim", 5 },
-               { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 20), {
+       { SXIPIO_PIN(D, 27), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
+               { "lcd0", 2 },
                { "emac", 3 },
-               { "can", 4 },
+       } },
+       { SXIPIO_PIN(E, 0), {
+               { "gpio_in", 0 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "spi2", 4 },
                { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 21), {
+       { SXIPIO_PIN(E, 1), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "can", 4 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "spi2", 4 },
                { "irq", 6 },
-               { "csi1", 7 },
        } },
-       { SXIPIO_PIN(H, 22), {
+       { SXIPIO_PIN(E, 2), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "spi2", 4 },
        } },
-       { SXIPIO_PIN(H, 23), {
+       { SXIPIO_PIN(E, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "spi2", 4 },
        } },
-       { SXIPIO_PIN(H, 24), {
+       { SXIPIO_PIN(E, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(H, 25), {
+       { SXIPIO_PIN(E, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(H, 26), {
+       { SXIPIO_PIN(E, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(H, 27), {
+       { SXIPIO_PIN(E, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "lcd1", 2 },
-               { "emac", 3 },
-               { "keypad", 4 },
-               { "mmc1", 5 },
-               { "csi1", 7 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(I, 0), {
+       { SXIPIO_PIN(E, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c3", 3 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(I, 1), {
+       { SXIPIO_PIN(E, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c3", 3 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "mmc2", 4 },
        } },
-       { SXIPIO_PIN(I, 2), {
+       { SXIPIO_PIN(E, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "i2c4", 3 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "uart1", 4 },
        } },
-       { SXIPIO_PIN(I, 3), {
+       { SXIPIO_PIN(E, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "pwm", 2 },
-               { "i2c4", 3 },
+               { "ts0", 2 },
+               { "csi0", 3 },
+               { "uart1", 4 },
        } },
-       { SXIPIO_PIN(I, 4), {
+       { SXIPIO_PIN(F, 0), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
        } },
-       { SXIPIO_PIN(I, 5), {
+       { SXIPIO_PIN(F, 1), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
        } },
-       { SXIPIO_PIN(I, 6), {
+       { SXIPIO_PIN(F, 2), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "uart0", 4 },
        } },
-       { SXIPIO_PIN(I, 7), {
+       { SXIPIO_PIN(F, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
        } },
-       { SXIPIO_PIN(I, 8), {
+       { SXIPIO_PIN(F, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "uart0", 4 },
        } },
-       { SXIPIO_PIN(I, 9), {
+       { SXIPIO_PIN(F, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "mmc3", 2 },
+               { "mmc0", 2 },
+               { "jtag", 4 },
        } },
-       { SXIPIO_PIN(I, 10), {
+       { SXIPIO_PIN(G, 0), {
                { "gpio_in", 0 },
-               { "gpio_out", 1 },
-               { "spi0", 2 },
-               { "uart5", 3 },
+               { "gps", 2 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 11), {
+       { SXIPIO_PIN(G, 1), {
+               { "gpio_in", 0 },
+               { "gps", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 2), {
+               { "gpio_in", 0 },
+               { "gps", 2 },
+               { "irq", 6 },
+       } },
+       { SXIPIO_PIN(G, 3), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi0", 2 },
-               { "uart5", 3 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 12), {
+       { SXIPIO_PIN(G, 4), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi0", 2 },
-               { "uart6", 3 },
-               { "clk_out_a", 4 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 13), {
+       { SXIPIO_PIN(G, 5), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi0", 2 },
-               { "uart6", 3 },
-               { "clk_out_b", 4 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 14), {
+       { SXIPIO_PIN(G, 6), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi0", 2 },
-               { "ps2", 3 },
-               { "timer4", 4 },
+               { "mmc1", 2 },
+               { "uart1", 4 },
+               { "uart2", 5 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 15), {
+       { SXIPIO_PIN(G, 7), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "ps2", 3 },
-               { "timer5", 4 },
+               { "mmc1", 2 },
+               { "uart2", 5 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 16), {
+       { SXIPIO_PIN(G, 8), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "spi1", 2 },
-               { "uart2", 3 },
+               { "mmc1", 2 },
+               { "uart2", 5 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 17), {
+       { SXIPIO_PIN(G, 9), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "spi1", 2 },
-               { "uart2", 3 },
+               { "uart3", 3 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 18), {
+       { SXIPIO_PIN(G, 10), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "spi1", 2 },
-               { "uart2", 3 },
+               { "uart3", 3 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 19), {
+       { SXIPIO_PIN(G, 11), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
                { "spi1", 2 },
-               { "uart2", 3 },
+               { "uart3", 3 },
                { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 20), {
+       { SXIPIO_PIN(G, 12), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ps2", 2 },
-               { "uart7", 3 },
-               { "hdmi", 4 },
+               { "spi1", 2 },
+               { "uart3", 3 },
+               { "irq", 6 },
        } },
-       { SXIPIO_PIN(I, 21), {
+       { SXIPIO_PIN(G, 13), {
                { "gpio_in", 0 },
                { "gpio_out", 1 },
-               { "ps2", 2 },
-               { "uart7", 3 },
-               { "hdmi", 4 },
+               { "spi1", 2 },
+               { "pwm", 3 },
+               { "uart2", 5 },
+               { "irq", 6 },
        } },
 };