18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ or MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Pin controller and GPIO driver for Amlogic Meson G12A SoC. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2018 Amlogic, Inc. All rights reserved. 68c2ecf20Sopenharmony_ci * Author: Xingyu Chen <xingyu.chen@amlogic.com> 78c2ecf20Sopenharmony_ci * Author: Yixun Lan <yixun.lan@amlogic.com> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-g12a-gpio.h> 118c2ecf20Sopenharmony_ci#include "pinctrl-meson.h" 128c2ecf20Sopenharmony_ci#include "pinctrl-meson-axg-pmx.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_g12a_periphs_pins[] = { 158c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_0), 168c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_1), 178c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_2), 188c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_3), 198c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_4), 208c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_5), 218c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_6), 228c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_7), 238c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_8), 248c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_9), 258c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_10), 268c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_11), 278c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_12), 288c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_13), 298c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_14), 308c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_15), 318c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_0), 328c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_1), 338c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_2), 348c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_3), 358c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_4), 368c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_5), 378c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_6), 388c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_7), 398c2ecf20Sopenharmony_ci MESON_PIN(GPIOH_8), 408c2ecf20Sopenharmony_ci MESON_PIN(BOOT_0), 418c2ecf20Sopenharmony_ci MESON_PIN(BOOT_1), 428c2ecf20Sopenharmony_ci MESON_PIN(BOOT_2), 438c2ecf20Sopenharmony_ci MESON_PIN(BOOT_3), 448c2ecf20Sopenharmony_ci MESON_PIN(BOOT_4), 458c2ecf20Sopenharmony_ci MESON_PIN(BOOT_5), 468c2ecf20Sopenharmony_ci MESON_PIN(BOOT_6), 478c2ecf20Sopenharmony_ci MESON_PIN(BOOT_7), 488c2ecf20Sopenharmony_ci MESON_PIN(BOOT_8), 498c2ecf20Sopenharmony_ci MESON_PIN(BOOT_9), 508c2ecf20Sopenharmony_ci MESON_PIN(BOOT_10), 518c2ecf20Sopenharmony_ci MESON_PIN(BOOT_11), 528c2ecf20Sopenharmony_ci MESON_PIN(BOOT_12), 538c2ecf20Sopenharmony_ci MESON_PIN(BOOT_13), 548c2ecf20Sopenharmony_ci MESON_PIN(BOOT_14), 558c2ecf20Sopenharmony_ci MESON_PIN(BOOT_15), 568c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_0), 578c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_1), 588c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_2), 598c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_3), 608c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_4), 618c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_5), 628c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_6), 638c2ecf20Sopenharmony_ci MESON_PIN(GPIOC_7), 648c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_0), 658c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_1), 668c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_2), 678c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_3), 688c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_4), 698c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_5), 708c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_6), 718c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_7), 728c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_8), 738c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_9), 748c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_10), 758c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_11), 768c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_12), 778c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_13), 788c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_14), 798c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_15), 808c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_0), 818c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_1), 828c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_2), 838c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_3), 848c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_4), 858c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_5), 868c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_6), 878c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_7), 888c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_8), 898c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_9), 908c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_10), 918c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_11), 928c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_12), 938c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_13), 948c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_14), 958c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_15), 968c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_16), 978c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_17), 988c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_18), 998c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_19), 1008c2ecf20Sopenharmony_ci}; 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_g12a_aobus_pins[] = { 1038c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_0), 1048c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_1), 1058c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_2), 1068c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_3), 1078c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_4), 1088c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_5), 1098c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_6), 1108c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_7), 1118c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_8), 1128c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_9), 1138c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_10), 1148c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_11), 1158c2ecf20Sopenharmony_ci MESON_PIN(GPIOE_0), 1168c2ecf20Sopenharmony_ci MESON_PIN(GPIOE_1), 1178c2ecf20Sopenharmony_ci MESON_PIN(GPIOE_2), 1188c2ecf20Sopenharmony_ci}; 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci/* emmc */ 1218c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d0_pins[] = { BOOT_0 }; 1228c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d1_pins[] = { BOOT_1 }; 1238c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d2_pins[] = { BOOT_2 }; 1248c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d3_pins[] = { BOOT_3 }; 1258c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d4_pins[] = { BOOT_4 }; 1268c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d5_pins[] = { BOOT_5 }; 1278c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d6_pins[] = { BOOT_6 }; 1288c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d7_pins[] = { BOOT_7 }; 1298c2ecf20Sopenharmony_cistatic const unsigned int emmc_clk_pins[] = { BOOT_8 }; 1308c2ecf20Sopenharmony_cistatic const unsigned int emmc_cmd_pins[] = { BOOT_10 }; 1318c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_ds_pins[] = { BOOT_13 }; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci/* nand */ 1348c2ecf20Sopenharmony_cistatic const unsigned int nand_wen_clk_pins[] = { BOOT_8 }; 1358c2ecf20Sopenharmony_cistatic const unsigned int nand_ale_pins[] = { BOOT_9 }; 1368c2ecf20Sopenharmony_cistatic const unsigned int nand_cle_pins[] = { BOOT_10 }; 1378c2ecf20Sopenharmony_cistatic const unsigned int nand_ce0_pins[] = { BOOT_11 }; 1388c2ecf20Sopenharmony_cistatic const unsigned int nand_ren_wr_pins[] = { BOOT_12 }; 1398c2ecf20Sopenharmony_cistatic const unsigned int nand_rb0_pins[] = { BOOT_14 }; 1408c2ecf20Sopenharmony_cistatic const unsigned int nand_ce1_pins[] = { BOOT_15 }; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci/* nor */ 1438c2ecf20Sopenharmony_cistatic const unsigned int nor_hold_pins[] = { BOOT_3 }; 1448c2ecf20Sopenharmony_cistatic const unsigned int nor_d_pins[] = { BOOT_4 }; 1458c2ecf20Sopenharmony_cistatic const unsigned int nor_q_pins[] = { BOOT_5 }; 1468c2ecf20Sopenharmony_cistatic const unsigned int nor_c_pins[] = { BOOT_6 }; 1478c2ecf20Sopenharmony_cistatic const unsigned int nor_wp_pins[] = { BOOT_7 }; 1488c2ecf20Sopenharmony_cistatic const unsigned int nor_cs_pins[] = { BOOT_14 }; 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci/* sdio */ 1518c2ecf20Sopenharmony_cistatic const unsigned int sdio_d0_pins[] = { GPIOX_0 }; 1528c2ecf20Sopenharmony_cistatic const unsigned int sdio_d1_pins[] = { GPIOX_1 }; 1538c2ecf20Sopenharmony_cistatic const unsigned int sdio_d2_pins[] = { GPIOX_2 }; 1548c2ecf20Sopenharmony_cistatic const unsigned int sdio_d3_pins[] = { GPIOX_3 }; 1558c2ecf20Sopenharmony_cistatic const unsigned int sdio_clk_pins[] = { GPIOX_4 }; 1568c2ecf20Sopenharmony_cistatic const unsigned int sdio_cmd_pins[] = { GPIOX_5 }; 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci/* sdcard */ 1598c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d0_c_pins[] = { GPIOC_0 }; 1608c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d1_c_pins[] = { GPIOC_1 }; 1618c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d2_c_pins[] = { GPIOC_2 }; 1628c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d3_c_pins[] = { GPIOC_3 }; 1638c2ecf20Sopenharmony_cistatic const unsigned int sdcard_clk_c_pins[] = { GPIOC_4 }; 1648c2ecf20Sopenharmony_cistatic const unsigned int sdcard_cmd_c_pins[] = { GPIOC_5 }; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d0_z_pins[] = { GPIOZ_2 }; 1678c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d1_z_pins[] = { GPIOZ_3 }; 1688c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d2_z_pins[] = { GPIOZ_4 }; 1698c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d3_z_pins[] = { GPIOZ_5 }; 1708c2ecf20Sopenharmony_cistatic const unsigned int sdcard_clk_z_pins[] = { GPIOZ_6 }; 1718c2ecf20Sopenharmony_cistatic const unsigned int sdcard_cmd_z_pins[] = { GPIOZ_7 }; 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci/* spi0 */ 1748c2ecf20Sopenharmony_cistatic const unsigned int spi0_mosi_c_pins[] = { GPIOC_0 }; 1758c2ecf20Sopenharmony_cistatic const unsigned int spi0_miso_c_pins[] = { GPIOC_1 }; 1768c2ecf20Sopenharmony_cistatic const unsigned int spi0_ss0_c_pins[] = { GPIOC_2 }; 1778c2ecf20Sopenharmony_cistatic const unsigned int spi0_clk_c_pins[] = { GPIOC_3 }; 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_cistatic const unsigned int spi0_mosi_x_pins[] = { GPIOX_8 }; 1808c2ecf20Sopenharmony_cistatic const unsigned int spi0_miso_x_pins[] = { GPIOX_9 }; 1818c2ecf20Sopenharmony_cistatic const unsigned int spi0_ss0_x_pins[] = { GPIOX_10 }; 1828c2ecf20Sopenharmony_cistatic const unsigned int spi0_clk_x_pins[] = { GPIOX_11 }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci/* spi1 */ 1858c2ecf20Sopenharmony_cistatic const unsigned int spi1_mosi_pins[] = { GPIOH_4 }; 1868c2ecf20Sopenharmony_cistatic const unsigned int spi1_miso_pins[] = { GPIOH_5 }; 1878c2ecf20Sopenharmony_cistatic const unsigned int spi1_ss0_pins[] = { GPIOH_6 }; 1888c2ecf20Sopenharmony_cistatic const unsigned int spi1_clk_pins[] = { GPIOH_7 }; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci/* i2c0 */ 1918c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_c_pins[] = { GPIOC_5 }; 1928c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_c_pins[] = { GPIOC_6 }; 1938c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_z0_pins[] = { GPIOZ_0 }; 1948c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_z1_pins[] = { GPIOZ_1 }; 1958c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_z7_pins[] = { GPIOZ_7 }; 1968c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_z8_pins[] = { GPIOZ_8 }; 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ci/* i2c1 */ 1998c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_x_pins[] = { GPIOX_10 }; 2008c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_x_pins[] = { GPIOX_11 }; 2018c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_h2_pins[] = { GPIOH_2 }; 2028c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_h3_pins[] = { GPIOH_3 }; 2038c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_h6_pins[] = { GPIOH_6 }; 2048c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_h7_pins[] = { GPIOH_7 }; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci/* i2c2 */ 2078c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_x_pins[] = { GPIOX_17 }; 2088c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_x_pins[] = { GPIOX_18 }; 2098c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_z_pins[] = { GPIOZ_14 }; 2108c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_z_pins[] = { GPIOZ_15 }; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci/* i2c3 */ 2138c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_h_pins[] = { GPIOH_0 }; 2148c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_h_pins[] = { GPIOH_1 }; 2158c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_a_pins[] = { GPIOA_14 }; 2168c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_a_pins[] = { GPIOA_15 }; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci/* uart_a */ 2198c2ecf20Sopenharmony_cistatic const unsigned int uart_a_tx_pins[] = { GPIOX_12 }; 2208c2ecf20Sopenharmony_cistatic const unsigned int uart_a_rx_pins[] = { GPIOX_13 }; 2218c2ecf20Sopenharmony_cistatic const unsigned int uart_a_cts_pins[] = { GPIOX_14 }; 2228c2ecf20Sopenharmony_cistatic const unsigned int uart_a_rts_pins[] = { GPIOX_15 }; 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci/* uart_b */ 2258c2ecf20Sopenharmony_cistatic const unsigned int uart_b_tx_pins[] = { GPIOX_6 }; 2268c2ecf20Sopenharmony_cistatic const unsigned int uart_b_rx_pins[] = { GPIOX_7 }; 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ci/* uart_c */ 2298c2ecf20Sopenharmony_cistatic const unsigned int uart_c_rts_pins[] = { GPIOH_4 }; 2308c2ecf20Sopenharmony_cistatic const unsigned int uart_c_cts_pins[] = { GPIOH_5 }; 2318c2ecf20Sopenharmony_cistatic const unsigned int uart_c_rx_pins[] = { GPIOH_6 }; 2328c2ecf20Sopenharmony_cistatic const unsigned int uart_c_tx_pins[] = { GPIOH_7 }; 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ci/* uart_ao_a_c */ 2358c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_rx_c_pins[] = { GPIOC_2 }; 2368c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_tx_c_pins[] = { GPIOC_3 }; 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci/* iso7816 */ 2398c2ecf20Sopenharmony_cistatic const unsigned int iso7816_clk_c_pins[] = { GPIOC_5 }; 2408c2ecf20Sopenharmony_cistatic const unsigned int iso7816_data_c_pins[] = { GPIOC_6 }; 2418c2ecf20Sopenharmony_cistatic const unsigned int iso7816_clk_x_pins[] = { GPIOX_8 }; 2428c2ecf20Sopenharmony_cistatic const unsigned int iso7816_data_x_pins[] = { GPIOX_9 }; 2438c2ecf20Sopenharmony_cistatic const unsigned int iso7816_clk_h_pins[] = { GPIOH_6 }; 2448c2ecf20Sopenharmony_cistatic const unsigned int iso7816_data_h_pins[] = { GPIOH_7 }; 2458c2ecf20Sopenharmony_cistatic const unsigned int iso7816_clk_z_pins[] = { GPIOZ_0 }; 2468c2ecf20Sopenharmony_cistatic const unsigned int iso7816_data_z_pins[] = { GPIOZ_1 }; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci/* eth */ 2498c2ecf20Sopenharmony_cistatic const unsigned int eth_mdio_pins[] = { GPIOZ_0 }; 2508c2ecf20Sopenharmony_cistatic const unsigned int eth_mdc_pins[] = { GPIOZ_1 }; 2518c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_rx_clk_pins[] = { GPIOZ_2 }; 2528c2ecf20Sopenharmony_cistatic const unsigned int eth_rx_dv_pins[] = { GPIOZ_3 }; 2538c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd0_pins[] = { GPIOZ_4 }; 2548c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd1_pins[] = { GPIOZ_5 }; 2558c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd2_rgmii_pins[] = { GPIOZ_6 }; 2568c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd3_rgmii_pins[] = { GPIOZ_7 }; 2578c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_tx_clk_pins[] = { GPIOZ_8 }; 2588c2ecf20Sopenharmony_cistatic const unsigned int eth_txen_pins[] = { GPIOZ_9 }; 2598c2ecf20Sopenharmony_cistatic const unsigned int eth_txd0_pins[] = { GPIOZ_10 }; 2608c2ecf20Sopenharmony_cistatic const unsigned int eth_txd1_pins[] = { GPIOZ_11 }; 2618c2ecf20Sopenharmony_cistatic const unsigned int eth_txd2_rgmii_pins[] = { GPIOZ_12 }; 2628c2ecf20Sopenharmony_cistatic const unsigned int eth_txd3_rgmii_pins[] = { GPIOZ_13 }; 2638c2ecf20Sopenharmony_cistatic const unsigned int eth_link_led_pins[] = { GPIOZ_14 }; 2648c2ecf20Sopenharmony_cistatic const unsigned int eth_act_led_pins[] = { GPIOZ_15 }; 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci/* pwm_a */ 2678c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_pins[] = { GPIOX_6 }; 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ci/* pwm_b */ 2708c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_x7_pins[] = { GPIOX_7 }; 2718c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_x19_pins[] = { GPIOX_19 }; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci/* pwm_c */ 2748c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_c_pins[] = { GPIOC_4 }; 2758c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_x5_pins[] = { GPIOX_5 }; 2768c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_x8_pins[] = { GPIOX_8 }; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci/* pwm_d */ 2798c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x3_pins[] = { GPIOX_3 }; 2808c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x6_pins[] = { GPIOX_6 }; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci/* pwm_e */ 2838c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_pins[] = { GPIOX_16 }; 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci/* pwm_f */ 2868c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_x_pins[] = { GPIOX_7 }; 2878c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_h_pins[] = { GPIOH_5 }; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci/* cec_ao */ 2908c2ecf20Sopenharmony_cistatic const unsigned int cec_ao_a_h_pins[] = { GPIOH_3 }; 2918c2ecf20Sopenharmony_cistatic const unsigned int cec_ao_b_h_pins[] = { GPIOH_3 }; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci/* jtag_b */ 2948c2ecf20Sopenharmony_cistatic const unsigned int jtag_b_tdo_pins[] = { GPIOC_0 }; 2958c2ecf20Sopenharmony_cistatic const unsigned int jtag_b_tdi_pins[] = { GPIOC_1 }; 2968c2ecf20Sopenharmony_cistatic const unsigned int jtag_b_clk_pins[] = { GPIOC_4 }; 2978c2ecf20Sopenharmony_cistatic const unsigned int jtag_b_tms_pins[] = { GPIOC_5 }; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci/* bt565_a */ 3008c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_vs_pins[] = { GPIOZ_0 }; 3018c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_hs_pins[] = { GPIOZ_1 }; 3028c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_clk_pins[] = { GPIOZ_3 }; 3038c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din0_pins[] = { GPIOZ_4 }; 3048c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din1_pins[] = { GPIOZ_5 }; 3058c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din2_pins[] = { GPIOZ_6 }; 3068c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din3_pins[] = { GPIOZ_7 }; 3078c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din4_pins[] = { GPIOZ_8 }; 3088c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din5_pins[] = { GPIOZ_9 }; 3098c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din6_pins[] = { GPIOZ_10 }; 3108c2ecf20Sopenharmony_cistatic const unsigned int bt565_a_din7_pins[] = { GPIOZ_11 }; 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ci/* tsin_a */ 3138c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_valid_pins[] = { GPIOX_2 }; 3148c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_sop_pins[] = { GPIOX_1 }; 3158c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_din0_pins[] = { GPIOX_0 }; 3168c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_clk_pins[] = { GPIOX_3 }; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci/* tsin_b */ 3198c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_valid_x_pins[] = { GPIOX_9 }; 3208c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_sop_x_pins[] = { GPIOX_8 }; 3218c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din0_x_pins[] = { GPIOX_10 }; 3228c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_clk_x_pins[] = { GPIOX_11 }; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_valid_z_pins[] = { GPIOZ_2 }; 3258c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_sop_z_pins[] = { GPIOZ_3 }; 3268c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din0_z_pins[] = { GPIOZ_4 }; 3278c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_clk_z_pins[] = { GPIOZ_5 }; 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_fail_pins[] = { GPIOZ_6 }; 3308c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din1_pins[] = { GPIOZ_7 }; 3318c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din2_pins[] = { GPIOZ_8 }; 3328c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din3_pins[] = { GPIOZ_9 }; 3338c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din4_pins[] = { GPIOZ_10 }; 3348c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din5_pins[] = { GPIOZ_11 }; 3358c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din6_pins[] = { GPIOZ_12 }; 3368c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_din7_pins[] = { GPIOZ_13 }; 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci/* hdmitx */ 3398c2ecf20Sopenharmony_cistatic const unsigned int hdmitx_sda_pins[] = { GPIOH_0 }; 3408c2ecf20Sopenharmony_cistatic const unsigned int hdmitx_sck_pins[] = { GPIOH_1 }; 3418c2ecf20Sopenharmony_cistatic const unsigned int hdmitx_hpd_in_pins[] = { GPIOH_2 }; 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ci/* pdm */ 3448c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_c_pins[] = { GPIOC_0 }; 3458c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_c_pins[] = { GPIOC_1 }; 3468c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_c_pins[] = { GPIOC_2 }; 3478c2ecf20Sopenharmony_cistatic const unsigned int pdm_din3_c_pins[] = { GPIOC_3 }; 3488c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_c_pins[] = { GPIOC_4 }; 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_x_pins[] = { GPIOX_0 }; 3518c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_x_pins[] = { GPIOX_1 }; 3528c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_x_pins[] = { GPIOX_2 }; 3538c2ecf20Sopenharmony_cistatic const unsigned int pdm_din3_x_pins[] = { GPIOX_3 }; 3548c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_x_pins[] = { GPIOX_4 }; 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_z_pins[] = { GPIOZ_2 }; 3578c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_z_pins[] = { GPIOZ_3 }; 3588c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_z_pins[] = { GPIOZ_4 }; 3598c2ecf20Sopenharmony_cistatic const unsigned int pdm_din3_z_pins[] = { GPIOZ_5 }; 3608c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_z_pins[] = { GPIOZ_6 }; 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_a_pins[] = { GPIOA_8 }; 3638c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_a_pins[] = { GPIOA_9 }; 3648c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_a_pins[] = { GPIOA_6 }; 3658c2ecf20Sopenharmony_cistatic const unsigned int pdm_din3_a_pins[] = { GPIOA_5 }; 3668c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_a_pins[] = { GPIOA_7 }; 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ci/* spdif_in */ 3698c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_h_pins[] = { GPIOH_5 }; 3708c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a10_pins[] = { GPIOA_10 }; 3718c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a12_pins[] = { GPIOA_12 }; 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ci/* spdif_out */ 3748c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_h_pins[] = { GPIOH_4 }; 3758c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a11_pins[] = { GPIOA_11 }; 3768c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a13_pins[] = { GPIOA_13 }; 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci/* mclk0 */ 3798c2ecf20Sopenharmony_cistatic const unsigned int mclk0_a_pins[] = { GPIOA_0 }; 3808c2ecf20Sopenharmony_ci 3818c2ecf20Sopenharmony_ci/* mclk1 */ 3828c2ecf20Sopenharmony_cistatic const unsigned int mclk1_x_pins[] = { GPIOX_5 }; 3838c2ecf20Sopenharmony_cistatic const unsigned int mclk1_z_pins[] = { GPIOZ_8 }; 3848c2ecf20Sopenharmony_cistatic const unsigned int mclk1_a_pins[] = { GPIOA_11 }; 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_ci/* tdm */ 3878c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_slv_sclk_pins[] = { GPIOX_11 }; 3888c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_slv_fs_pins[] = { GPIOX_10 }; 3898c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_sclk_pins[] = { GPIOX_11 }; 3908c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_fs_pins[] = { GPIOX_10 }; 3918c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_din0_pins[] = { GPIOX_9 }; 3928c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_din1_pins[] = { GPIOX_8 }; 3938c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_dout0_pins[] = { GPIOX_9 }; 3948c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_dout1_pins[] = { GPIOX_8 }; 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_slv_sclk_pins[] = { GPIOA_1 }; 3978c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_slv_fs_pins[] = { GPIOA_2 }; 3988c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_sclk_pins[] = { GPIOA_1 }; 3998c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_fs_pins[] = { GPIOA_2 }; 4008c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din0_pins[] = { GPIOA_3 }; 4018c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din1_pins[] = { GPIOA_4 }; 4028c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din2_pins[] = { GPIOA_5 }; 4038c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din3_a_pins[] = { GPIOA_6 }; 4048c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din3_h_pins[] = { GPIOH_5 }; 4058c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout0_pins[] = { GPIOA_3 }; 4068c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout1_pins[] = { GPIOA_4 }; 4078c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout2_pins[] = { GPIOA_5 }; 4088c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout3_a_pins[] = { GPIOA_6 }; 4098c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout3_h_pins[] = { GPIOH_5 }; 4108c2ecf20Sopenharmony_ci 4118c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_slv_sclk_a_pins[] = { GPIOA_12 }; 4128c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_slv_fs_a_pins[] = { GPIOA_13 }; 4138c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_slv_sclk_z_pins[] = { GPIOZ_7 }; 4148c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_slv_fs_z_pins[] = { GPIOZ_6 }; 4158c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_sclk_a_pins[] = { GPIOA_12 }; 4168c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_fs_a_pins[] = { GPIOA_13 }; 4178c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_sclk_z_pins[] = { GPIOZ_7 }; 4188c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_fs_z_pins[] = { GPIOZ_6 }; 4198c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din0_a_pins[] = { GPIOA_10 }; 4208c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din1_a_pins[] = { GPIOA_9 }; 4218c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din2_a_pins[] = { GPIOA_8 }; 4228c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din3_a_pins[] = { GPIOA_7 }; 4238c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din0_z_pins[] = { GPIOZ_2 }; 4248c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din1_z_pins[] = { GPIOZ_3 }; 4258c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din2_z_pins[] = { GPIOZ_4 }; 4268c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_din3_z_pins[] = { GPIOZ_5 }; 4278c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout0_a_pins[] = { GPIOA_10 }; 4288c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout1_a_pins[] = { GPIOA_9 }; 4298c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout2_a_pins[] = { GPIOA_8 }; 4308c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout3_a_pins[] = { GPIOA_7 }; 4318c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout0_z_pins[] = { GPIOZ_2 }; 4328c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout1_z_pins[] = { GPIOZ_3 }; 4338c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout2_z_pins[] = { GPIOZ_4 }; 4348c2ecf20Sopenharmony_cistatic const unsigned int tdm_c_dout3_z_pins[] = { GPIOZ_5 }; 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_g12a_periphs_groups[] = { 4378c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_0), 4388c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_1), 4398c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_2), 4408c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_3), 4418c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_4), 4428c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_5), 4438c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_6), 4448c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_7), 4458c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_8), 4468c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_9), 4478c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_10), 4488c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_11), 4498c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_12), 4508c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_13), 4518c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_14), 4528c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_15), 4538c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_0), 4548c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_1), 4558c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_2), 4568c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_3), 4578c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_4), 4588c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_5), 4598c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_6), 4608c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_7), 4618c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_8), 4628c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_0), 4638c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_1), 4648c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_2), 4658c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_3), 4668c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_4), 4678c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_5), 4688c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_6), 4698c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_7), 4708c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_8), 4718c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_9), 4728c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_10), 4738c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_11), 4748c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_12), 4758c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_13), 4768c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_14), 4778c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_15), 4788c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_0), 4798c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_1), 4808c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_2), 4818c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_3), 4828c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_4), 4838c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_5), 4848c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_6), 4858c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOC_7), 4868c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_0), 4878c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_1), 4888c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_2), 4898c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_3), 4908c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_4), 4918c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_5), 4928c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_6), 4938c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_7), 4948c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_8), 4958c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_9), 4968c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_10), 4978c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_11), 4988c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_12), 4998c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_13), 5008c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_14), 5018c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_15), 5028c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_0), 5038c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_1), 5048c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_2), 5058c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_3), 5068c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_4), 5078c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_5), 5088c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_6), 5098c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_7), 5108c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_8), 5118c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_9), 5128c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_10), 5138c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_11), 5148c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_12), 5158c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_13), 5168c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_14), 5178c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_15), 5188c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_16), 5198c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_17), 5208c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_18), 5218c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_19), 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_ci /* bank BOOT */ 5248c2ecf20Sopenharmony_ci GROUP(emmc_nand_d0, 1), 5258c2ecf20Sopenharmony_ci GROUP(emmc_nand_d1, 1), 5268c2ecf20Sopenharmony_ci GROUP(emmc_nand_d2, 1), 5278c2ecf20Sopenharmony_ci GROUP(emmc_nand_d3, 1), 5288c2ecf20Sopenharmony_ci GROUP(emmc_nand_d4, 1), 5298c2ecf20Sopenharmony_ci GROUP(emmc_nand_d5, 1), 5308c2ecf20Sopenharmony_ci GROUP(emmc_nand_d6, 1), 5318c2ecf20Sopenharmony_ci GROUP(emmc_nand_d7, 1), 5328c2ecf20Sopenharmony_ci GROUP(emmc_clk, 1), 5338c2ecf20Sopenharmony_ci GROUP(emmc_cmd, 1), 5348c2ecf20Sopenharmony_ci GROUP(emmc_nand_ds, 1), 5358c2ecf20Sopenharmony_ci GROUP(nand_ce0, 2), 5368c2ecf20Sopenharmony_ci GROUP(nand_ale, 2), 5378c2ecf20Sopenharmony_ci GROUP(nand_cle, 2), 5388c2ecf20Sopenharmony_ci GROUP(nand_wen_clk, 2), 5398c2ecf20Sopenharmony_ci GROUP(nand_ren_wr, 2), 5408c2ecf20Sopenharmony_ci GROUP(nand_rb0, 2), 5418c2ecf20Sopenharmony_ci GROUP(nand_ce1, 2), 5428c2ecf20Sopenharmony_ci GROUP(nor_hold, 3), 5438c2ecf20Sopenharmony_ci GROUP(nor_d, 3), 5448c2ecf20Sopenharmony_ci GROUP(nor_q, 3), 5458c2ecf20Sopenharmony_ci GROUP(nor_c, 3), 5468c2ecf20Sopenharmony_ci GROUP(nor_wp, 3), 5478c2ecf20Sopenharmony_ci GROUP(nor_cs, 3), 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ci /* bank GPIOZ */ 5508c2ecf20Sopenharmony_ci GROUP(sdcard_d0_z, 5), 5518c2ecf20Sopenharmony_ci GROUP(sdcard_d1_z, 5), 5528c2ecf20Sopenharmony_ci GROUP(sdcard_d2_z, 5), 5538c2ecf20Sopenharmony_ci GROUP(sdcard_d3_z, 5), 5548c2ecf20Sopenharmony_ci GROUP(sdcard_clk_z, 5), 5558c2ecf20Sopenharmony_ci GROUP(sdcard_cmd_z, 5), 5568c2ecf20Sopenharmony_ci GROUP(i2c0_sda_z0, 4), 5578c2ecf20Sopenharmony_ci GROUP(i2c0_sck_z1, 4), 5588c2ecf20Sopenharmony_ci GROUP(i2c0_sda_z7, 7), 5598c2ecf20Sopenharmony_ci GROUP(i2c0_sck_z8, 7), 5608c2ecf20Sopenharmony_ci GROUP(i2c2_sda_z, 3), 5618c2ecf20Sopenharmony_ci GROUP(i2c2_sck_z, 3), 5628c2ecf20Sopenharmony_ci GROUP(iso7816_clk_z, 3), 5638c2ecf20Sopenharmony_ci GROUP(iso7816_data_z, 3), 5648c2ecf20Sopenharmony_ci GROUP(eth_mdio, 1), 5658c2ecf20Sopenharmony_ci GROUP(eth_mdc, 1), 5668c2ecf20Sopenharmony_ci GROUP(eth_rgmii_rx_clk, 1), 5678c2ecf20Sopenharmony_ci GROUP(eth_rx_dv, 1), 5688c2ecf20Sopenharmony_ci GROUP(eth_rxd0, 1), 5698c2ecf20Sopenharmony_ci GROUP(eth_rxd1, 1), 5708c2ecf20Sopenharmony_ci GROUP(eth_rxd2_rgmii, 1), 5718c2ecf20Sopenharmony_ci GROUP(eth_rxd3_rgmii, 1), 5728c2ecf20Sopenharmony_ci GROUP(eth_rgmii_tx_clk, 1), 5738c2ecf20Sopenharmony_ci GROUP(eth_txen, 1), 5748c2ecf20Sopenharmony_ci GROUP(eth_txd0, 1), 5758c2ecf20Sopenharmony_ci GROUP(eth_txd1, 1), 5768c2ecf20Sopenharmony_ci GROUP(eth_txd2_rgmii, 1), 5778c2ecf20Sopenharmony_ci GROUP(eth_txd3_rgmii, 1), 5788c2ecf20Sopenharmony_ci GROUP(eth_link_led, 1), 5798c2ecf20Sopenharmony_ci GROUP(eth_act_led, 1), 5808c2ecf20Sopenharmony_ci GROUP(bt565_a_vs, 2), 5818c2ecf20Sopenharmony_ci GROUP(bt565_a_hs, 2), 5828c2ecf20Sopenharmony_ci GROUP(bt565_a_clk, 2), 5838c2ecf20Sopenharmony_ci GROUP(bt565_a_din0, 2), 5848c2ecf20Sopenharmony_ci GROUP(bt565_a_din1, 2), 5858c2ecf20Sopenharmony_ci GROUP(bt565_a_din2, 2), 5868c2ecf20Sopenharmony_ci GROUP(bt565_a_din3, 2), 5878c2ecf20Sopenharmony_ci GROUP(bt565_a_din4, 2), 5888c2ecf20Sopenharmony_ci GROUP(bt565_a_din5, 2), 5898c2ecf20Sopenharmony_ci GROUP(bt565_a_din6, 2), 5908c2ecf20Sopenharmony_ci GROUP(bt565_a_din7, 2), 5918c2ecf20Sopenharmony_ci GROUP(tsin_b_valid_z, 3), 5928c2ecf20Sopenharmony_ci GROUP(tsin_b_sop_z, 3), 5938c2ecf20Sopenharmony_ci GROUP(tsin_b_din0_z, 3), 5948c2ecf20Sopenharmony_ci GROUP(tsin_b_clk_z, 3), 5958c2ecf20Sopenharmony_ci GROUP(tsin_b_fail, 3), 5968c2ecf20Sopenharmony_ci GROUP(tsin_b_din1, 3), 5978c2ecf20Sopenharmony_ci GROUP(tsin_b_din2, 3), 5988c2ecf20Sopenharmony_ci GROUP(tsin_b_din3, 3), 5998c2ecf20Sopenharmony_ci GROUP(tsin_b_din4, 3), 6008c2ecf20Sopenharmony_ci GROUP(tsin_b_din5, 3), 6018c2ecf20Sopenharmony_ci GROUP(tsin_b_din6, 3), 6028c2ecf20Sopenharmony_ci GROUP(tsin_b_din7, 3), 6038c2ecf20Sopenharmony_ci GROUP(pdm_din0_z, 7), 6048c2ecf20Sopenharmony_ci GROUP(pdm_din1_z, 7), 6058c2ecf20Sopenharmony_ci GROUP(pdm_din2_z, 7), 6068c2ecf20Sopenharmony_ci GROUP(pdm_din3_z, 7), 6078c2ecf20Sopenharmony_ci GROUP(pdm_dclk_z, 7), 6088c2ecf20Sopenharmony_ci GROUP(tdm_c_slv_sclk_z, 6), 6098c2ecf20Sopenharmony_ci GROUP(tdm_c_slv_fs_z, 6), 6108c2ecf20Sopenharmony_ci GROUP(tdm_c_din0_z, 6), 6118c2ecf20Sopenharmony_ci GROUP(tdm_c_din1_z, 6), 6128c2ecf20Sopenharmony_ci GROUP(tdm_c_din2_z, 6), 6138c2ecf20Sopenharmony_ci GROUP(tdm_c_din3_z, 6), 6148c2ecf20Sopenharmony_ci GROUP(tdm_c_sclk_z, 4), 6158c2ecf20Sopenharmony_ci GROUP(tdm_c_fs_z, 4), 6168c2ecf20Sopenharmony_ci GROUP(tdm_c_dout0_z, 4), 6178c2ecf20Sopenharmony_ci GROUP(tdm_c_dout1_z, 4), 6188c2ecf20Sopenharmony_ci GROUP(tdm_c_dout2_z, 4), 6198c2ecf20Sopenharmony_ci GROUP(tdm_c_dout3_z, 4), 6208c2ecf20Sopenharmony_ci GROUP(mclk1_z, 4), 6218c2ecf20Sopenharmony_ci 6228c2ecf20Sopenharmony_ci /* bank GPIOX */ 6238c2ecf20Sopenharmony_ci GROUP(sdio_d0, 1), 6248c2ecf20Sopenharmony_ci GROUP(sdio_d1, 1), 6258c2ecf20Sopenharmony_ci GROUP(sdio_d2, 1), 6268c2ecf20Sopenharmony_ci GROUP(sdio_d3, 1), 6278c2ecf20Sopenharmony_ci GROUP(sdio_clk, 1), 6288c2ecf20Sopenharmony_ci GROUP(sdio_cmd, 1), 6298c2ecf20Sopenharmony_ci GROUP(spi0_mosi_x, 4), 6308c2ecf20Sopenharmony_ci GROUP(spi0_miso_x, 4), 6318c2ecf20Sopenharmony_ci GROUP(spi0_ss0_x, 4), 6328c2ecf20Sopenharmony_ci GROUP(spi0_clk_x, 4), 6338c2ecf20Sopenharmony_ci GROUP(i2c1_sda_x, 5), 6348c2ecf20Sopenharmony_ci GROUP(i2c1_sck_x, 5), 6358c2ecf20Sopenharmony_ci GROUP(i2c2_sda_x, 1), 6368c2ecf20Sopenharmony_ci GROUP(i2c2_sck_x, 1), 6378c2ecf20Sopenharmony_ci GROUP(uart_a_tx, 1), 6388c2ecf20Sopenharmony_ci GROUP(uart_a_rx, 1), 6398c2ecf20Sopenharmony_ci GROUP(uart_a_cts, 1), 6408c2ecf20Sopenharmony_ci GROUP(uart_a_rts, 1), 6418c2ecf20Sopenharmony_ci GROUP(uart_b_tx, 2), 6428c2ecf20Sopenharmony_ci GROUP(uart_b_rx, 2), 6438c2ecf20Sopenharmony_ci GROUP(iso7816_clk_x, 6), 6448c2ecf20Sopenharmony_ci GROUP(iso7816_data_x, 6), 6458c2ecf20Sopenharmony_ci GROUP(pwm_a, 1), 6468c2ecf20Sopenharmony_ci GROUP(pwm_b_x7, 4), 6478c2ecf20Sopenharmony_ci GROUP(pwm_b_x19, 1), 6488c2ecf20Sopenharmony_ci GROUP(pwm_c_x5, 4), 6498c2ecf20Sopenharmony_ci GROUP(pwm_c_x8, 5), 6508c2ecf20Sopenharmony_ci GROUP(pwm_d_x3, 4), 6518c2ecf20Sopenharmony_ci GROUP(pwm_d_x6, 4), 6528c2ecf20Sopenharmony_ci GROUP(pwm_e, 1), 6538c2ecf20Sopenharmony_ci GROUP(pwm_f_x, 1), 6548c2ecf20Sopenharmony_ci GROUP(tsin_a_valid, 3), 6558c2ecf20Sopenharmony_ci GROUP(tsin_a_sop, 3), 6568c2ecf20Sopenharmony_ci GROUP(tsin_a_din0, 3), 6578c2ecf20Sopenharmony_ci GROUP(tsin_a_clk, 3), 6588c2ecf20Sopenharmony_ci GROUP(tsin_b_valid_x, 3), 6598c2ecf20Sopenharmony_ci GROUP(tsin_b_sop_x, 3), 6608c2ecf20Sopenharmony_ci GROUP(tsin_b_din0_x, 3), 6618c2ecf20Sopenharmony_ci GROUP(tsin_b_clk_x, 3), 6628c2ecf20Sopenharmony_ci GROUP(pdm_din0_x, 2), 6638c2ecf20Sopenharmony_ci GROUP(pdm_din1_x, 2), 6648c2ecf20Sopenharmony_ci GROUP(pdm_din2_x, 2), 6658c2ecf20Sopenharmony_ci GROUP(pdm_din3_x, 2), 6668c2ecf20Sopenharmony_ci GROUP(pdm_dclk_x, 2), 6678c2ecf20Sopenharmony_ci GROUP(tdm_a_slv_sclk, 2), 6688c2ecf20Sopenharmony_ci GROUP(tdm_a_slv_fs, 2), 6698c2ecf20Sopenharmony_ci GROUP(tdm_a_din0, 2), 6708c2ecf20Sopenharmony_ci GROUP(tdm_a_din1, 2), 6718c2ecf20Sopenharmony_ci GROUP(tdm_a_sclk, 1), 6728c2ecf20Sopenharmony_ci GROUP(tdm_a_fs, 1), 6738c2ecf20Sopenharmony_ci GROUP(tdm_a_dout0, 1), 6748c2ecf20Sopenharmony_ci GROUP(tdm_a_dout1, 1), 6758c2ecf20Sopenharmony_ci GROUP(mclk1_x, 2), 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_ci /* bank GPIOC */ 6788c2ecf20Sopenharmony_ci GROUP(sdcard_d0_c, 1), 6798c2ecf20Sopenharmony_ci GROUP(sdcard_d1_c, 1), 6808c2ecf20Sopenharmony_ci GROUP(sdcard_d2_c, 1), 6818c2ecf20Sopenharmony_ci GROUP(sdcard_d3_c, 1), 6828c2ecf20Sopenharmony_ci GROUP(sdcard_clk_c, 1), 6838c2ecf20Sopenharmony_ci GROUP(sdcard_cmd_c, 1), 6848c2ecf20Sopenharmony_ci GROUP(spi0_mosi_c, 5), 6858c2ecf20Sopenharmony_ci GROUP(spi0_miso_c, 5), 6868c2ecf20Sopenharmony_ci GROUP(spi0_ss0_c, 5), 6878c2ecf20Sopenharmony_ci GROUP(spi0_clk_c, 5), 6888c2ecf20Sopenharmony_ci GROUP(i2c0_sda_c, 3), 6898c2ecf20Sopenharmony_ci GROUP(i2c0_sck_c, 3), 6908c2ecf20Sopenharmony_ci GROUP(uart_ao_a_rx_c, 2), 6918c2ecf20Sopenharmony_ci GROUP(uart_ao_a_tx_c, 2), 6928c2ecf20Sopenharmony_ci GROUP(iso7816_clk_c, 5), 6938c2ecf20Sopenharmony_ci GROUP(iso7816_data_c, 5), 6948c2ecf20Sopenharmony_ci GROUP(pwm_c_c, 5), 6958c2ecf20Sopenharmony_ci GROUP(jtag_b_tdo, 2), 6968c2ecf20Sopenharmony_ci GROUP(jtag_b_tdi, 2), 6978c2ecf20Sopenharmony_ci GROUP(jtag_b_clk, 2), 6988c2ecf20Sopenharmony_ci GROUP(jtag_b_tms, 2), 6998c2ecf20Sopenharmony_ci GROUP(pdm_din0_c, 4), 7008c2ecf20Sopenharmony_ci GROUP(pdm_din1_c, 4), 7018c2ecf20Sopenharmony_ci GROUP(pdm_din2_c, 4), 7028c2ecf20Sopenharmony_ci GROUP(pdm_din3_c, 4), 7038c2ecf20Sopenharmony_ci GROUP(pdm_dclk_c, 4), 7048c2ecf20Sopenharmony_ci 7058c2ecf20Sopenharmony_ci /* bank GPIOH */ 7068c2ecf20Sopenharmony_ci GROUP(spi1_mosi, 3), 7078c2ecf20Sopenharmony_ci GROUP(spi1_miso, 3), 7088c2ecf20Sopenharmony_ci GROUP(spi1_ss0, 3), 7098c2ecf20Sopenharmony_ci GROUP(spi1_clk, 3), 7108c2ecf20Sopenharmony_ci GROUP(i2c1_sda_h2, 2), 7118c2ecf20Sopenharmony_ci GROUP(i2c1_sck_h3, 2), 7128c2ecf20Sopenharmony_ci GROUP(i2c1_sda_h6, 4), 7138c2ecf20Sopenharmony_ci GROUP(i2c1_sck_h7, 4), 7148c2ecf20Sopenharmony_ci GROUP(i2c3_sda_h, 2), 7158c2ecf20Sopenharmony_ci GROUP(i2c3_sck_h, 2), 7168c2ecf20Sopenharmony_ci GROUP(uart_c_tx, 2), 7178c2ecf20Sopenharmony_ci GROUP(uart_c_rx, 2), 7188c2ecf20Sopenharmony_ci GROUP(uart_c_cts, 2), 7198c2ecf20Sopenharmony_ci GROUP(uart_c_rts, 2), 7208c2ecf20Sopenharmony_ci GROUP(iso7816_clk_h, 1), 7218c2ecf20Sopenharmony_ci GROUP(iso7816_data_h, 1), 7228c2ecf20Sopenharmony_ci GROUP(pwm_f_h, 4), 7238c2ecf20Sopenharmony_ci GROUP(cec_ao_a_h, 4), 7248c2ecf20Sopenharmony_ci GROUP(cec_ao_b_h, 5), 7258c2ecf20Sopenharmony_ci GROUP(hdmitx_sda, 1), 7268c2ecf20Sopenharmony_ci GROUP(hdmitx_sck, 1), 7278c2ecf20Sopenharmony_ci GROUP(hdmitx_hpd_in, 1), 7288c2ecf20Sopenharmony_ci GROUP(spdif_out_h, 1), 7298c2ecf20Sopenharmony_ci GROUP(spdif_in_h, 1), 7308c2ecf20Sopenharmony_ci GROUP(tdm_b_din3_h, 6), 7318c2ecf20Sopenharmony_ci GROUP(tdm_b_dout3_h, 5), 7328c2ecf20Sopenharmony_ci 7338c2ecf20Sopenharmony_ci /* bank GPIOA */ 7348c2ecf20Sopenharmony_ci GROUP(i2c3_sda_a, 2), 7358c2ecf20Sopenharmony_ci GROUP(i2c3_sck_a, 2), 7368c2ecf20Sopenharmony_ci GROUP(pdm_din0_a, 1), 7378c2ecf20Sopenharmony_ci GROUP(pdm_din1_a, 1), 7388c2ecf20Sopenharmony_ci GROUP(pdm_din2_a, 1), 7398c2ecf20Sopenharmony_ci GROUP(pdm_din3_a, 1), 7408c2ecf20Sopenharmony_ci GROUP(pdm_dclk_a, 1), 7418c2ecf20Sopenharmony_ci GROUP(spdif_in_a10, 1), 7428c2ecf20Sopenharmony_ci GROUP(spdif_in_a12, 1), 7438c2ecf20Sopenharmony_ci GROUP(spdif_out_a11, 1), 7448c2ecf20Sopenharmony_ci GROUP(spdif_out_a13, 1), 7458c2ecf20Sopenharmony_ci GROUP(tdm_b_slv_sclk, 2), 7468c2ecf20Sopenharmony_ci GROUP(tdm_b_slv_fs, 2), 7478c2ecf20Sopenharmony_ci GROUP(tdm_b_din0, 2), 7488c2ecf20Sopenharmony_ci GROUP(tdm_b_din1, 2), 7498c2ecf20Sopenharmony_ci GROUP(tdm_b_din2, 2), 7508c2ecf20Sopenharmony_ci GROUP(tdm_b_din3_a, 2), 7518c2ecf20Sopenharmony_ci GROUP(tdm_b_sclk, 1), 7528c2ecf20Sopenharmony_ci GROUP(tdm_b_fs, 1), 7538c2ecf20Sopenharmony_ci GROUP(tdm_b_dout0, 1), 7548c2ecf20Sopenharmony_ci GROUP(tdm_b_dout1, 1), 7558c2ecf20Sopenharmony_ci GROUP(tdm_b_dout2, 3), 7568c2ecf20Sopenharmony_ci GROUP(tdm_b_dout3_a, 3), 7578c2ecf20Sopenharmony_ci GROUP(tdm_c_slv_sclk_a, 3), 7588c2ecf20Sopenharmony_ci GROUP(tdm_c_slv_fs_a, 3), 7598c2ecf20Sopenharmony_ci GROUP(tdm_c_din0_a, 3), 7608c2ecf20Sopenharmony_ci GROUP(tdm_c_din1_a, 3), 7618c2ecf20Sopenharmony_ci GROUP(tdm_c_din2_a, 3), 7628c2ecf20Sopenharmony_ci GROUP(tdm_c_din3_a, 3), 7638c2ecf20Sopenharmony_ci GROUP(tdm_c_sclk_a, 2), 7648c2ecf20Sopenharmony_ci GROUP(tdm_c_fs_a, 2), 7658c2ecf20Sopenharmony_ci GROUP(tdm_c_dout0_a, 2), 7668c2ecf20Sopenharmony_ci GROUP(tdm_c_dout1_a, 2), 7678c2ecf20Sopenharmony_ci GROUP(tdm_c_dout2_a, 2), 7688c2ecf20Sopenharmony_ci GROUP(tdm_c_dout3_a, 2), 7698c2ecf20Sopenharmony_ci GROUP(mclk0_a, 1), 7708c2ecf20Sopenharmony_ci GROUP(mclk1_a, 2), 7718c2ecf20Sopenharmony_ci}; 7728c2ecf20Sopenharmony_ci 7738c2ecf20Sopenharmony_ci/* uart_ao_a */ 7748c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_tx_pins[] = { GPIOAO_0 }; 7758c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_rx_pins[] = { GPIOAO_1 }; 7768c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_cts_pins[] = { GPIOE_0 }; 7778c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_a_rts_pins[] = { GPIOE_1 }; 7788c2ecf20Sopenharmony_ci 7798c2ecf20Sopenharmony_ci/* uart_ao_b */ 7808c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_tx_2_pins[] = { GPIOAO_2 }; 7818c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_rx_3_pins[] = { GPIOAO_3 }; 7828c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_tx_8_pins[] = { GPIOAO_8 }; 7838c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_rx_9_pins[] = { GPIOAO_9 }; 7848c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_cts_pins[] = { GPIOE_0 }; 7858c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_b_rts_pins[] = { GPIOE_1 }; 7868c2ecf20Sopenharmony_ci 7878c2ecf20Sopenharmony_ci/* i2c_ao */ 7888c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sck_pins[] = { GPIOAO_2 }; 7898c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sda_pins[] = { GPIOAO_3 }; 7908c2ecf20Sopenharmony_ci 7918c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sck_e_pins[] = { GPIOE_0 }; 7928c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sda_e_pins[] = { GPIOE_1 }; 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ci/* i2c_ao_slave */ 7958c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_slave_sck_pins[] = { GPIOAO_2 }; 7968c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_slave_sda_pins[] = { GPIOAO_3 }; 7978c2ecf20Sopenharmony_ci 7988c2ecf20Sopenharmony_ci/* ir_in */ 7998c2ecf20Sopenharmony_cistatic const unsigned int remote_ao_input_pins[] = { GPIOAO_5 }; 8008c2ecf20Sopenharmony_ci 8018c2ecf20Sopenharmony_ci/* ir_out */ 8028c2ecf20Sopenharmony_cistatic const unsigned int remote_ao_out_pins[] = { GPIOAO_4 }; 8038c2ecf20Sopenharmony_ci 8048c2ecf20Sopenharmony_ci/* pwm_a_e */ 8058c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_e_pins[] = { GPIOE_2 }; 8068c2ecf20Sopenharmony_ci 8078c2ecf20Sopenharmony_ci/* pwm_ao_a */ 8088c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_a_pins[] = { GPIOAO_11 }; 8098c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_a_hiz_pins[] = { GPIOAO_11 }; 8108c2ecf20Sopenharmony_ci 8118c2ecf20Sopenharmony_ci/* pwm_ao_b */ 8128c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_b_pins[] = { GPIOE_0 }; 8138c2ecf20Sopenharmony_ci 8148c2ecf20Sopenharmony_ci/* pwm_ao_c */ 8158c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_c_4_pins[] = { GPIOAO_4 }; 8168c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_c_hiz_pins[] = { GPIOAO_4 }; 8178c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_c_6_pins[] = { GPIOAO_6 }; 8188c2ecf20Sopenharmony_ci 8198c2ecf20Sopenharmony_ci/* pwm_ao_d */ 8208c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_d_5_pins[] = { GPIOAO_5 }; 8218c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_d_10_pins[] = { GPIOAO_10 }; 8228c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_d_e_pins[] = { GPIOE_1 }; 8238c2ecf20Sopenharmony_ci 8248c2ecf20Sopenharmony_ci/* jtag_a */ 8258c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tdi_pins[] = { GPIOAO_8 }; 8268c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tdo_pins[] = { GPIOAO_9 }; 8278c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_clk_pins[] = { GPIOAO_6 }; 8288c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tms_pins[] = { GPIOAO_7 }; 8298c2ecf20Sopenharmony_ci 8308c2ecf20Sopenharmony_ci/* cec_ao */ 8318c2ecf20Sopenharmony_cistatic const unsigned int cec_ao_a_pins[] = { GPIOAO_10 }; 8328c2ecf20Sopenharmony_cistatic const unsigned int cec_ao_b_pins[] = { GPIOAO_10 }; 8338c2ecf20Sopenharmony_ci 8348c2ecf20Sopenharmony_ci/* tsin_ao_a */ 8358c2ecf20Sopenharmony_cistatic const unsigned int tsin_ao_asop_pins[] = { GPIOAO_6 }; 8368c2ecf20Sopenharmony_cistatic const unsigned int tsin_ao_adin0_pins[] = { GPIOAO_7 }; 8378c2ecf20Sopenharmony_cistatic const unsigned int tsin_ao_aclk_pins[] = { GPIOAO_8 }; 8388c2ecf20Sopenharmony_cistatic const unsigned int tsin_ao_a_valid_pins[] = { GPIOAO_9 }; 8398c2ecf20Sopenharmony_ci 8408c2ecf20Sopenharmony_ci/* spdif_ao_out */ 8418c2ecf20Sopenharmony_cistatic const unsigned int spdif_ao_out_pins[] = { GPIOAO_10 }; 8428c2ecf20Sopenharmony_ci 8438c2ecf20Sopenharmony_ci/* tdm_ao_b */ 8448c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_slv_fs_pins[] = { GPIOAO_7 }; 8458c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_slv_sclk_pins[] = { GPIOAO_8 }; 8468c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_fs_pins[] = { GPIOAO_7 }; 8478c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_sclk_pins[] = { GPIOAO_8 }; 8488c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_din0_pins[] = { GPIOAO_4 }; 8498c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_din1_pins[] = { GPIOAO_10 }; 8508c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_din2_pins[] = { GPIOAO_6 }; 8518c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_dout0_pins[] = { GPIOAO_4 }; 8528c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_dout1_pins[] = { GPIOAO_10 }; 8538c2ecf20Sopenharmony_cistatic const unsigned int tdm_ao_b_dout2_pins[] = { GPIOAO_6 }; 8548c2ecf20Sopenharmony_ci 8558c2ecf20Sopenharmony_ci/* mclk0_ao */ 8568c2ecf20Sopenharmony_cistatic const unsigned int mclk0_ao_pins[] = { GPIOAO_9 }; 8578c2ecf20Sopenharmony_ci 8588c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_g12a_aobus_groups[] = { 8598c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_0), 8608c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_1), 8618c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_2), 8628c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_3), 8638c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_4), 8648c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_5), 8658c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_6), 8668c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_7), 8678c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_8), 8688c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_9), 8698c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_10), 8708c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_11), 8718c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOE_0), 8728c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOE_1), 8738c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOE_2), 8748c2ecf20Sopenharmony_ci 8758c2ecf20Sopenharmony_ci /* bank AO */ 8768c2ecf20Sopenharmony_ci GROUP(uart_ao_a_tx, 1), 8778c2ecf20Sopenharmony_ci GROUP(uart_ao_a_rx, 1), 8788c2ecf20Sopenharmony_ci GROUP(uart_ao_a_cts, 1), 8798c2ecf20Sopenharmony_ci GROUP(uart_ao_a_rts, 1), 8808c2ecf20Sopenharmony_ci GROUP(uart_ao_b_tx_2, 2), 8818c2ecf20Sopenharmony_ci GROUP(uart_ao_b_rx_3, 2), 8828c2ecf20Sopenharmony_ci GROUP(uart_ao_b_tx_8, 3), 8838c2ecf20Sopenharmony_ci GROUP(uart_ao_b_rx_9, 3), 8848c2ecf20Sopenharmony_ci GROUP(uart_ao_b_cts, 2), 8858c2ecf20Sopenharmony_ci GROUP(uart_ao_b_rts, 2), 8868c2ecf20Sopenharmony_ci GROUP(i2c_ao_sck, 1), 8878c2ecf20Sopenharmony_ci GROUP(i2c_ao_sda, 1), 8888c2ecf20Sopenharmony_ci GROUP(i2c_ao_sck_e, 4), 8898c2ecf20Sopenharmony_ci GROUP(i2c_ao_sda_e, 4), 8908c2ecf20Sopenharmony_ci GROUP(i2c_ao_slave_sck, 3), 8918c2ecf20Sopenharmony_ci GROUP(i2c_ao_slave_sda, 3), 8928c2ecf20Sopenharmony_ci GROUP(remote_ao_input, 1), 8938c2ecf20Sopenharmony_ci GROUP(remote_ao_out, 1), 8948c2ecf20Sopenharmony_ci GROUP(pwm_a_e, 3), 8958c2ecf20Sopenharmony_ci GROUP(pwm_ao_a, 3), 8968c2ecf20Sopenharmony_ci GROUP(pwm_ao_a_hiz, 2), 8978c2ecf20Sopenharmony_ci GROUP(pwm_ao_b, 3), 8988c2ecf20Sopenharmony_ci GROUP(pwm_ao_c_4, 3), 8998c2ecf20Sopenharmony_ci GROUP(pwm_ao_c_hiz, 4), 9008c2ecf20Sopenharmony_ci GROUP(pwm_ao_c_6, 3), 9018c2ecf20Sopenharmony_ci GROUP(pwm_ao_d_5, 3), 9028c2ecf20Sopenharmony_ci GROUP(pwm_ao_d_10, 3), 9038c2ecf20Sopenharmony_ci GROUP(pwm_ao_d_e, 3), 9048c2ecf20Sopenharmony_ci GROUP(jtag_a_tdi, 1), 9058c2ecf20Sopenharmony_ci GROUP(jtag_a_tdo, 1), 9068c2ecf20Sopenharmony_ci GROUP(jtag_a_clk, 1), 9078c2ecf20Sopenharmony_ci GROUP(jtag_a_tms, 1), 9088c2ecf20Sopenharmony_ci GROUP(cec_ao_a, 1), 9098c2ecf20Sopenharmony_ci GROUP(cec_ao_b, 2), 9108c2ecf20Sopenharmony_ci GROUP(tsin_ao_asop, 4), 9118c2ecf20Sopenharmony_ci GROUP(tsin_ao_adin0, 4), 9128c2ecf20Sopenharmony_ci GROUP(tsin_ao_aclk, 4), 9138c2ecf20Sopenharmony_ci GROUP(tsin_ao_a_valid, 4), 9148c2ecf20Sopenharmony_ci GROUP(spdif_ao_out, 4), 9158c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_dout0, 5), 9168c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_dout1, 5), 9178c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_dout2, 5), 9188c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_fs, 5), 9198c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_sclk, 5), 9208c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_din0, 6), 9218c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_din1, 6), 9228c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_din2, 6), 9238c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_slv_fs, 6), 9248c2ecf20Sopenharmony_ci GROUP(tdm_ao_b_slv_sclk, 6), 9258c2ecf20Sopenharmony_ci GROUP(mclk0_ao, 5), 9268c2ecf20Sopenharmony_ci}; 9278c2ecf20Sopenharmony_ci 9288c2ecf20Sopenharmony_cistatic const char * const gpio_periphs_groups[] = { 9298c2ecf20Sopenharmony_ci "GPIOZ_0", "GPIOZ_1", "GPIOZ_2", "GPIOZ_3", "GPIOZ_4", 9308c2ecf20Sopenharmony_ci "GPIOZ_5", "GPIOZ_6", "GPIOZ_7", "GPIOZ_8", "GPIOZ_9", 9318c2ecf20Sopenharmony_ci "GPIOZ_10", "GPIOZ_11", "GPIOZ_12", "GPIOZ_13", "GPIOZ_14", 9328c2ecf20Sopenharmony_ci "GPIOZ_15", 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ci "GPIOH_0", "GPIOH_1", "GPIOH_2", "GPIOH_3", "GPIOH_4", 9358c2ecf20Sopenharmony_ci "GPIOH_5", "GPIOH_6", "GPIOH_7", "GPIOH_8", 9368c2ecf20Sopenharmony_ci 9378c2ecf20Sopenharmony_ci "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", 9388c2ecf20Sopenharmony_ci "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9", 9398c2ecf20Sopenharmony_ci "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14", 9408c2ecf20Sopenharmony_ci "BOOT_15", 9418c2ecf20Sopenharmony_ci 9428c2ecf20Sopenharmony_ci "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", 9438c2ecf20Sopenharmony_ci "GPIOC_5", "GPIOC_6", "GPIOC_7", 9448c2ecf20Sopenharmony_ci 9458c2ecf20Sopenharmony_ci "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", 9468c2ecf20Sopenharmony_ci "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", 9478c2ecf20Sopenharmony_ci "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", 9488c2ecf20Sopenharmony_ci "GPIOA_15", 9498c2ecf20Sopenharmony_ci 9508c2ecf20Sopenharmony_ci "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", 9518c2ecf20Sopenharmony_ci "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9", 9528c2ecf20Sopenharmony_ci "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14", 9538c2ecf20Sopenharmony_ci "GPIOX_15", "GPIOX_16", "GPIOX_17", "GPIOX_18", "GPIOX_19", 9548c2ecf20Sopenharmony_ci}; 9558c2ecf20Sopenharmony_ci 9568c2ecf20Sopenharmony_cistatic const char * const emmc_groups[] = { 9578c2ecf20Sopenharmony_ci "emmc_nand_d0", "emmc_nand_d1", "emmc_nand_d2", 9588c2ecf20Sopenharmony_ci "emmc_nand_d3", "emmc_nand_d4", "emmc_nand_d5", 9598c2ecf20Sopenharmony_ci "emmc_nand_d6", "emmc_nand_d7", 9608c2ecf20Sopenharmony_ci "emmc_clk", "emmc_cmd", "emmc_nand_ds", 9618c2ecf20Sopenharmony_ci}; 9628c2ecf20Sopenharmony_ci 9638c2ecf20Sopenharmony_cistatic const char * const nand_groups[] = { 9648c2ecf20Sopenharmony_ci "emmc_nand_d0", "emmc_nand_d1", "emmc_nand_d2", 9658c2ecf20Sopenharmony_ci "emmc_nand_d3", "emmc_nand_d4", "emmc_nand_d5", 9668c2ecf20Sopenharmony_ci "emmc_nand_d6", "emmc_nand_d7", 9678c2ecf20Sopenharmony_ci "nand_ce0", "nand_ale", "nand_cle", 9688c2ecf20Sopenharmony_ci "nand_wen_clk", "nand_ren_wr", "nand_rb0", 9698c2ecf20Sopenharmony_ci "emmc_nand_ds", "nand_ce1", 9708c2ecf20Sopenharmony_ci}; 9718c2ecf20Sopenharmony_ci 9728c2ecf20Sopenharmony_cistatic const char * const nor_groups[] = { 9738c2ecf20Sopenharmony_ci "nor_d", "nor_q", "nor_c", "nor_cs", 9748c2ecf20Sopenharmony_ci "nor_hold", "nor_wp", 9758c2ecf20Sopenharmony_ci}; 9768c2ecf20Sopenharmony_ci 9778c2ecf20Sopenharmony_cistatic const char * const sdio_groups[] = { 9788c2ecf20Sopenharmony_ci "sdio_d0", "sdio_d1", "sdio_d2", "sdio_d3", 9798c2ecf20Sopenharmony_ci "sdio_cmd", "sdio_clk", "sdio_dummy", 9808c2ecf20Sopenharmony_ci}; 9818c2ecf20Sopenharmony_ci 9828c2ecf20Sopenharmony_cistatic const char * const sdcard_groups[] = { 9838c2ecf20Sopenharmony_ci "sdcard_d0_c", "sdcard_d1_c", "sdcard_d2_c", "sdcard_d3_c", 9848c2ecf20Sopenharmony_ci "sdcard_clk_c", "sdcard_cmd_c", 9858c2ecf20Sopenharmony_ci "sdcard_d0_z", "sdcard_d1_z", "sdcard_d2_z", "sdcard_d3_z", 9868c2ecf20Sopenharmony_ci "sdcard_clk_z", "sdcard_cmd_z", 9878c2ecf20Sopenharmony_ci}; 9888c2ecf20Sopenharmony_ci 9898c2ecf20Sopenharmony_cistatic const char * const spi0_groups[] = { 9908c2ecf20Sopenharmony_ci "spi0_mosi_c", "spi0_miso_c", "spi0_ss0_c", "spi0_clk_c", 9918c2ecf20Sopenharmony_ci "spi0_mosi_x", "spi0_miso_x", "spi0_ss0_x", "spi0_clk_x", 9928c2ecf20Sopenharmony_ci}; 9938c2ecf20Sopenharmony_ci 9948c2ecf20Sopenharmony_cistatic const char * const spi1_groups[] = { 9958c2ecf20Sopenharmony_ci "spi1_mosi", "spi1_miso", "spi1_ss0", "spi1_clk", 9968c2ecf20Sopenharmony_ci}; 9978c2ecf20Sopenharmony_ci 9988c2ecf20Sopenharmony_cistatic const char * const i2c0_groups[] = { 9998c2ecf20Sopenharmony_ci "i2c0_sda_c", "i2c0_sck_c", 10008c2ecf20Sopenharmony_ci "i2c0_sda_z0", "i2c0_sck_z1", 10018c2ecf20Sopenharmony_ci "i2c0_sda_z7", "i2c0_sck_z8", 10028c2ecf20Sopenharmony_ci}; 10038c2ecf20Sopenharmony_ci 10048c2ecf20Sopenharmony_cistatic const char * const i2c1_groups[] = { 10058c2ecf20Sopenharmony_ci "i2c1_sda_x", "i2c1_sck_x", 10068c2ecf20Sopenharmony_ci "i2c1_sda_h2", "i2c1_sck_h3", 10078c2ecf20Sopenharmony_ci "i2c1_sda_h6", "i2c1_sck_h7", 10088c2ecf20Sopenharmony_ci}; 10098c2ecf20Sopenharmony_ci 10108c2ecf20Sopenharmony_cistatic const char * const i2c2_groups[] = { 10118c2ecf20Sopenharmony_ci "i2c2_sda_x", "i2c2_sck_x", 10128c2ecf20Sopenharmony_ci "i2c2_sda_z", "i2c2_sck_z", 10138c2ecf20Sopenharmony_ci}; 10148c2ecf20Sopenharmony_ci 10158c2ecf20Sopenharmony_cistatic const char * const i2c3_groups[] = { 10168c2ecf20Sopenharmony_ci "i2c3_sda_h", "i2c3_sck_h", 10178c2ecf20Sopenharmony_ci "i2c3_sda_a", "i2c3_sck_a", 10188c2ecf20Sopenharmony_ci}; 10198c2ecf20Sopenharmony_ci 10208c2ecf20Sopenharmony_cistatic const char * const uart_a_groups[] = { 10218c2ecf20Sopenharmony_ci "uart_a_tx", "uart_a_rx", "uart_a_cts", "uart_a_rts", 10228c2ecf20Sopenharmony_ci}; 10238c2ecf20Sopenharmony_ci 10248c2ecf20Sopenharmony_cistatic const char * const uart_b_groups[] = { 10258c2ecf20Sopenharmony_ci "uart_b_tx", "uart_b_rx", 10268c2ecf20Sopenharmony_ci}; 10278c2ecf20Sopenharmony_ci 10288c2ecf20Sopenharmony_cistatic const char * const uart_c_groups[] = { 10298c2ecf20Sopenharmony_ci "uart_c_tx", "uart_c_rx", "uart_c_cts", "uart_c_rts", 10308c2ecf20Sopenharmony_ci}; 10318c2ecf20Sopenharmony_ci 10328c2ecf20Sopenharmony_cistatic const char * const uart_ao_a_c_groups[] = { 10338c2ecf20Sopenharmony_ci "uart_ao_a_rx_c", "uart_ao_a_tx_c", 10348c2ecf20Sopenharmony_ci}; 10358c2ecf20Sopenharmony_ci 10368c2ecf20Sopenharmony_cistatic const char * const iso7816_groups[] = { 10378c2ecf20Sopenharmony_ci "iso7816_clk_c", "iso7816_data_c", 10388c2ecf20Sopenharmony_ci "iso7816_clk_x", "iso7816_data_x", 10398c2ecf20Sopenharmony_ci "iso7816_clk_h", "iso7816_data_h", 10408c2ecf20Sopenharmony_ci "iso7816_clk_z", "iso7816_data_z", 10418c2ecf20Sopenharmony_ci}; 10428c2ecf20Sopenharmony_ci 10438c2ecf20Sopenharmony_cistatic const char * const eth_groups[] = { 10448c2ecf20Sopenharmony_ci "eth_rxd2_rgmii", "eth_rxd3_rgmii", "eth_rgmii_tx_clk", 10458c2ecf20Sopenharmony_ci "eth_txd2_rgmii", "eth_txd3_rgmii", "eth_rgmii_rx_clk", 10468c2ecf20Sopenharmony_ci "eth_txd0", "eth_txd1", "eth_txen", "eth_mdc", 10478c2ecf20Sopenharmony_ci "eth_rxd0", "eth_rxd1", "eth_rx_dv", "eth_mdio", 10488c2ecf20Sopenharmony_ci "eth_link_led", "eth_act_led", 10498c2ecf20Sopenharmony_ci}; 10508c2ecf20Sopenharmony_ci 10518c2ecf20Sopenharmony_cistatic const char * const pwm_a_groups[] = { 10528c2ecf20Sopenharmony_ci "pwm_a", 10538c2ecf20Sopenharmony_ci}; 10548c2ecf20Sopenharmony_ci 10558c2ecf20Sopenharmony_cistatic const char * const pwm_b_groups[] = { 10568c2ecf20Sopenharmony_ci "pwm_b_x7", "pwm_b_x19", 10578c2ecf20Sopenharmony_ci}; 10588c2ecf20Sopenharmony_ci 10598c2ecf20Sopenharmony_cistatic const char * const pwm_c_groups[] = { 10608c2ecf20Sopenharmony_ci "pwm_c_c", "pwm_c_x5", "pwm_c_x8", 10618c2ecf20Sopenharmony_ci}; 10628c2ecf20Sopenharmony_ci 10638c2ecf20Sopenharmony_cistatic const char * const pwm_d_groups[] = { 10648c2ecf20Sopenharmony_ci "pwm_d_x3", "pwm_d_x6", 10658c2ecf20Sopenharmony_ci}; 10668c2ecf20Sopenharmony_ci 10678c2ecf20Sopenharmony_cistatic const char * const pwm_e_groups[] = { 10688c2ecf20Sopenharmony_ci "pwm_e", 10698c2ecf20Sopenharmony_ci}; 10708c2ecf20Sopenharmony_ci 10718c2ecf20Sopenharmony_cistatic const char * const pwm_f_groups[] = { 10728c2ecf20Sopenharmony_ci "pwm_f_x", "pwm_f_h", 10738c2ecf20Sopenharmony_ci}; 10748c2ecf20Sopenharmony_ci 10758c2ecf20Sopenharmony_cistatic const char * const cec_ao_a_h_groups[] = { 10768c2ecf20Sopenharmony_ci "cec_ao_a_h", 10778c2ecf20Sopenharmony_ci}; 10788c2ecf20Sopenharmony_ci 10798c2ecf20Sopenharmony_cistatic const char * const cec_ao_b_h_groups[] = { 10808c2ecf20Sopenharmony_ci "cec_ao_b_h", 10818c2ecf20Sopenharmony_ci}; 10828c2ecf20Sopenharmony_ci 10838c2ecf20Sopenharmony_cistatic const char * const jtag_b_groups[] = { 10848c2ecf20Sopenharmony_ci "jtag_b_tdi", "jtag_b_tdo", "jtag_b_clk", "jtag_b_tms", 10858c2ecf20Sopenharmony_ci}; 10868c2ecf20Sopenharmony_ci 10878c2ecf20Sopenharmony_cistatic const char * const bt565_a_groups[] = { 10888c2ecf20Sopenharmony_ci "bt565_a_vs", "bt565_a_hs", "bt565_a_clk", 10898c2ecf20Sopenharmony_ci "bt565_a_din0", "bt565_a_din1", "bt565_a_din2", 10908c2ecf20Sopenharmony_ci "bt565_a_din3", "bt565_a_din4", "bt565_a_din5", 10918c2ecf20Sopenharmony_ci "bt565_a_din6", "bt565_a_din7", 10928c2ecf20Sopenharmony_ci}; 10938c2ecf20Sopenharmony_ci 10948c2ecf20Sopenharmony_cistatic const char * const tsin_a_groups[] = { 10958c2ecf20Sopenharmony_ci "tsin_a_valid", "tsin_a_sop", "tsin_a_din0", 10968c2ecf20Sopenharmony_ci "tsin_a_clk", 10978c2ecf20Sopenharmony_ci}; 10988c2ecf20Sopenharmony_ci 10998c2ecf20Sopenharmony_cistatic const char * const tsin_b_groups[] = { 11008c2ecf20Sopenharmony_ci "tsin_b_valid_x", "tsin_b_sop_x", "tsin_b_din0_x", "tsin_b_clk_x", 11018c2ecf20Sopenharmony_ci "tsin_b_valid_z", "tsin_b_sop_z", "tsin_b_din0_z", "tsin_b_clk_z", 11028c2ecf20Sopenharmony_ci "tsin_b_fail", "tsin_b_din1", "tsin_b_din2", "tsin_b_din3", 11038c2ecf20Sopenharmony_ci "tsin_b_din4", "tsin_b_din5", "tsin_b_din6", "tsin_b_din7", 11048c2ecf20Sopenharmony_ci}; 11058c2ecf20Sopenharmony_ci 11068c2ecf20Sopenharmony_cistatic const char * const hdmitx_groups[] = { 11078c2ecf20Sopenharmony_ci "hdmitx_sda", "hdmitx_sck", "hdmitx_hpd_in", 11088c2ecf20Sopenharmony_ci}; 11098c2ecf20Sopenharmony_ci 11108c2ecf20Sopenharmony_cistatic const char * const pdm_groups[] = { 11118c2ecf20Sopenharmony_ci "pdm_din0_c", "pdm_din1_c", "pdm_din2_c", "pdm_din3_c", 11128c2ecf20Sopenharmony_ci "pdm_dclk_c", 11138c2ecf20Sopenharmony_ci "pdm_din0_x", "pdm_din1_x", "pdm_din2_x", "pdm_din3_x", 11148c2ecf20Sopenharmony_ci "pdm_dclk_x", 11158c2ecf20Sopenharmony_ci "pdm_din0_z", "pdm_din1_z", "pdm_din2_z", "pdm_din3_z", 11168c2ecf20Sopenharmony_ci "pdm_dclk_z", 11178c2ecf20Sopenharmony_ci "pdm_din0_a", "pdm_din1_a", "pdm_din2_a", "pdm_din3_a", 11188c2ecf20Sopenharmony_ci "pdm_dclk_a", 11198c2ecf20Sopenharmony_ci}; 11208c2ecf20Sopenharmony_ci 11218c2ecf20Sopenharmony_cistatic const char * const spdif_in_groups[] = { 11228c2ecf20Sopenharmony_ci "spdif_in_h", "spdif_in_a10", "spdif_in_a12", 11238c2ecf20Sopenharmony_ci}; 11248c2ecf20Sopenharmony_ci 11258c2ecf20Sopenharmony_cistatic const char * const spdif_out_groups[] = { 11268c2ecf20Sopenharmony_ci "spdif_out_h", "spdif_out_a11", "spdif_out_a13", 11278c2ecf20Sopenharmony_ci}; 11288c2ecf20Sopenharmony_ci 11298c2ecf20Sopenharmony_cistatic const char * const mclk0_groups[] = { 11308c2ecf20Sopenharmony_ci "mclk0_a", 11318c2ecf20Sopenharmony_ci}; 11328c2ecf20Sopenharmony_ci 11338c2ecf20Sopenharmony_cistatic const char * const mclk1_groups[] = { 11348c2ecf20Sopenharmony_ci "mclk1_x", "mclk1_z", "mclk1_a", 11358c2ecf20Sopenharmony_ci}; 11368c2ecf20Sopenharmony_ci 11378c2ecf20Sopenharmony_cistatic const char * const tdm_a_groups[] = { 11388c2ecf20Sopenharmony_ci "tdm_a_slv_sclk", "tdm_a_slv_fs", "tdm_a_sclk", "tdm_a_fs", 11398c2ecf20Sopenharmony_ci "tdm_a_din0", "tdm_a_din1", "tdm_a_dout0", "tdm_a_dout1", 11408c2ecf20Sopenharmony_ci}; 11418c2ecf20Sopenharmony_ci 11428c2ecf20Sopenharmony_cistatic const char * const tdm_b_groups[] = { 11438c2ecf20Sopenharmony_ci "tdm_b_slv_sclk", "tdm_b_slv_fs", "tdm_b_sclk", "tdm_b_fs", 11448c2ecf20Sopenharmony_ci "tdm_b_din0", "tdm_b_din1", "tdm_b_din2", 11458c2ecf20Sopenharmony_ci "tdm_b_din3_a", "tdm_b_din3_h", 11468c2ecf20Sopenharmony_ci "tdm_b_dout0", "tdm_b_dout1", "tdm_b_dout2", 11478c2ecf20Sopenharmony_ci "tdm_b_dout3_a", "tdm_b_dout3_h", 11488c2ecf20Sopenharmony_ci}; 11498c2ecf20Sopenharmony_ci 11508c2ecf20Sopenharmony_cistatic const char * const tdm_c_groups[] = { 11518c2ecf20Sopenharmony_ci "tdm_c_slv_sclk_a", "tdm_c_slv_fs_a", 11528c2ecf20Sopenharmony_ci "tdm_c_slv_sclk_z", "tdm_c_slv_fs_z", 11538c2ecf20Sopenharmony_ci "tdm_c_sclk_a", "tdm_c_fs_a", 11548c2ecf20Sopenharmony_ci "tdm_c_sclk_z", "tdm_c_fs_z", 11558c2ecf20Sopenharmony_ci "tdm_c_din0_a", "tdm_c_din1_a", 11568c2ecf20Sopenharmony_ci "tdm_c_din2_a", "tdm_c_din3_a", 11578c2ecf20Sopenharmony_ci "tdm_c_din0_z", "tdm_c_din1_z", 11588c2ecf20Sopenharmony_ci "tdm_c_din2_z", "tdm_c_din3_z", 11598c2ecf20Sopenharmony_ci "tdm_c_dout0_a", "tdm_c_dout1_a", 11608c2ecf20Sopenharmony_ci "tdm_c_dout2_a", "tdm_c_dout3_a", 11618c2ecf20Sopenharmony_ci "tdm_c_dout0_z", "tdm_c_dout1_z", 11628c2ecf20Sopenharmony_ci "tdm_c_dout2_z", "tdm_c_dout3_z", 11638c2ecf20Sopenharmony_ci}; 11648c2ecf20Sopenharmony_ci 11658c2ecf20Sopenharmony_cistatic const char * const gpio_aobus_groups[] = { 11668c2ecf20Sopenharmony_ci "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4", 11678c2ecf20Sopenharmony_ci "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9", 11688c2ecf20Sopenharmony_ci "GPIOAO_10", "GPIOAO_11", "GPIOE_0", "GPIOE_1", "GPIOE_2", 11698c2ecf20Sopenharmony_ci}; 11708c2ecf20Sopenharmony_ci 11718c2ecf20Sopenharmony_cistatic const char * const uart_ao_a_groups[] = { 11728c2ecf20Sopenharmony_ci "uart_ao_a_tx", "uart_ao_a_rx", 11738c2ecf20Sopenharmony_ci "uart_ao_a_cts", "uart_ao_a_rts", 11748c2ecf20Sopenharmony_ci}; 11758c2ecf20Sopenharmony_ci 11768c2ecf20Sopenharmony_cistatic const char * const uart_ao_b_groups[] = { 11778c2ecf20Sopenharmony_ci "uart_ao_b_tx_2", "uart_ao_b_rx_3", 11788c2ecf20Sopenharmony_ci "uart_ao_b_tx_8", "uart_ao_b_rx_9", 11798c2ecf20Sopenharmony_ci "uart_ao_b_cts", "uart_ao_b_rts", 11808c2ecf20Sopenharmony_ci}; 11818c2ecf20Sopenharmony_ci 11828c2ecf20Sopenharmony_cistatic const char * const i2c_ao_groups[] = { 11838c2ecf20Sopenharmony_ci "i2c_ao_sck", "i2c_ao_sda", 11848c2ecf20Sopenharmony_ci "i2c_ao_sck_e", "i2c_ao_sda_e", 11858c2ecf20Sopenharmony_ci}; 11868c2ecf20Sopenharmony_ci 11878c2ecf20Sopenharmony_cistatic const char * const i2c_ao_slave_groups[] = { 11888c2ecf20Sopenharmony_ci "i2c_ao_slave_sck", "i2c_ao_slave_sda", 11898c2ecf20Sopenharmony_ci}; 11908c2ecf20Sopenharmony_ci 11918c2ecf20Sopenharmony_cistatic const char * const remote_ao_input_groups[] = { 11928c2ecf20Sopenharmony_ci "remote_ao_input", 11938c2ecf20Sopenharmony_ci}; 11948c2ecf20Sopenharmony_ci 11958c2ecf20Sopenharmony_cistatic const char * const remote_ao_out_groups[] = { 11968c2ecf20Sopenharmony_ci "remote_ao_out", 11978c2ecf20Sopenharmony_ci}; 11988c2ecf20Sopenharmony_ci 11998c2ecf20Sopenharmony_cistatic const char * const pwm_a_e_groups[] = { 12008c2ecf20Sopenharmony_ci "pwm_a_e", 12018c2ecf20Sopenharmony_ci}; 12028c2ecf20Sopenharmony_ci 12038c2ecf20Sopenharmony_cistatic const char * const pwm_ao_a_groups[] = { 12048c2ecf20Sopenharmony_ci "pwm_ao_a", "pwm_ao_a_hiz", 12058c2ecf20Sopenharmony_ci}; 12068c2ecf20Sopenharmony_ci 12078c2ecf20Sopenharmony_cistatic const char * const pwm_ao_b_groups[] = { 12088c2ecf20Sopenharmony_ci "pwm_ao_b", 12098c2ecf20Sopenharmony_ci}; 12108c2ecf20Sopenharmony_ci 12118c2ecf20Sopenharmony_cistatic const char * const pwm_ao_c_groups[] = { 12128c2ecf20Sopenharmony_ci "pwm_ao_c_4", "pwm_ao_c_hiz", 12138c2ecf20Sopenharmony_ci "pwm_ao_c_6", 12148c2ecf20Sopenharmony_ci}; 12158c2ecf20Sopenharmony_ci 12168c2ecf20Sopenharmony_cistatic const char * const pwm_ao_d_groups[] = { 12178c2ecf20Sopenharmony_ci "pwm_ao_d_5", "pwm_ao_d_10", "pwm_ao_d_e", 12188c2ecf20Sopenharmony_ci}; 12198c2ecf20Sopenharmony_ci 12208c2ecf20Sopenharmony_cistatic const char * const jtag_a_groups[] = { 12218c2ecf20Sopenharmony_ci "jtag_a_tdi", "jtag_a_tdo", "jtag_a_clk", "jtag_a_tms", 12228c2ecf20Sopenharmony_ci}; 12238c2ecf20Sopenharmony_ci 12248c2ecf20Sopenharmony_cistatic const char * const cec_ao_a_groups[] = { 12258c2ecf20Sopenharmony_ci "cec_ao_a", 12268c2ecf20Sopenharmony_ci}; 12278c2ecf20Sopenharmony_ci 12288c2ecf20Sopenharmony_cistatic const char * const cec_ao_b_groups[] = { 12298c2ecf20Sopenharmony_ci "cec_ao_b", 12308c2ecf20Sopenharmony_ci}; 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_cistatic const char * const tsin_ao_a_groups[] = { 12338c2ecf20Sopenharmony_ci "tsin_ao_asop", "tsin_ao_adin0", "tsin_ao_aclk", "tsin_ao_a_valid", 12348c2ecf20Sopenharmony_ci}; 12358c2ecf20Sopenharmony_ci 12368c2ecf20Sopenharmony_cistatic const char * const spdif_ao_out_groups[] = { 12378c2ecf20Sopenharmony_ci "spdif_ao_out", 12388c2ecf20Sopenharmony_ci}; 12398c2ecf20Sopenharmony_ci 12408c2ecf20Sopenharmony_cistatic const char * const tdm_ao_b_groups[] = { 12418c2ecf20Sopenharmony_ci "tdm_ao_b_dout0", "tdm_ao_b_dout1", "tdm_ao_b_dout2", 12428c2ecf20Sopenharmony_ci "tdm_ao_b_fs", "tdm_ao_b_sclk", 12438c2ecf20Sopenharmony_ci "tdm_ao_b_din0", "tdm_ao_b_din1", "tdm_ao_b_din2", 12448c2ecf20Sopenharmony_ci "tdm_ao_b_slv_fs", "tdm_ao_b_slv_sclk", 12458c2ecf20Sopenharmony_ci}; 12468c2ecf20Sopenharmony_ci 12478c2ecf20Sopenharmony_cistatic const char * const mclk0_ao_groups[] = { 12488c2ecf20Sopenharmony_ci "mclk0_ao", 12498c2ecf20Sopenharmony_ci}; 12508c2ecf20Sopenharmony_ci 12518c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_g12a_periphs_functions[] = { 12528c2ecf20Sopenharmony_ci FUNCTION(gpio_periphs), 12538c2ecf20Sopenharmony_ci FUNCTION(emmc), 12548c2ecf20Sopenharmony_ci FUNCTION(nor), 12558c2ecf20Sopenharmony_ci FUNCTION(spi0), 12568c2ecf20Sopenharmony_ci FUNCTION(spi1), 12578c2ecf20Sopenharmony_ci FUNCTION(sdio), 12588c2ecf20Sopenharmony_ci FUNCTION(nand), 12598c2ecf20Sopenharmony_ci FUNCTION(sdcard), 12608c2ecf20Sopenharmony_ci FUNCTION(i2c0), 12618c2ecf20Sopenharmony_ci FUNCTION(i2c1), 12628c2ecf20Sopenharmony_ci FUNCTION(i2c2), 12638c2ecf20Sopenharmony_ci FUNCTION(i2c3), 12648c2ecf20Sopenharmony_ci FUNCTION(uart_a), 12658c2ecf20Sopenharmony_ci FUNCTION(uart_b), 12668c2ecf20Sopenharmony_ci FUNCTION(uart_c), 12678c2ecf20Sopenharmony_ci FUNCTION(uart_ao_a_c), 12688c2ecf20Sopenharmony_ci FUNCTION(iso7816), 12698c2ecf20Sopenharmony_ci FUNCTION(eth), 12708c2ecf20Sopenharmony_ci FUNCTION(pwm_a), 12718c2ecf20Sopenharmony_ci FUNCTION(pwm_b), 12728c2ecf20Sopenharmony_ci FUNCTION(pwm_c), 12738c2ecf20Sopenharmony_ci FUNCTION(pwm_d), 12748c2ecf20Sopenharmony_ci FUNCTION(pwm_e), 12758c2ecf20Sopenharmony_ci FUNCTION(pwm_f), 12768c2ecf20Sopenharmony_ci FUNCTION(cec_ao_a_h), 12778c2ecf20Sopenharmony_ci FUNCTION(cec_ao_b_h), 12788c2ecf20Sopenharmony_ci FUNCTION(jtag_b), 12798c2ecf20Sopenharmony_ci FUNCTION(bt565_a), 12808c2ecf20Sopenharmony_ci FUNCTION(tsin_a), 12818c2ecf20Sopenharmony_ci FUNCTION(tsin_b), 12828c2ecf20Sopenharmony_ci FUNCTION(hdmitx), 12838c2ecf20Sopenharmony_ci FUNCTION(pdm), 12848c2ecf20Sopenharmony_ci FUNCTION(spdif_out), 12858c2ecf20Sopenharmony_ci FUNCTION(spdif_in), 12868c2ecf20Sopenharmony_ci FUNCTION(mclk0), 12878c2ecf20Sopenharmony_ci FUNCTION(mclk1), 12888c2ecf20Sopenharmony_ci FUNCTION(tdm_a), 12898c2ecf20Sopenharmony_ci FUNCTION(tdm_b), 12908c2ecf20Sopenharmony_ci FUNCTION(tdm_c), 12918c2ecf20Sopenharmony_ci}; 12928c2ecf20Sopenharmony_ci 12938c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_g12a_aobus_functions[] = { 12948c2ecf20Sopenharmony_ci FUNCTION(gpio_aobus), 12958c2ecf20Sopenharmony_ci FUNCTION(uart_ao_a), 12968c2ecf20Sopenharmony_ci FUNCTION(uart_ao_b), 12978c2ecf20Sopenharmony_ci FUNCTION(i2c_ao), 12988c2ecf20Sopenharmony_ci FUNCTION(i2c_ao_slave), 12998c2ecf20Sopenharmony_ci FUNCTION(remote_ao_input), 13008c2ecf20Sopenharmony_ci FUNCTION(remote_ao_out), 13018c2ecf20Sopenharmony_ci FUNCTION(pwm_a_e), 13028c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_a), 13038c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_b), 13048c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_c), 13058c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_d), 13068c2ecf20Sopenharmony_ci FUNCTION(jtag_a), 13078c2ecf20Sopenharmony_ci FUNCTION(cec_ao_a), 13088c2ecf20Sopenharmony_ci FUNCTION(cec_ao_b), 13098c2ecf20Sopenharmony_ci FUNCTION(tsin_ao_a), 13108c2ecf20Sopenharmony_ci FUNCTION(spdif_ao_out), 13118c2ecf20Sopenharmony_ci FUNCTION(tdm_ao_b), 13128c2ecf20Sopenharmony_ci FUNCTION(mclk0_ao), 13138c2ecf20Sopenharmony_ci}; 13148c2ecf20Sopenharmony_ci 13158c2ecf20Sopenharmony_cistatic struct meson_bank meson_g12a_periphs_banks[] = { 13168c2ecf20Sopenharmony_ci /* name first last irq pullen pull dir out in ds */ 13178c2ecf20Sopenharmony_ci BANK_DS("Z", GPIOZ_0, GPIOZ_15, 12, 27, 13188c2ecf20Sopenharmony_ci 4, 0, 4, 0, 12, 0, 13, 0, 14, 0, 5, 0), 13198c2ecf20Sopenharmony_ci BANK_DS("H", GPIOH_0, GPIOH_8, 28, 36, 13208c2ecf20Sopenharmony_ci 3, 0, 3, 0, 9, 0, 10, 0, 11, 0, 4, 0), 13218c2ecf20Sopenharmony_ci BANK_DS("BOOT", BOOT_0, BOOT_15, 37, 52, 13228c2ecf20Sopenharmony_ci 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0), 13238c2ecf20Sopenharmony_ci BANK_DS("C", GPIOC_0, GPIOC_7, 53, 60, 13248c2ecf20Sopenharmony_ci 1, 0, 1, 0, 3, 0, 4, 0, 5, 0, 1, 0), 13258c2ecf20Sopenharmony_ci BANK_DS("A", GPIOA_0, GPIOA_15, 61, 76, 13268c2ecf20Sopenharmony_ci 5, 0, 5, 0, 16, 0, 17, 0, 18, 0, 6, 0), 13278c2ecf20Sopenharmony_ci BANK_DS("X", GPIOX_0, GPIOX_19, 77, 96, 13288c2ecf20Sopenharmony_ci 2, 0, 2, 0, 6, 0, 7, 0, 8, 0, 2, 0), 13298c2ecf20Sopenharmony_ci}; 13308c2ecf20Sopenharmony_ci 13318c2ecf20Sopenharmony_cistatic struct meson_bank meson_g12a_aobus_banks[] = { 13328c2ecf20Sopenharmony_ci /* name first last irq pullen pull dir out in ds */ 13338c2ecf20Sopenharmony_ci BANK_DS("AO", GPIOAO_0, GPIOAO_11, 0, 11, 3, 0, 2, 0, 0, 0, 4, 0, 1, 0, 13348c2ecf20Sopenharmony_ci 0, 0), 13358c2ecf20Sopenharmony_ci /* GPIOE actually located in the AO bank */ 13368c2ecf20Sopenharmony_ci BANK_DS("E", GPIOE_0, GPIOE_2, 97, 99, 3, 16, 2, 16, 0, 16, 4, 16, 1, 13378c2ecf20Sopenharmony_ci 16, 1, 0), 13388c2ecf20Sopenharmony_ci}; 13398c2ecf20Sopenharmony_ci 13408c2ecf20Sopenharmony_cistatic struct meson_pmx_bank meson_g12a_periphs_pmx_banks[] = { 13418c2ecf20Sopenharmony_ci /* name first lask reg offset */ 13428c2ecf20Sopenharmony_ci BANK_PMX("Z", GPIOZ_0, GPIOZ_15, 0x6, 0), 13438c2ecf20Sopenharmony_ci BANK_PMX("H", GPIOH_0, GPIOH_8, 0xb, 0), 13448c2ecf20Sopenharmony_ci BANK_PMX("BOOT", BOOT_0, BOOT_15, 0x0, 0), 13458c2ecf20Sopenharmony_ci BANK_PMX("C", GPIOC_0, GPIOC_7, 0x9, 0), 13468c2ecf20Sopenharmony_ci BANK_PMX("A", GPIOA_0, GPIOA_15, 0xd, 0), 13478c2ecf20Sopenharmony_ci BANK_PMX("X", GPIOX_0, GPIOX_19, 0x3, 0), 13488c2ecf20Sopenharmony_ci}; 13498c2ecf20Sopenharmony_ci 13508c2ecf20Sopenharmony_cistatic struct meson_axg_pmx_data meson_g12a_periphs_pmx_banks_data = { 13518c2ecf20Sopenharmony_ci .pmx_banks = meson_g12a_periphs_pmx_banks, 13528c2ecf20Sopenharmony_ci .num_pmx_banks = ARRAY_SIZE(meson_g12a_periphs_pmx_banks), 13538c2ecf20Sopenharmony_ci}; 13548c2ecf20Sopenharmony_ci 13558c2ecf20Sopenharmony_cistatic struct meson_pmx_bank meson_g12a_aobus_pmx_banks[] = { 13568c2ecf20Sopenharmony_ci BANK_PMX("AO", GPIOAO_0, GPIOAO_11, 0x0, 0), 13578c2ecf20Sopenharmony_ci BANK_PMX("E", GPIOE_0, GPIOE_2, 0x1, 16), 13588c2ecf20Sopenharmony_ci}; 13598c2ecf20Sopenharmony_ci 13608c2ecf20Sopenharmony_cistatic struct meson_axg_pmx_data meson_g12a_aobus_pmx_banks_data = { 13618c2ecf20Sopenharmony_ci .pmx_banks = meson_g12a_aobus_pmx_banks, 13628c2ecf20Sopenharmony_ci .num_pmx_banks = ARRAY_SIZE(meson_g12a_aobus_pmx_banks), 13638c2ecf20Sopenharmony_ci}; 13648c2ecf20Sopenharmony_ci 13658c2ecf20Sopenharmony_cistatic int meson_g12a_aobus_parse_dt_extra(struct meson_pinctrl *pc) 13668c2ecf20Sopenharmony_ci{ 13678c2ecf20Sopenharmony_ci pc->reg_pull = pc->reg_gpio; 13688c2ecf20Sopenharmony_ci pc->reg_pullen = pc->reg_gpio; 13698c2ecf20Sopenharmony_ci 13708c2ecf20Sopenharmony_ci return 0; 13718c2ecf20Sopenharmony_ci} 13728c2ecf20Sopenharmony_ci 13738c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_g12a_periphs_pinctrl_data = { 13748c2ecf20Sopenharmony_ci .name = "periphs-banks", 13758c2ecf20Sopenharmony_ci .pins = meson_g12a_periphs_pins, 13768c2ecf20Sopenharmony_ci .groups = meson_g12a_periphs_groups, 13778c2ecf20Sopenharmony_ci .funcs = meson_g12a_periphs_functions, 13788c2ecf20Sopenharmony_ci .banks = meson_g12a_periphs_banks, 13798c2ecf20Sopenharmony_ci .num_pins = ARRAY_SIZE(meson_g12a_periphs_pins), 13808c2ecf20Sopenharmony_ci .num_groups = ARRAY_SIZE(meson_g12a_periphs_groups), 13818c2ecf20Sopenharmony_ci .num_funcs = ARRAY_SIZE(meson_g12a_periphs_functions), 13828c2ecf20Sopenharmony_ci .num_banks = ARRAY_SIZE(meson_g12a_periphs_banks), 13838c2ecf20Sopenharmony_ci .pmx_ops = &meson_axg_pmx_ops, 13848c2ecf20Sopenharmony_ci .pmx_data = &meson_g12a_periphs_pmx_banks_data, 13858c2ecf20Sopenharmony_ci}; 13868c2ecf20Sopenharmony_ci 13878c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_g12a_aobus_pinctrl_data = { 13888c2ecf20Sopenharmony_ci .name = "aobus-banks", 13898c2ecf20Sopenharmony_ci .pins = meson_g12a_aobus_pins, 13908c2ecf20Sopenharmony_ci .groups = meson_g12a_aobus_groups, 13918c2ecf20Sopenharmony_ci .funcs = meson_g12a_aobus_functions, 13928c2ecf20Sopenharmony_ci .banks = meson_g12a_aobus_banks, 13938c2ecf20Sopenharmony_ci .num_pins = ARRAY_SIZE(meson_g12a_aobus_pins), 13948c2ecf20Sopenharmony_ci .num_groups = ARRAY_SIZE(meson_g12a_aobus_groups), 13958c2ecf20Sopenharmony_ci .num_funcs = ARRAY_SIZE(meson_g12a_aobus_functions), 13968c2ecf20Sopenharmony_ci .num_banks = ARRAY_SIZE(meson_g12a_aobus_banks), 13978c2ecf20Sopenharmony_ci .pmx_ops = &meson_axg_pmx_ops, 13988c2ecf20Sopenharmony_ci .pmx_data = &meson_g12a_aobus_pmx_banks_data, 13998c2ecf20Sopenharmony_ci .parse_dt = meson_g12a_aobus_parse_dt_extra, 14008c2ecf20Sopenharmony_ci}; 14018c2ecf20Sopenharmony_ci 14028c2ecf20Sopenharmony_cistatic const struct of_device_id meson_g12a_pinctrl_dt_match[] = { 14038c2ecf20Sopenharmony_ci { 14048c2ecf20Sopenharmony_ci .compatible = "amlogic,meson-g12a-periphs-pinctrl", 14058c2ecf20Sopenharmony_ci .data = &meson_g12a_periphs_pinctrl_data, 14068c2ecf20Sopenharmony_ci }, 14078c2ecf20Sopenharmony_ci { 14088c2ecf20Sopenharmony_ci .compatible = "amlogic,meson-g12a-aobus-pinctrl", 14098c2ecf20Sopenharmony_ci .data = &meson_g12a_aobus_pinctrl_data, 14108c2ecf20Sopenharmony_ci }, 14118c2ecf20Sopenharmony_ci { }, 14128c2ecf20Sopenharmony_ci}; 14138c2ecf20Sopenharmony_ci 14148c2ecf20Sopenharmony_cistatic struct platform_driver meson_g12a_pinctrl_driver = { 14158c2ecf20Sopenharmony_ci .probe = meson_pinctrl_probe, 14168c2ecf20Sopenharmony_ci .driver = { 14178c2ecf20Sopenharmony_ci .name = "meson-g12a-pinctrl", 14188c2ecf20Sopenharmony_ci .of_match_table = meson_g12a_pinctrl_dt_match, 14198c2ecf20Sopenharmony_ci }, 14208c2ecf20Sopenharmony_ci}; 14218c2ecf20Sopenharmony_ci 14228c2ecf20Sopenharmony_cibuiltin_platform_driver(meson_g12a_pinctrl_driver); 1423