Module Name: src Committed By: skrll Date: Tue Jun 28 05:19:03 UTC 2022
Modified Files: src/sys/arch/arm/sunxi: files.sunxi sunxi_de2_ccu.c sunxi_drm.c sunxi_emac.c sunxi_gpio.c sunxi_gpio.h sunxi_lcdc.c sunxi_mixer.c sunxi_platform.c sunxi_usbphy.c src/sys/arch/evbarm/conf: GENERIC Added Files: src/sys/arch/arm/sunxi: sun8i_v3s_gpio.c Log Message: Add support for Lichee Pi Zero from Rui-Xiang Guo on port-arm To generate a diff of this commit: cvs rdiff -u -r1.70 -r1.71 src/sys/arch/arm/sunxi/files.sunxi cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/sunxi/sun8i_v3s_gpio.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/sunxi/sunxi_de2_ccu.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/sunxi/sunxi_drm.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/sunxi/sunxi_emac.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/sunxi/sunxi_gpio.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/sunxi/sunxi_gpio.h cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/sunxi/sunxi_lcdc.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/sunxi/sunxi_mixer.c cvs rdiff -u -r1.45 -r1.46 src/sys/arch/arm/sunxi/sunxi_platform.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/sunxi/sunxi_usbphy.c cvs rdiff -u -r1.107 -r1.108 src/sys/arch/evbarm/conf/GENERIC Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/sunxi/files.sunxi diff -u src/sys/arch/arm/sunxi/files.sunxi:1.70 src/sys/arch/arm/sunxi/files.sunxi:1.71 --- src/sys/arch/arm/sunxi/files.sunxi:1.70 Sun Nov 7 17:13:12 2021 +++ src/sys/arch/arm/sunxi/files.sunxi Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -# $NetBSD: files.sunxi,v 1.70 2021/11/07 17:13:12 jmcneill Exp $ +# $NetBSD: files.sunxi,v 1.71 2022/06/28 05:19:03 skrll Exp $ # # Configuration info for Allwinner sunxi family SoCs # @@ -137,6 +137,7 @@ file arch/arm/sunxi/sun6i_a31_gpio.c su file arch/arm/sunxi/sun7i_a20_gpio.c sunxi_gpio & soc_sun7i_a20 file arch/arm/sunxi/sun8i_a83t_gpio.c sunxi_gpio & soc_sun8i_a83t file arch/arm/sunxi/sun8i_h3_gpio.c sunxi_gpio & soc_sun8i_h3 +file arch/arm/sunxi/sun8i_v3s_gpio.c sunxi_gpio & soc_sun8i_v3s file arch/arm/sunxi/sun9i_a80_gpio.c sunxi_gpio & soc_sun9i_a80 file arch/arm/sunxi/sun50i_a64_gpio.c sunxi_gpio & soc_sun50i_a64 file arch/arm/sunxi/sun50i_h6_gpio.c sunxi_gpio & soc_sun50i_h6 Index: src/sys/arch/arm/sunxi/sunxi_de2_ccu.c diff -u src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.7 src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.8 --- src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.7 Wed Jan 27 03:10:20 2021 +++ src/sys/arch/arm/sunxi/sunxi_de2_ccu.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_de2_ccu.c,v 1.7 2021/01/27 03:10:20 thorpej Exp $ */ +/* $NetBSD: sunxi_de2_ccu.c,v 1.8 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2019 Jared McNeill <jmcne...@invisible.ca> @@ -28,7 +28,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: sunxi_de2_ccu.c,v 1.7 2021/01/27 03:10:20 thorpej Exp $"); +__KERNEL_RCSID(1, "$NetBSD: sunxi_de2_ccu.c,v 1.8 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -100,6 +100,8 @@ static const struct sunxi_de2_ccu_config static const struct device_compatible_entry compat_data[] = { { .compat = "allwinner,sun8i-h3-de2-clk", .data = &sun8i_h3_de2_config }, + { .compat = "allwinner,sun8i-v3s-de2-clk", + .data = &sun8i_h3_de2_config }, { .compat = "allwinner,sun50i-a64-de2-clk", .data = &sun50i_a64_de2_config }, { .compat = "allwinner,sun50i-h5-de2-clk", Index: src/sys/arch/arm/sunxi/sunxi_drm.c diff -u src/sys/arch/arm/sunxi/sunxi_drm.c:1.24 src/sys/arch/arm/sunxi/sunxi_drm.c:1.25 --- src/sys/arch/arm/sunxi/sunxi_drm.c:1.24 Thu Apr 21 21:22:25 2022 +++ src/sys/arch/arm/sunxi/sunxi_drm.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_drm.c,v 1.24 2022/04/21 21:22:25 andvar Exp $ */ +/* $NetBSD: sunxi_drm.c,v 1.25 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.24 2022/04/21 21:22:25 andvar Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.25 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -69,6 +69,7 @@ static TAILQ_HEAD(, sunxi_drm_endpoint) static const struct device_compatible_entry compat_data[] = { { .compat = "allwinner,sun8i-h3-display-engine" }, + { .compat = "allwinner,sun8i-v3s-display-engine" }, { .compat = "allwinner,sun50i-a64-display-engine" }, DEVICE_COMPAT_EOL }; Index: src/sys/arch/arm/sunxi/sunxi_emac.c diff -u src/sys/arch/arm/sunxi/sunxi_emac.c:1.35 src/sys/arch/arm/sunxi/sunxi_emac.c:1.36 --- src/sys/arch/arm/sunxi/sunxi_emac.c:1.35 Fri Dec 31 14:25:22 2021 +++ src/sys/arch/arm/sunxi/sunxi_emac.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_emac.c,v 1.35 2021/12/31 14:25:22 riastradh Exp $ */ +/* $NetBSD: sunxi_emac.c,v 1.36 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2016-2017 Jared McNeill <jmcne...@invisible.ca> @@ -33,7 +33,7 @@ #include "opt_net_mpsafe.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_emac.c,v 1.35 2021/12/31 14:25:22 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_emac.c,v 1.36 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -134,6 +134,7 @@ enum sunxi_emac_type { static const struct device_compatible_entry compat_data[] = { { .compat = "allwinner,sun8i-a83t-emac", .value = EMAC_A83T }, { .compat = "allwinner,sun8i-h3-emac", .value = EMAC_H3 }, + { .compat = "allwinner,sun8i-v3s-emac", .value = EMAC_H3 }, { .compat = "allwinner,sun50i-a64-emac", .value = EMAC_A64 }, { .compat = "allwinner,sun50i-h6-emac", .value = EMAC_H6 }, DEVICE_COMPAT_EOL Index: src/sys/arch/arm/sunxi/sunxi_gpio.c diff -u src/sys/arch/arm/sunxi/sunxi_gpio.c:1.37 src/sys/arch/arm/sunxi/sunxi_gpio.c:1.38 --- src/sys/arch/arm/sunxi/sunxi_gpio.c:1.37 Sat Aug 7 16:18:45 2021 +++ src/sys/arch/arm/sunxi/sunxi_gpio.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_gpio.c,v 1.37 2021/08/07 16:18:45 thorpej Exp $ */ +/* $NetBSD: sunxi_gpio.c,v 1.38 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca> @@ -29,7 +29,7 @@ #include "opt_soc.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_gpio.c,v 1.37 2021/08/07 16:18:45 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_gpio.c,v 1.38 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -111,6 +111,10 @@ static const struct device_compatible_en { .compat = "allwinner,sun8i-h3-r-pinctrl", .data = &sun8i_h3_r_padconf }, #endif +#ifdef SOC_SUN8I_V3S + { .compat = "allwinner,sun8i-v3s-pinctrl", + .data = &sun8i_v3s_padconf }, +#endif #ifdef SOC_SUN9I_A80 { .compat = "allwinner,sun9i-a80-pinctrl", .data = &sun9i_a80_padconf }, Index: src/sys/arch/arm/sunxi/sunxi_gpio.h diff -u src/sys/arch/arm/sunxi/sunxi_gpio.h:1.9 src/sys/arch/arm/sunxi/sunxi_gpio.h:1.10 --- src/sys/arch/arm/sunxi/sunxi_gpio.h:1.9 Mon May 27 23:27:14 2019 +++ src/sys/arch/arm/sunxi/sunxi_gpio.h Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_gpio.h,v 1.9 2019/05/27 23:27:14 jmcneill Exp $ */ +/* $NetBSD: sunxi_gpio.h,v 1.10 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca> @@ -79,6 +79,10 @@ extern const struct sunxi_gpio_padconf s extern const struct sunxi_gpio_padconf sun8i_h3_r_padconf; #endif +#ifdef SOC_SUN8I_V3S +extern const struct sunxi_gpio_padconf sun8i_v3s_padconf; +#endif + #ifdef SOC_SUN9I_A80 extern const struct sunxi_gpio_padconf sun9i_a80_padconf; extern const struct sunxi_gpio_padconf sun9i_a80_r_padconf; Index: src/sys/arch/arm/sunxi/sunxi_lcdc.c diff -u src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.14 src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.15 --- src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.14 Sun Dec 19 11:01:10 2021 +++ src/sys/arch/arm/sunxi/sunxi_lcdc.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_lcdc.c,v 1.14 2021/12/19 11:01:10 riastradh Exp $ */ +/* $NetBSD: sunxi_lcdc.c,v 1.15 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_lcdc.c,v 1.14 2021/12/19 11:01:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_lcdc.c,v 1.15 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -109,6 +109,7 @@ enum tcon_type { static const struct device_compatible_entry compat_data[] = { { .compat = "allwinner,sun8i-h3-tcon-tv", .value = TYPE_TCON1 }, + { .compat = "allwinner,sun8i-v3s-tcon", .value = TYPE_TCON0 }, { .compat = "allwinner,sun50i-a64-tcon-lcd", .value = TYPE_TCON0 }, { .compat = "allwinner,sun50i-a64-tcon-tv", .value = TYPE_TCON1 }, DEVICE_COMPAT_EOL Index: src/sys/arch/arm/sunxi/sunxi_mixer.c diff -u src/sys/arch/arm/sunxi/sunxi_mixer.c:1.18 src/sys/arch/arm/sunxi/sunxi_mixer.c:1.19 --- src/sys/arch/arm/sunxi/sunxi_mixer.c:1.18 Sun Dec 19 11:01:10 2021 +++ src/sys/arch/arm/sunxi/sunxi_mixer.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_mixer.c,v 1.18 2021/12/19 11:01:10 riastradh Exp $ */ +/* $NetBSD: sunxi_mixer.c,v 1.19 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_mixer.c,v 1.18 2021/12/19 11:01:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_mixer.c,v 1.19 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -203,6 +203,8 @@ struct sunxi_mixer_compat_data mixer1_da static const struct device_compatible_entry compat_data[] = { { .compat = "allwinner,sun8i-h3-de2-mixer-0", .data = &mixer0_data }, + { .compat = "allwinner,sun8i-v3s-de2-mixer", + .data = &mixer0_data }, { .compat = "allwinner,sun50i-a64-de2-mixer-0", .data = &mixer0_data }, { .compat = "allwinner,sun50i-a64-de2-mixer-1", Index: src/sys/arch/arm/sunxi/sunxi_platform.c diff -u src/sys/arch/arm/sunxi/sunxi_platform.c:1.45 src/sys/arch/arm/sunxi/sunxi_platform.c:1.46 --- src/sys/arch/arm/sunxi/sunxi_platform.c:1.45 Sat Jul 31 11:34:40 2021 +++ src/sys/arch/arm/sunxi/sunxi_platform.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_platform.c,v 1.45 2021/07/31 11:34:40 tnn Exp $ */ +/* $NetBSD: sunxi_platform.c,v 1.46 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca> @@ -31,7 +31,7 @@ #include "opt_console.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.45 2021/07/31 11:34:40 tnn Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.46 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -490,6 +490,7 @@ static const struct arm_platform sun8i_p ARM_PLATFORM(sun8i_h2plus, "allwinner,sun8i-h2-plus", &sun8i_platform); ARM_PLATFORM(sun8i_h3, "allwinner,sun8i-h3", &sun8i_platform); +ARM_PLATFORM(sun8i_v3s, "allwinner,sun8i-v3s", &sun8i_platform); static const struct arm_platform sun8i_a83t_platform = { .ap_devmap = sun8i_a83t_platform_devmap, Index: src/sys/arch/arm/sunxi/sunxi_usbphy.c diff -u src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.16 src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.17 --- src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.16 Wed Jan 27 03:10:20 2021 +++ src/sys/arch/arm/sunxi/sunxi_usbphy.c Tue Jun 28 05:19:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_usbphy.c,v 1.16 2021/01/27 03:10:20 thorpej Exp $ */ +/* $NetBSD: sunxi_usbphy.c,v 1.17 2022/06/28 05:19:03 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca> @@ -28,7 +28,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_usbphy.c,v 1.16 2021/01/27 03:10:20 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_usbphy.c,v 1.17 2022/06/28 05:19:03 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -91,6 +91,7 @@ static const struct device_compatible_en { .compat = "allwinner,sun7i-a20-usb-phy", .value = USBPHY_A20 }, { .compat = "allwinner,sun8i-a83t-usb-phy", .value = USBPHY_A83T }, { .compat = "allwinner,sun8i-h3-usb-phy", .value = USBPHY_H3 }, + { .compat = "allwinner,sun8i-v3s-usb-phy", .value = USBPHY_H3 }, { .compat = "allwinner,sun50i-a64-usb-phy", .value = USBPHY_A64 }, { .compat = "allwinner,sun50i-h6-usb-phy", .value = USBPHY_H6 }, DEVICE_COMPAT_EOL Index: src/sys/arch/evbarm/conf/GENERIC diff -u src/sys/arch/evbarm/conf/GENERIC:1.107 src/sys/arch/evbarm/conf/GENERIC:1.108 --- src/sys/arch/evbarm/conf/GENERIC:1.107 Sat Apr 2 11:16:07 2022 +++ src/sys/arch/evbarm/conf/GENERIC Tue Jun 28 05:19:03 2022 @@ -1,5 +1,5 @@ # -# $NetBSD: GENERIC,v 1.107 2022/04/02 11:16:07 skrll Exp $ +# $NetBSD: GENERIC,v 1.108 2022/06/28 05:19:03 skrll Exp $ # # GENERIC ARM (aarch32) kernel # @@ -26,6 +26,7 @@ options SOC_SUN6I_A31 options SOC_SUN7I_A20 options SOC_SUN8I_A83T options SOC_SUN8I_H3 +options SOC_SUN8I_V3S options SOC_SUN9I_A80 options SOC_TEGRA124 options SOC_VIRT Added files: Index: src/sys/arch/arm/sunxi/sun8i_v3s_gpio.c diff -u /dev/null src/sys/arch/arm/sunxi/sun8i_v3s_gpio.c:1.1 --- /dev/null Tue Jun 28 05:19:03 2022 +++ src/sys/arch/arm/sunxi/sun8i_v3s_gpio.c Tue Jun 28 05:19:03 2022 @@ -0,0 +1,102 @@ +/* $NetBSD: sun8i_v3s_gpio.c,v 1.1 2022/06/28 05:19:03 skrll Exp $ */ + +/*- + * Copyright (c) 2021 Rui-Xiang Guo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include <sys/cdefs.h> +__KERNEL_RCSID(0, "$NetBSD: sun8i_v3s_gpio.c,v 1.1 2022/06/28 05:19:03 skrll Exp $"); + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/kernel.h> +#include <sys/types.h> + +#include <arm/sunxi/sunxi_gpio.h> + +static const struct sunxi_gpio_pins v3s_pins[] = { + {"PB0", 1, 0, {"gpio_in", "gpio_out", "uart2", NULL, NULL, NULL, "irq", NULL}, 6, 0}, + {"PB1", 1, 1, {"gpio_in", "gpio_out", "uart2", NULL, NULL, NULL, "irq", NULL}, 6, 1}, + {"PB2", 1, 2, {"gpio_in", "gpio_out", "uart2", NULL, NULL, NULL, "irq", NULL}, 6, 2}, + {"PB3", 1, 3, {"gpio_in", "gpio_out", "uart2", NULL, NULL, NULL, "irq", NULL}, 6, 3}, + {"PB4", 1, 4, {"gpio_in", "gpio_out", "pwm0", NULL, NULL, NULL, "irq", NULL}, 6, 4}, + {"PB5", 1, 5, {"gpio_in", "gpio_out", "pwm1", NULL, NULL, NULL, "irq", NULL}, 6, 5}, + {"PB6", 1, 6, {"gpio_in", "gpio_out", "i2c0", NULL, NULL, NULL, "irq", NULL}, 6, 6}, + {"PB7", 1, 7, {"gpio_in", "gpio_out", "i2c0", NULL, NULL, NULL, "irq", NULL}, 6, 7}, + {"PB8", 1, 8, {"gpio_in", "gpio_out", "i2c1", "uart0", NULL, NULL, "irq", NULL}, 6, 8}, + {"PB9", 1, 9, {"gpio_in", "gpio_out", "i2c1", "uart0", NULL, NULL, "irq", NULL}, 6, 9}, + + {"PC0", 2, 0, {"gpio_in", "gpio_out", "mmc2", "spi0", NULL, NULL, NULL, NULL}}, + {"PC1", 2, 1, {"gpio_in", "gpio_out", "mmc2", "spi0", NULL, NULL, NULL, NULL}}, + {"PC2", 2, 2, {"gpio_in", "gpio_out", "mmc2", "spi0", NULL, NULL, NULL, NULL}}, + {"PC3", 2, 3, {"gpio_in", "gpio_out", "mmc2", "spi0", NULL, NULL, NULL, NULL}}, + + {"PE0", 4, 0, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE1", 4, 1, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE2", 4, 2, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE3", 4, 3, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE4", 4, 4, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE5", 4, 5, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE6", 4, 6, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE7", 4, 7, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE8", 4, 8, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE9", 4, 9, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE10", 4, 10, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE11", 4, 11, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE12", 4, 12, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE13", 4, 13, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE14", 4, 14, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE15", 4, 15, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE16", 4, 16, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE17", 4, 17, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE18", 4, 18, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE19", 4, 19, {"gpio_in", "gpio_out", "csi", "lcd", NULL, NULL, NULL, NULL}}, + {"PE20", 4, 20, {"gpio_in", "gpio_out", "csi", "csi_mipi", NULL, NULL, NULL, NULL}}, + {"PE21", 4, 21, {"gpio_in", "gpio_out", "csi", "i2c1", "uart1", NULL, NULL, NULL}}, + {"PE22", 4, 22, {"gpio_in", "gpio_out", "csi", "i2c1", "uart1", NULL, NULL, NULL}}, + {"PE23", 4, 23, {"gpio_in", "gpio_out", "lcd", "uart1", NULL, NULL, NULL, NULL}}, + {"PE24", 4, 24, {"gpio_in", "gpio_out", "lcd", "uart1", NULL, NULL, NULL, NULL}}, + + {"PF0", 5, 0, {"gpio_in", "gpio_out", "mmc0", "jtag", NULL, NULL, NULL, NULL}}, + {"PF1", 5, 1, {"gpio_in", "gpio_out", "mmc0", "jtag", NULL, NULL, NULL, NULL}}, + {"PF2", 5, 2, {"gpio_in", "gpio_out", "mmc0", "uart0", NULL, NULL, NULL, NULL}}, + {"PF3", 5, 3, {"gpio_in", "gpio_out", "mmc0", "jtag", NULL, NULL, NULL, NULL}}, + {"PF4", 5, 4, {"gpio_in", "gpio_out", "mmc0", "uart0", NULL, NULL, NULL, NULL}}, + {"PF5", 5, 5, {"gpio_in", "gpio_out", "mmc0", "jtag", NULL, NULL, NULL, NULL}}, + {"PF6", 5, 6, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}}, + + {"PG0", 6, 0, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 0}, + {"PG1", 6, 1, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 1}, + {"PG2", 6, 2, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 2}, + {"PG3", 6, 3, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 3}, + {"PG4", 6, 4, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 4}, + {"PG5", 6, 5, {"gpio_in", "gpio_out", "mmc1", NULL, NULL, NULL, "irq", NULL}, 6, 5}, +}; + +const struct sunxi_gpio_padconf sun8i_v3s_padconf = { + .npins = __arraycount(v3s_pins), + .pins = v3s_pins, +};