18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Pin controller and GPIO driver for Amlogic Meson GXL. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2016 Endless Mobile, Inc. 68c2ecf20Sopenharmony_ci * Author: Carlo Caione <carlo@endlessm.com> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-gxl-gpio.h> 108c2ecf20Sopenharmony_ci#include "pinctrl-meson.h" 118c2ecf20Sopenharmony_ci#include "pinctrl-meson8-pmx.h" 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_gxl_periphs_pins[] = { 148c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_0), 158c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_1), 168c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_2), 178c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_3), 188c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_4), 198c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_5), 208c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_6), 218c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_7), 228c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_8), 238c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_9), 248c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_10), 258c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_11), 268c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_12), 278c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_13), 288c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_14), 298c2ecf20Sopenharmony_ci MESON_PIN(GPIOZ_15), 308c2ecf20Sopenharmony_ci 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(GPIOH_9), 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci MESON_PIN(BOOT_0), 438c2ecf20Sopenharmony_ci MESON_PIN(BOOT_1), 448c2ecf20Sopenharmony_ci MESON_PIN(BOOT_2), 458c2ecf20Sopenharmony_ci MESON_PIN(BOOT_3), 468c2ecf20Sopenharmony_ci MESON_PIN(BOOT_4), 478c2ecf20Sopenharmony_ci MESON_PIN(BOOT_5), 488c2ecf20Sopenharmony_ci MESON_PIN(BOOT_6), 498c2ecf20Sopenharmony_ci MESON_PIN(BOOT_7), 508c2ecf20Sopenharmony_ci MESON_PIN(BOOT_8), 518c2ecf20Sopenharmony_ci MESON_PIN(BOOT_9), 528c2ecf20Sopenharmony_ci MESON_PIN(BOOT_10), 538c2ecf20Sopenharmony_ci MESON_PIN(BOOT_11), 548c2ecf20Sopenharmony_ci MESON_PIN(BOOT_12), 558c2ecf20Sopenharmony_ci MESON_PIN(BOOT_13), 568c2ecf20Sopenharmony_ci MESON_PIN(BOOT_14), 578c2ecf20Sopenharmony_ci MESON_PIN(BOOT_15), 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci MESON_PIN(CARD_0), 608c2ecf20Sopenharmony_ci MESON_PIN(CARD_1), 618c2ecf20Sopenharmony_ci MESON_PIN(CARD_2), 628c2ecf20Sopenharmony_ci MESON_PIN(CARD_3), 638c2ecf20Sopenharmony_ci MESON_PIN(CARD_4), 648c2ecf20Sopenharmony_ci MESON_PIN(CARD_5), 658c2ecf20Sopenharmony_ci MESON_PIN(CARD_6), 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_0), 688c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_1), 698c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_2), 708c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_3), 718c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_4), 728c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_5), 738c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_6), 748c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_7), 758c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_8), 768c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_9), 778c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_10), 788c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_11), 798c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_12), 808c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_13), 818c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_14), 828c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_15), 838c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_16), 848c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_17), 858c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_18), 868c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_19), 878c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_20), 888c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_21), 898c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_22), 908c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_23), 918c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_24), 928c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_25), 938c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_26), 948c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_27), 958c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_28), 968c2ecf20Sopenharmony_ci MESON_PIN(GPIODV_29), 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_0), 998c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_1), 1008c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_2), 1018c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_3), 1028c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_4), 1038c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_5), 1048c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_6), 1058c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_7), 1068c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_8), 1078c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_9), 1088c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_10), 1098c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_11), 1108c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_12), 1118c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_13), 1128c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_14), 1138c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_15), 1148c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_16), 1158c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_17), 1168c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_18), 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci MESON_PIN(GPIOCLK_0), 1198c2ecf20Sopenharmony_ci MESON_PIN(GPIOCLK_1), 1208c2ecf20Sopenharmony_ci}; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d07_pins[] = { 1238c2ecf20Sopenharmony_ci BOOT_0, BOOT_1, BOOT_2, BOOT_3, BOOT_4, BOOT_5, BOOT_6, BOOT_7, 1248c2ecf20Sopenharmony_ci}; 1258c2ecf20Sopenharmony_cistatic const unsigned int emmc_clk_pins[] = { BOOT_8 }; 1268c2ecf20Sopenharmony_cistatic const unsigned int emmc_cmd_pins[] = { BOOT_10 }; 1278c2ecf20Sopenharmony_cistatic const unsigned int emmc_ds_pins[] = { BOOT_15 }; 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_cistatic const unsigned int nor_d_pins[] = { BOOT_11 }; 1308c2ecf20Sopenharmony_cistatic const unsigned int nor_q_pins[] = { BOOT_12 }; 1318c2ecf20Sopenharmony_cistatic const unsigned int nor_c_pins[] = { BOOT_13 }; 1328c2ecf20Sopenharmony_cistatic const unsigned int nor_cs_pins[] = { BOOT_15 }; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_cistatic const unsigned int spi_mosi_pins[] = { GPIOX_8 }; 1358c2ecf20Sopenharmony_cistatic const unsigned int spi_miso_pins[] = { GPIOX_9 }; 1368c2ecf20Sopenharmony_cistatic const unsigned int spi_ss0_pins[] = { GPIOX_10 }; 1378c2ecf20Sopenharmony_cistatic const unsigned int spi_sclk_pins[] = { GPIOX_11 }; 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d0_pins[] = { CARD_1 }; 1408c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d1_pins[] = { CARD_0 }; 1418c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d2_pins[] = { CARD_5 }; 1428c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d3_pins[] = { CARD_4 }; 1438c2ecf20Sopenharmony_cistatic const unsigned int sdcard_cmd_pins[] = { CARD_3 }; 1448c2ecf20Sopenharmony_cistatic const unsigned int sdcard_clk_pins[] = { CARD_2 }; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_cistatic const unsigned int sdio_d0_pins[] = { GPIOX_0 }; 1478c2ecf20Sopenharmony_cistatic const unsigned int sdio_d1_pins[] = { GPIOX_1 }; 1488c2ecf20Sopenharmony_cistatic const unsigned int sdio_d2_pins[] = { GPIOX_2 }; 1498c2ecf20Sopenharmony_cistatic const unsigned int sdio_d3_pins[] = { GPIOX_3 }; 1508c2ecf20Sopenharmony_cistatic const unsigned int sdio_clk_pins[] = { GPIOX_4 }; 1518c2ecf20Sopenharmony_cistatic const unsigned int sdio_cmd_pins[] = { GPIOX_5 }; 1528c2ecf20Sopenharmony_cistatic const unsigned int sdio_irq_pins[] = { GPIOX_7 }; 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_cistatic const unsigned int nand_ce0_pins[] = { BOOT_8 }; 1558c2ecf20Sopenharmony_cistatic const unsigned int nand_ce1_pins[] = { BOOT_9 }; 1568c2ecf20Sopenharmony_cistatic const unsigned int nand_rb0_pins[] = { BOOT_10 }; 1578c2ecf20Sopenharmony_cistatic const unsigned int nand_ale_pins[] = { BOOT_11 }; 1588c2ecf20Sopenharmony_cistatic const unsigned int nand_cle_pins[] = { BOOT_12 }; 1598c2ecf20Sopenharmony_cistatic const unsigned int nand_wen_clk_pins[] = { BOOT_13 }; 1608c2ecf20Sopenharmony_cistatic const unsigned int nand_ren_wr_pins[] = { BOOT_14 }; 1618c2ecf20Sopenharmony_cistatic const unsigned int nand_dqs_pins[] = { BOOT_15 }; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_a_pins[] = { GPIOX_12 }; 1648c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_a_pins[] = { GPIOX_13 }; 1658c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_a_pins[] = { GPIOX_14 }; 1668c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_a_pins[] = { GPIOX_15 }; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_b_pins[] = { GPIODV_24 }; 1698c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_b_pins[] = { GPIODV_25 }; 1708c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_b_pins[] = { GPIODV_26 }; 1718c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_b_pins[] = { GPIODV_27 }; 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_c_pins[] = { GPIOX_8 }; 1748c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_c_pins[] = { GPIOX_9 }; 1758c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_c_pins[] = { GPIOX_10 }; 1768c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_c_pins[] = { GPIOX_11 }; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_cistatic const unsigned int i2c_sck_a_pins[] = { GPIODV_25 }; 1798c2ecf20Sopenharmony_cistatic const unsigned int i2c_sda_a_pins[] = { GPIODV_24 }; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_cistatic const unsigned int i2c_sck_b_pins[] = { GPIODV_27 }; 1828c2ecf20Sopenharmony_cistatic const unsigned int i2c_sda_b_pins[] = { GPIODV_26 }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_cistatic const unsigned int i2c_sck_c_pins[] = { GPIODV_29 }; 1858c2ecf20Sopenharmony_cistatic const unsigned int i2c_sda_c_pins[] = { GPIODV_28 }; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_cistatic const unsigned int i2c_sck_c_dv19_pins[] = { GPIODV_19 }; 1888c2ecf20Sopenharmony_cistatic const unsigned int i2c_sda_c_dv18_pins[] = { GPIODV_18 }; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_cistatic const unsigned int eth_mdio_pins[] = { GPIOZ_0 }; 1918c2ecf20Sopenharmony_cistatic const unsigned int eth_mdc_pins[] = { GPIOZ_1 }; 1928c2ecf20Sopenharmony_cistatic const unsigned int eth_clk_rx_clk_pins[] = { GPIOZ_2 }; 1938c2ecf20Sopenharmony_cistatic const unsigned int eth_rx_dv_pins[] = { GPIOZ_3 }; 1948c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd0_pins[] = { GPIOZ_4 }; 1958c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd1_pins[] = { GPIOZ_5 }; 1968c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd2_pins[] = { GPIOZ_6 }; 1978c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd3_pins[] = { GPIOZ_7 }; 1988c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_tx_clk_pins[] = { GPIOZ_8 }; 1998c2ecf20Sopenharmony_cistatic const unsigned int eth_tx_en_pins[] = { GPIOZ_9 }; 2008c2ecf20Sopenharmony_cistatic const unsigned int eth_txd0_pins[] = { GPIOZ_10 }; 2018c2ecf20Sopenharmony_cistatic const unsigned int eth_txd1_pins[] = { GPIOZ_11 }; 2028c2ecf20Sopenharmony_cistatic const unsigned int eth_txd2_pins[] = { GPIOZ_12 }; 2038c2ecf20Sopenharmony_cistatic const unsigned int eth_txd3_pins[] = { GPIOZ_13 }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_pins[] = { GPIOX_6 }; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_pins[] = { GPIODV_29 }; 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_pins[] = { GPIOZ_15 }; 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_pins[] = { GPIODV_28 }; 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_pins[] = { GPIOX_16 }; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_clk_pins[] = { GPIOCLK_1 }; 2168c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_x_pins[] = { GPIOX_7 }; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_cistatic const unsigned int hdmi_hpd_pins[] = { GPIOH_0 }; 2198c2ecf20Sopenharmony_cistatic const unsigned int hdmi_sda_pins[] = { GPIOH_1 }; 2208c2ecf20Sopenharmony_cistatic const unsigned int hdmi_scl_pins[] = { GPIOH_2 }; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_cistatic const unsigned int i2s_am_clk_pins[] = { GPIOH_6 }; 2238c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ao_clk_pins[] = { GPIOH_7 }; 2248c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_lr_clk_pins[] = { GPIOH_8 }; 2258c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch01_pins[] = { GPIOH_9 }; 2268c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch23_z_pins[] = { GPIOZ_5 }; 2278c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch45_z_pins[] = { GPIOZ_6 }; 2288c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch67_z_pins[] = { GPIOZ_7 }; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_h_pins[] = { GPIOH_4 }; 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_cistatic const unsigned int eth_link_led_pins[] = { GPIOZ_14 }; 2338c2ecf20Sopenharmony_cistatic const unsigned int eth_act_led_pins[] = { GPIOZ_15 }; 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_d0_pins[] = { GPIODV_0 }; 2368c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_clk_pins[] = { GPIODV_8 }; 2378c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_sop_pins[] = { GPIODV_9 }; 2388c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_d_valid_pins[] = { GPIODV_10 }; 2398c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_fail_pins[] = { GPIODV_11 }; 2408c2ecf20Sopenharmony_cistatic const unsigned int tsin_a_dp_pins[] = { 2418c2ecf20Sopenharmony_ci GPIODV_1, GPIODV_2, GPIODV_3, GPIODV_4, GPIODV_5, GPIODV_6, GPIODV_7, 2428c2ecf20Sopenharmony_ci}; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_clk_pins[] = { GPIOH_6 }; 2458c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_d0_pins[] = { GPIOH_7 }; 2468c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_sop_pins[] = { GPIOH_8 }; 2478c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_d_valid_pins[] = { GPIOH_9 }; 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_fail_z4_pins[] = { GPIOZ_4 }; 2508c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_clk_z3_pins[] = { GPIOZ_3 }; 2518c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_d0_z2_pins[] = { GPIOZ_2 }; 2528c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_sop_z1_pins[] = { GPIOZ_1 }; 2538c2ecf20Sopenharmony_cistatic const unsigned int tsin_b_d_valid_z0_pins[] = { GPIOZ_0 }; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_gxl_aobus_pins[] = { 2568c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_0), 2578c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_1), 2588c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_2), 2598c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_3), 2608c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_4), 2618c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_5), 2628c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_6), 2638c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_7), 2648c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_8), 2658c2ecf20Sopenharmony_ci MESON_PIN(GPIOAO_9), 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci MESON_PIN(GPIO_TEST_N), 2688c2ecf20Sopenharmony_ci}; 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_ao_a_pins[] = { GPIOAO_0 }; 2718c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_ao_a_pins[] = { GPIOAO_1 }; 2728c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_ao_b_0_pins[] = { GPIOAO_0 }; 2738c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_ao_b_1_pins[] = { GPIOAO_1 }; 2748c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_ao_a_pins[] = { GPIOAO_2 }; 2758c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_ao_a_pins[] = { GPIOAO_3 }; 2768c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_ao_b_pins[] = { GPIOAO_4 }; 2778c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_ao_b_pins[] = { GPIOAO_5 }; 2788c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_ao_b_pins[] = { GPIOAO_2 }; 2798c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_ao_b_pins[] = { GPIOAO_3 }; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_cistatic const unsigned int i2c_sck_ao_pins[] = {GPIOAO_4 }; 2828c2ecf20Sopenharmony_cistatic const unsigned int i2c_sda_ao_pins[] = {GPIOAO_5 }; 2838c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sck_ao_pins[] = {GPIOAO_4 }; 2848c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sda_ao_pins[] = {GPIOAO_5 }; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_cistatic const unsigned int remote_input_ao_pins[] = {GPIOAO_7 }; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_a_3_pins[] = { GPIOAO_3 }; 2898c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_a_8_pins[] = { GPIOAO_8 }; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_b_pins[] = { GPIOAO_9 }; 2928c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_b_6_pins[] = { GPIOAO_6 }; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch23_ao_pins[] = { GPIOAO_8 }; 2958c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch45_ao_pins[] = { GPIOAO_9 }; 2968c2ecf20Sopenharmony_cistatic const unsigned int i2s_out_ch67_ao_pins[] = { GPIO_TEST_N }; 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_ao_6_pins[] = { GPIOAO_6 }; 2998c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_ao_9_pins[] = { GPIOAO_9 }; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_cistatic const unsigned int ao_cec_pins[] = { GPIOAO_8 }; 3028c2ecf20Sopenharmony_cistatic const unsigned int ee_cec_pins[] = { GPIOAO_8 }; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_gxl_periphs_groups[] = { 3058c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_0), 3068c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_1), 3078c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_2), 3088c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_3), 3098c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_4), 3108c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_5), 3118c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_6), 3128c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_7), 3138c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_8), 3148c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_9), 3158c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_10), 3168c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_11), 3178c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_12), 3188c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_13), 3198c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_14), 3208c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOZ_15), 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_0), 3238c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_1), 3248c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_2), 3258c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_3), 3268c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_4), 3278c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_5), 3288c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_6), 3298c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_7), 3308c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_8), 3318c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOH_9), 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_0), 3348c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_1), 3358c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_2), 3368c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_3), 3378c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_4), 3388c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_5), 3398c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_6), 3408c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_7), 3418c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_8), 3428c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_9), 3438c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_10), 3448c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_11), 3458c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_12), 3468c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_13), 3478c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_14), 3488c2ecf20Sopenharmony_ci GPIO_GROUP(BOOT_15), 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_0), 3518c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_1), 3528c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_2), 3538c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_3), 3548c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_4), 3558c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_5), 3568c2ecf20Sopenharmony_ci GPIO_GROUP(CARD_6), 3578c2ecf20Sopenharmony_ci 3588c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_0), 3598c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_1), 3608c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_2), 3618c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_3), 3628c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_4), 3638c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_5), 3648c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_6), 3658c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_7), 3668c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_8), 3678c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_9), 3688c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_10), 3698c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_11), 3708c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_12), 3718c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_13), 3728c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_14), 3738c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_15), 3748c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_16), 3758c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_17), 3768c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_19), 3778c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_20), 3788c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_21), 3798c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_22), 3808c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_23), 3818c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_24), 3828c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_25), 3838c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_26), 3848c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_27), 3858c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_28), 3868c2ecf20Sopenharmony_ci GPIO_GROUP(GPIODV_29), 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_0), 3898c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_1), 3908c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_2), 3918c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_3), 3928c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_4), 3938c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_5), 3948c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_6), 3958c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_7), 3968c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_8), 3978c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_9), 3988c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_10), 3998c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_11), 4008c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_12), 4018c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_13), 4028c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_14), 4038c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_15), 4048c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_16), 4058c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_17), 4068c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_18), 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOCLK_0), 4098c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOCLK_1), 4108c2ecf20Sopenharmony_ci 4118c2ecf20Sopenharmony_ci GPIO_GROUP(GPIO_TEST_N), 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ci /* Bank X */ 4148c2ecf20Sopenharmony_ci GROUP(sdio_d0, 5, 31), 4158c2ecf20Sopenharmony_ci GROUP(sdio_d1, 5, 30), 4168c2ecf20Sopenharmony_ci GROUP(sdio_d2, 5, 29), 4178c2ecf20Sopenharmony_ci GROUP(sdio_d3, 5, 28), 4188c2ecf20Sopenharmony_ci GROUP(sdio_clk, 5, 27), 4198c2ecf20Sopenharmony_ci GROUP(sdio_cmd, 5, 26), 4208c2ecf20Sopenharmony_ci GROUP(sdio_irq, 5, 24), 4218c2ecf20Sopenharmony_ci GROUP(uart_tx_a, 5, 19), 4228c2ecf20Sopenharmony_ci GROUP(uart_rx_a, 5, 18), 4238c2ecf20Sopenharmony_ci GROUP(uart_cts_a, 5, 17), 4248c2ecf20Sopenharmony_ci GROUP(uart_rts_a, 5, 16), 4258c2ecf20Sopenharmony_ci GROUP(uart_tx_c, 5, 13), 4268c2ecf20Sopenharmony_ci GROUP(uart_rx_c, 5, 12), 4278c2ecf20Sopenharmony_ci GROUP(uart_cts_c, 5, 11), 4288c2ecf20Sopenharmony_ci GROUP(uart_rts_c, 5, 10), 4298c2ecf20Sopenharmony_ci GROUP(pwm_a, 5, 25), 4308c2ecf20Sopenharmony_ci GROUP(pwm_e, 5, 15), 4318c2ecf20Sopenharmony_ci GROUP(pwm_f_x, 5, 14), 4328c2ecf20Sopenharmony_ci GROUP(spi_mosi, 5, 3), 4338c2ecf20Sopenharmony_ci GROUP(spi_miso, 5, 2), 4348c2ecf20Sopenharmony_ci GROUP(spi_ss0, 5, 1), 4358c2ecf20Sopenharmony_ci GROUP(spi_sclk, 5, 0), 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci /* Bank Z */ 4388c2ecf20Sopenharmony_ci GROUP(eth_mdio, 4, 23), 4398c2ecf20Sopenharmony_ci GROUP(eth_mdc, 4, 22), 4408c2ecf20Sopenharmony_ci GROUP(eth_clk_rx_clk, 4, 21), 4418c2ecf20Sopenharmony_ci GROUP(eth_rx_dv, 4, 20), 4428c2ecf20Sopenharmony_ci GROUP(eth_rxd0, 4, 19), 4438c2ecf20Sopenharmony_ci GROUP(eth_rxd1, 4, 18), 4448c2ecf20Sopenharmony_ci GROUP(eth_rxd2, 4, 17), 4458c2ecf20Sopenharmony_ci GROUP(eth_rxd3, 4, 16), 4468c2ecf20Sopenharmony_ci GROUP(eth_rgmii_tx_clk, 4, 15), 4478c2ecf20Sopenharmony_ci GROUP(eth_tx_en, 4, 14), 4488c2ecf20Sopenharmony_ci GROUP(eth_txd0, 4, 13), 4498c2ecf20Sopenharmony_ci GROUP(eth_txd1, 4, 12), 4508c2ecf20Sopenharmony_ci GROUP(eth_txd2, 4, 11), 4518c2ecf20Sopenharmony_ci GROUP(eth_txd3, 4, 10), 4528c2ecf20Sopenharmony_ci GROUP(tsin_b_fail_z4, 3, 15), 4538c2ecf20Sopenharmony_ci GROUP(tsin_b_clk_z3, 3, 16), 4548c2ecf20Sopenharmony_ci GROUP(tsin_b_d0_z2, 3, 17), 4558c2ecf20Sopenharmony_ci GROUP(tsin_b_sop_z1, 3, 18), 4568c2ecf20Sopenharmony_ci GROUP(tsin_b_d_valid_z0, 3, 19), 4578c2ecf20Sopenharmony_ci GROUP(pwm_c, 3, 20), 4588c2ecf20Sopenharmony_ci GROUP(i2s_out_ch23_z, 3, 26), 4598c2ecf20Sopenharmony_ci GROUP(i2s_out_ch45_z, 3, 25), 4608c2ecf20Sopenharmony_ci GROUP(i2s_out_ch67_z, 3, 24), 4618c2ecf20Sopenharmony_ci GROUP(eth_link_led, 4, 25), 4628c2ecf20Sopenharmony_ci GROUP(eth_act_led, 4, 24), 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci /* Bank H */ 4658c2ecf20Sopenharmony_ci GROUP(hdmi_hpd, 6, 31), 4668c2ecf20Sopenharmony_ci GROUP(hdmi_sda, 6, 30), 4678c2ecf20Sopenharmony_ci GROUP(hdmi_scl, 6, 29), 4688c2ecf20Sopenharmony_ci GROUP(i2s_am_clk, 6, 26), 4698c2ecf20Sopenharmony_ci GROUP(i2s_out_ao_clk, 6, 25), 4708c2ecf20Sopenharmony_ci GROUP(i2s_out_lr_clk, 6, 24), 4718c2ecf20Sopenharmony_ci GROUP(i2s_out_ch01, 6, 23), 4728c2ecf20Sopenharmony_ci GROUP(spdif_out_h, 6, 28), 4738c2ecf20Sopenharmony_ci GROUP(tsin_b_d0, 6, 17), 4748c2ecf20Sopenharmony_ci GROUP(tsin_b_sop, 6, 18), 4758c2ecf20Sopenharmony_ci GROUP(tsin_b_d_valid, 6, 19), 4768c2ecf20Sopenharmony_ci GROUP(tsin_b_clk, 6, 20), 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ci /* Bank DV */ 4798c2ecf20Sopenharmony_ci GROUP(uart_tx_b, 2, 16), 4808c2ecf20Sopenharmony_ci GROUP(uart_rx_b, 2, 15), 4818c2ecf20Sopenharmony_ci GROUP(uart_cts_b, 2, 14), 4828c2ecf20Sopenharmony_ci GROUP(uart_rts_b, 2, 13), 4838c2ecf20Sopenharmony_ci GROUP(i2c_sda_c_dv18, 1, 17), 4848c2ecf20Sopenharmony_ci GROUP(i2c_sck_c_dv19, 1, 16), 4858c2ecf20Sopenharmony_ci GROUP(i2c_sda_a, 1, 15), 4868c2ecf20Sopenharmony_ci GROUP(i2c_sck_a, 1, 14), 4878c2ecf20Sopenharmony_ci GROUP(i2c_sda_b, 1, 13), 4888c2ecf20Sopenharmony_ci GROUP(i2c_sck_b, 1, 12), 4898c2ecf20Sopenharmony_ci GROUP(i2c_sda_c, 1, 11), 4908c2ecf20Sopenharmony_ci GROUP(i2c_sck_c, 1, 10), 4918c2ecf20Sopenharmony_ci GROUP(pwm_b, 2, 11), 4928c2ecf20Sopenharmony_ci GROUP(pwm_d, 2, 12), 4938c2ecf20Sopenharmony_ci GROUP(tsin_a_d0, 2, 4), 4948c2ecf20Sopenharmony_ci GROUP(tsin_a_dp, 2, 3), 4958c2ecf20Sopenharmony_ci GROUP(tsin_a_clk, 2, 2), 4968c2ecf20Sopenharmony_ci GROUP(tsin_a_sop, 2, 1), 4978c2ecf20Sopenharmony_ci GROUP(tsin_a_d_valid, 2, 0), 4988c2ecf20Sopenharmony_ci GROUP(tsin_a_fail, 1, 31), 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ci /* Bank BOOT */ 5018c2ecf20Sopenharmony_ci GROUP(emmc_nand_d07, 7, 31), 5028c2ecf20Sopenharmony_ci GROUP(emmc_clk, 7, 30), 5038c2ecf20Sopenharmony_ci GROUP(emmc_cmd, 7, 29), 5048c2ecf20Sopenharmony_ci GROUP(emmc_ds, 7, 28), 5058c2ecf20Sopenharmony_ci GROUP(nor_d, 7, 13), 5068c2ecf20Sopenharmony_ci GROUP(nor_q, 7, 12), 5078c2ecf20Sopenharmony_ci GROUP(nor_c, 7, 11), 5088c2ecf20Sopenharmony_ci GROUP(nor_cs, 7, 10), 5098c2ecf20Sopenharmony_ci GROUP(nand_ce0, 7, 7), 5108c2ecf20Sopenharmony_ci GROUP(nand_ce1, 7, 6), 5118c2ecf20Sopenharmony_ci GROUP(nand_rb0, 7, 5), 5128c2ecf20Sopenharmony_ci GROUP(nand_ale, 7, 4), 5138c2ecf20Sopenharmony_ci GROUP(nand_cle, 7, 3), 5148c2ecf20Sopenharmony_ci GROUP(nand_wen_clk, 7, 2), 5158c2ecf20Sopenharmony_ci GROUP(nand_ren_wr, 7, 1), 5168c2ecf20Sopenharmony_ci GROUP(nand_dqs, 7, 0), 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ci /* Bank CARD */ 5198c2ecf20Sopenharmony_ci GROUP(sdcard_d1, 6, 5), 5208c2ecf20Sopenharmony_ci GROUP(sdcard_d0, 6, 4), 5218c2ecf20Sopenharmony_ci GROUP(sdcard_d3, 6, 1), 5228c2ecf20Sopenharmony_ci GROUP(sdcard_d2, 6, 0), 5238c2ecf20Sopenharmony_ci GROUP(sdcard_cmd, 6, 2), 5248c2ecf20Sopenharmony_ci GROUP(sdcard_clk, 6, 3), 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ci /* Bank CLK */ 5278c2ecf20Sopenharmony_ci GROUP(pwm_f_clk, 8, 30), 5288c2ecf20Sopenharmony_ci}; 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_gxl_aobus_groups[] = { 5318c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_0), 5328c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_1), 5338c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_2), 5348c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_3), 5358c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_4), 5368c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_5), 5378c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_6), 5388c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_7), 5398c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_8), 5408c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOAO_9), 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ci /* bank AO */ 5438c2ecf20Sopenharmony_ci GROUP(uart_tx_ao_b_0, 0, 26), 5448c2ecf20Sopenharmony_ci GROUP(uart_rx_ao_b_1, 0, 25), 5458c2ecf20Sopenharmony_ci GROUP(uart_tx_ao_b, 0, 24), 5468c2ecf20Sopenharmony_ci GROUP(uart_rx_ao_b, 0, 23), 5478c2ecf20Sopenharmony_ci GROUP(uart_tx_ao_a, 0, 12), 5488c2ecf20Sopenharmony_ci GROUP(uart_rx_ao_a, 0, 11), 5498c2ecf20Sopenharmony_ci GROUP(uart_cts_ao_a, 0, 10), 5508c2ecf20Sopenharmony_ci GROUP(uart_rts_ao_a, 0, 9), 5518c2ecf20Sopenharmony_ci GROUP(uart_cts_ao_b, 0, 8), 5528c2ecf20Sopenharmony_ci GROUP(uart_rts_ao_b, 0, 7), 5538c2ecf20Sopenharmony_ci GROUP(i2c_sck_ao, 0, 6), 5548c2ecf20Sopenharmony_ci GROUP(i2c_sda_ao, 0, 5), 5558c2ecf20Sopenharmony_ci GROUP(i2c_slave_sck_ao, 0, 2), 5568c2ecf20Sopenharmony_ci GROUP(i2c_slave_sda_ao, 0, 1), 5578c2ecf20Sopenharmony_ci GROUP(remote_input_ao, 0, 0), 5588c2ecf20Sopenharmony_ci GROUP(pwm_ao_a_3, 0, 22), 5598c2ecf20Sopenharmony_ci GROUP(pwm_ao_b_6, 0, 18), 5608c2ecf20Sopenharmony_ci GROUP(pwm_ao_a_8, 0, 17), 5618c2ecf20Sopenharmony_ci GROUP(pwm_ao_b, 0, 3), 5628c2ecf20Sopenharmony_ci GROUP(i2s_out_ch23_ao, 1, 0), 5638c2ecf20Sopenharmony_ci GROUP(i2s_out_ch45_ao, 1, 1), 5648c2ecf20Sopenharmony_ci GROUP(spdif_out_ao_6, 0, 16), 5658c2ecf20Sopenharmony_ci GROUP(spdif_out_ao_9, 0, 4), 5668c2ecf20Sopenharmony_ci GROUP(ao_cec, 0, 15), 5678c2ecf20Sopenharmony_ci GROUP(ee_cec, 0, 14), 5688c2ecf20Sopenharmony_ci 5698c2ecf20Sopenharmony_ci /* test n pin */ 5708c2ecf20Sopenharmony_ci GROUP(i2s_out_ch67_ao, 1, 2), 5718c2ecf20Sopenharmony_ci}; 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_cistatic const char * const gpio_periphs_groups[] = { 5748c2ecf20Sopenharmony_ci "GPIOZ_0", "GPIOZ_1", "GPIOZ_2", "GPIOZ_3", "GPIOZ_4", 5758c2ecf20Sopenharmony_ci "GPIOZ_5", "GPIOZ_6", "GPIOZ_7", "GPIOZ_8", "GPIOZ_9", 5768c2ecf20Sopenharmony_ci "GPIOZ_10", "GPIOZ_11", "GPIOZ_12", "GPIOZ_13", "GPIOZ_14", 5778c2ecf20Sopenharmony_ci "GPIOZ_15", 5788c2ecf20Sopenharmony_ci 5798c2ecf20Sopenharmony_ci "GPIOH_0", "GPIOH_1", "GPIOH_2", "GPIOH_3", "GPIOH_4", 5808c2ecf20Sopenharmony_ci "GPIOH_5", "GPIOH_6", "GPIOH_7", "GPIOH_8", "GPIOH_9", 5818c2ecf20Sopenharmony_ci 5828c2ecf20Sopenharmony_ci "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", 5838c2ecf20Sopenharmony_ci "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9", 5848c2ecf20Sopenharmony_ci "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14", 5858c2ecf20Sopenharmony_ci "BOOT_15", 5868c2ecf20Sopenharmony_ci 5878c2ecf20Sopenharmony_ci "CARD_0", "CARD_1", "CARD_2", "CARD_3", "CARD_4", 5888c2ecf20Sopenharmony_ci "CARD_5", "CARD_6", 5898c2ecf20Sopenharmony_ci 5908c2ecf20Sopenharmony_ci "GPIODV_0", "GPIODV_1", "GPIODV_2", "GPIODV_3", "GPIODV_4", 5918c2ecf20Sopenharmony_ci "GPIODV_5", "GPIODV_6", "GPIODV_7", "GPIODV_8", "GPIODV_9", 5928c2ecf20Sopenharmony_ci "GPIODV_10", "GPIODV_11", "GPIODV_12", "GPIODV_13", "GPIODV_14", 5938c2ecf20Sopenharmony_ci "GPIODV_15", "GPIODV_16", "GPIODV_17", "GPIODV_18", "GPIODV_19", 5948c2ecf20Sopenharmony_ci "GPIODV_20", "GPIODV_21", "GPIODV_22", "GPIODV_23", "GPIODV_24", 5958c2ecf20Sopenharmony_ci "GPIODV_25", "GPIODV_26", "GPIODV_27", "GPIODV_28", "GPIODV_29", 5968c2ecf20Sopenharmony_ci 5978c2ecf20Sopenharmony_ci "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", 5988c2ecf20Sopenharmony_ci "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9", 5998c2ecf20Sopenharmony_ci "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14", 6008c2ecf20Sopenharmony_ci "GPIOX_15", "GPIOX_16", "GPIOX_17", "GPIOX_18", 6018c2ecf20Sopenharmony_ci}; 6028c2ecf20Sopenharmony_ci 6038c2ecf20Sopenharmony_cistatic const char * const emmc_groups[] = { 6048c2ecf20Sopenharmony_ci "emmc_nand_d07", "emmc_clk", "emmc_cmd", "emmc_ds", 6058c2ecf20Sopenharmony_ci}; 6068c2ecf20Sopenharmony_ci 6078c2ecf20Sopenharmony_cistatic const char * const nor_groups[] = { 6088c2ecf20Sopenharmony_ci "nor_d", "nor_q", "nor_c", "nor_cs", 6098c2ecf20Sopenharmony_ci}; 6108c2ecf20Sopenharmony_ci 6118c2ecf20Sopenharmony_cistatic const char * const spi_groups[] = { 6128c2ecf20Sopenharmony_ci "spi_mosi", "spi_miso", "spi_ss0", "spi_sclk", 6138c2ecf20Sopenharmony_ci}; 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_cistatic const char * const sdcard_groups[] = { 6168c2ecf20Sopenharmony_ci "sdcard_d0", "sdcard_d1", "sdcard_d2", "sdcard_d3", 6178c2ecf20Sopenharmony_ci "sdcard_cmd", "sdcard_clk", 6188c2ecf20Sopenharmony_ci}; 6198c2ecf20Sopenharmony_ci 6208c2ecf20Sopenharmony_cistatic const char * const sdio_groups[] = { 6218c2ecf20Sopenharmony_ci "sdio_d0", "sdio_d1", "sdio_d2", "sdio_d3", 6228c2ecf20Sopenharmony_ci "sdio_cmd", "sdio_clk", "sdio_irq", 6238c2ecf20Sopenharmony_ci}; 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_cistatic const char * const nand_groups[] = { 6268c2ecf20Sopenharmony_ci "emmc_nand_d07", "nand_ce0", "nand_ce1", "nand_rb0", "nand_ale", 6278c2ecf20Sopenharmony_ci "nand_cle", "nand_wen_clk", "nand_ren_wr", "nand_dqs", 6288c2ecf20Sopenharmony_ci}; 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_cistatic const char * const uart_a_groups[] = { 6318c2ecf20Sopenharmony_ci "uart_tx_a", "uart_rx_a", "uart_cts_a", "uart_rts_a", 6328c2ecf20Sopenharmony_ci}; 6338c2ecf20Sopenharmony_ci 6348c2ecf20Sopenharmony_cistatic const char * const uart_b_groups[] = { 6358c2ecf20Sopenharmony_ci "uart_tx_b", "uart_rx_b", "uart_cts_b", "uart_rts_b", 6368c2ecf20Sopenharmony_ci}; 6378c2ecf20Sopenharmony_ci 6388c2ecf20Sopenharmony_cistatic const char * const uart_c_groups[] = { 6398c2ecf20Sopenharmony_ci "uart_tx_c", "uart_rx_c", "uart_cts_c", "uart_rts_c", 6408c2ecf20Sopenharmony_ci}; 6418c2ecf20Sopenharmony_ci 6428c2ecf20Sopenharmony_cistatic const char * const i2c_a_groups[] = { 6438c2ecf20Sopenharmony_ci "i2c_sck_a", "i2c_sda_a", 6448c2ecf20Sopenharmony_ci}; 6458c2ecf20Sopenharmony_ci 6468c2ecf20Sopenharmony_cistatic const char * const i2c_b_groups[] = { 6478c2ecf20Sopenharmony_ci "i2c_sck_b", "i2c_sda_b", 6488c2ecf20Sopenharmony_ci}; 6498c2ecf20Sopenharmony_ci 6508c2ecf20Sopenharmony_cistatic const char * const i2c_c_groups[] = { 6518c2ecf20Sopenharmony_ci "i2c_sck_c", "i2c_sda_c", "i2c_sda_c_dv18", "i2c_sck_c_dv19", 6528c2ecf20Sopenharmony_ci}; 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_cistatic const char * const eth_groups[] = { 6558c2ecf20Sopenharmony_ci "eth_mdio", "eth_mdc", "eth_clk_rx_clk", "eth_rx_dv", 6568c2ecf20Sopenharmony_ci "eth_rxd0", "eth_rxd1", "eth_rxd2", "eth_rxd3", 6578c2ecf20Sopenharmony_ci "eth_rgmii_tx_clk", "eth_tx_en", 6588c2ecf20Sopenharmony_ci "eth_txd0", "eth_txd1", "eth_txd2", "eth_txd3", 6598c2ecf20Sopenharmony_ci}; 6608c2ecf20Sopenharmony_ci 6618c2ecf20Sopenharmony_cistatic const char * const pwm_a_groups[] = { 6628c2ecf20Sopenharmony_ci "pwm_a", 6638c2ecf20Sopenharmony_ci}; 6648c2ecf20Sopenharmony_ci 6658c2ecf20Sopenharmony_cistatic const char * const pwm_b_groups[] = { 6668c2ecf20Sopenharmony_ci "pwm_b", 6678c2ecf20Sopenharmony_ci}; 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_cistatic const char * const pwm_c_groups[] = { 6708c2ecf20Sopenharmony_ci "pwm_c", 6718c2ecf20Sopenharmony_ci}; 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_cistatic const char * const pwm_d_groups[] = { 6748c2ecf20Sopenharmony_ci "pwm_d", 6758c2ecf20Sopenharmony_ci}; 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_cistatic const char * const pwm_e_groups[] = { 6788c2ecf20Sopenharmony_ci "pwm_e", 6798c2ecf20Sopenharmony_ci}; 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_cistatic const char * const pwm_f_groups[] = { 6828c2ecf20Sopenharmony_ci "pwm_f_clk", "pwm_f_x", 6838c2ecf20Sopenharmony_ci}; 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_cistatic const char * const hdmi_hpd_groups[] = { 6868c2ecf20Sopenharmony_ci "hdmi_hpd", 6878c2ecf20Sopenharmony_ci}; 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_cistatic const char * const hdmi_i2c_groups[] = { 6908c2ecf20Sopenharmony_ci "hdmi_sda", "hdmi_scl", 6918c2ecf20Sopenharmony_ci}; 6928c2ecf20Sopenharmony_ci 6938c2ecf20Sopenharmony_cistatic const char * const i2s_out_groups[] = { 6948c2ecf20Sopenharmony_ci "i2s_am_clk", "i2s_out_ao_clk", "i2s_out_lr_clk", 6958c2ecf20Sopenharmony_ci "i2s_out_ch01", "i2s_out_ch23_z", "i2s_out_ch45_z", "i2s_out_ch67_z", 6968c2ecf20Sopenharmony_ci}; 6978c2ecf20Sopenharmony_ci 6988c2ecf20Sopenharmony_cistatic const char * const spdif_out_groups[] = { 6998c2ecf20Sopenharmony_ci "spdif_out_h", 7008c2ecf20Sopenharmony_ci}; 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_cistatic const char * const eth_led_groups[] = { 7038c2ecf20Sopenharmony_ci "eth_link_led", "eth_act_led", 7048c2ecf20Sopenharmony_ci}; 7058c2ecf20Sopenharmony_ci 7068c2ecf20Sopenharmony_cistatic const char * const tsin_a_groups[] = { 7078c2ecf20Sopenharmony_ci "tsin_a_clk", "tsin_a_sop", 7088c2ecf20Sopenharmony_ci "tsin_a_d_valid", "tsin_a_d0", 7098c2ecf20Sopenharmony_ci "tsin_a_dp", "tsin_a_fail", 7108c2ecf20Sopenharmony_ci}; 7118c2ecf20Sopenharmony_ci 7128c2ecf20Sopenharmony_cistatic const char * const tsin_b_groups[] = { 7138c2ecf20Sopenharmony_ci "tsin_b_clk", "tsin_b_sop", "tsin_b_d_valid", "tsin_b_d0", 7148c2ecf20Sopenharmony_ci "tsin_b_clk_z3", "tsin_b_sop_z1", "tsin_b_d_valid_z0", "tsin_b_d0_z2", 7158c2ecf20Sopenharmony_ci "tsin_b_fail_z4", 7168c2ecf20Sopenharmony_ci}; 7178c2ecf20Sopenharmony_ci 7188c2ecf20Sopenharmony_cistatic const char * const gpio_aobus_groups[] = { 7198c2ecf20Sopenharmony_ci "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4", 7208c2ecf20Sopenharmony_ci "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9", 7218c2ecf20Sopenharmony_ci 7228c2ecf20Sopenharmony_ci "GPIO_TEST_N", 7238c2ecf20Sopenharmony_ci}; 7248c2ecf20Sopenharmony_ci 7258c2ecf20Sopenharmony_cistatic const char * const uart_ao_groups[] = { 7268c2ecf20Sopenharmony_ci "uart_tx_ao_a", "uart_rx_ao_a", "uart_cts_ao_a", "uart_rts_ao_a", 7278c2ecf20Sopenharmony_ci}; 7288c2ecf20Sopenharmony_ci 7298c2ecf20Sopenharmony_cistatic const char * const uart_ao_b_groups[] = { 7308c2ecf20Sopenharmony_ci "uart_tx_ao_b", "uart_rx_ao_b", "uart_cts_ao_b", "uart_rts_ao_b", 7318c2ecf20Sopenharmony_ci "uart_tx_ao_b_0", "uart_rx_ao_b_1", 7328c2ecf20Sopenharmony_ci}; 7338c2ecf20Sopenharmony_ci 7348c2ecf20Sopenharmony_cistatic const char * const i2c_ao_groups[] = { 7358c2ecf20Sopenharmony_ci "i2c_sck_ao", "i2c_sda_ao", 7368c2ecf20Sopenharmony_ci}; 7378c2ecf20Sopenharmony_ci 7388c2ecf20Sopenharmony_cistatic const char * const i2c_slave_ao_groups[] = { 7398c2ecf20Sopenharmony_ci "i2c_slave_sck_ao", "i2c_slave_sda_ao", 7408c2ecf20Sopenharmony_ci}; 7418c2ecf20Sopenharmony_ci 7428c2ecf20Sopenharmony_cistatic const char * const remote_input_ao_groups[] = { 7438c2ecf20Sopenharmony_ci "remote_input_ao", 7448c2ecf20Sopenharmony_ci}; 7458c2ecf20Sopenharmony_ci 7468c2ecf20Sopenharmony_cistatic const char * const pwm_ao_a_groups[] = { 7478c2ecf20Sopenharmony_ci "pwm_ao_a_3", "pwm_ao_a_8", 7488c2ecf20Sopenharmony_ci}; 7498c2ecf20Sopenharmony_ci 7508c2ecf20Sopenharmony_cistatic const char * const pwm_ao_b_groups[] = { 7518c2ecf20Sopenharmony_ci "pwm_ao_b", "pwm_ao_b_6", 7528c2ecf20Sopenharmony_ci}; 7538c2ecf20Sopenharmony_ci 7548c2ecf20Sopenharmony_cistatic const char * const i2s_out_ao_groups[] = { 7558c2ecf20Sopenharmony_ci "i2s_out_ch23_ao", "i2s_out_ch45_ao", "i2s_out_ch67_ao", 7568c2ecf20Sopenharmony_ci}; 7578c2ecf20Sopenharmony_ci 7588c2ecf20Sopenharmony_cistatic const char * const spdif_out_ao_groups[] = { 7598c2ecf20Sopenharmony_ci "spdif_out_ao_6", "spdif_out_ao_9", 7608c2ecf20Sopenharmony_ci}; 7618c2ecf20Sopenharmony_ci 7628c2ecf20Sopenharmony_cistatic const char * const cec_ao_groups[] = { 7638c2ecf20Sopenharmony_ci "ao_cec", "ee_cec", 7648c2ecf20Sopenharmony_ci}; 7658c2ecf20Sopenharmony_ci 7668c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_gxl_periphs_functions[] = { 7678c2ecf20Sopenharmony_ci FUNCTION(gpio_periphs), 7688c2ecf20Sopenharmony_ci FUNCTION(emmc), 7698c2ecf20Sopenharmony_ci FUNCTION(nor), 7708c2ecf20Sopenharmony_ci FUNCTION(spi), 7718c2ecf20Sopenharmony_ci FUNCTION(sdcard), 7728c2ecf20Sopenharmony_ci FUNCTION(sdio), 7738c2ecf20Sopenharmony_ci FUNCTION(nand), 7748c2ecf20Sopenharmony_ci FUNCTION(uart_a), 7758c2ecf20Sopenharmony_ci FUNCTION(uart_b), 7768c2ecf20Sopenharmony_ci FUNCTION(uart_c), 7778c2ecf20Sopenharmony_ci FUNCTION(i2c_a), 7788c2ecf20Sopenharmony_ci FUNCTION(i2c_b), 7798c2ecf20Sopenharmony_ci FUNCTION(i2c_c), 7808c2ecf20Sopenharmony_ci FUNCTION(eth), 7818c2ecf20Sopenharmony_ci FUNCTION(pwm_a), 7828c2ecf20Sopenharmony_ci FUNCTION(pwm_b), 7838c2ecf20Sopenharmony_ci FUNCTION(pwm_c), 7848c2ecf20Sopenharmony_ci FUNCTION(pwm_d), 7858c2ecf20Sopenharmony_ci FUNCTION(pwm_e), 7868c2ecf20Sopenharmony_ci FUNCTION(pwm_f), 7878c2ecf20Sopenharmony_ci FUNCTION(hdmi_hpd), 7888c2ecf20Sopenharmony_ci FUNCTION(hdmi_i2c), 7898c2ecf20Sopenharmony_ci FUNCTION(i2s_out), 7908c2ecf20Sopenharmony_ci FUNCTION(spdif_out), 7918c2ecf20Sopenharmony_ci FUNCTION(eth_led), 7928c2ecf20Sopenharmony_ci FUNCTION(tsin_a), 7938c2ecf20Sopenharmony_ci FUNCTION(tsin_b), 7948c2ecf20Sopenharmony_ci}; 7958c2ecf20Sopenharmony_ci 7968c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_gxl_aobus_functions[] = { 7978c2ecf20Sopenharmony_ci FUNCTION(gpio_aobus), 7988c2ecf20Sopenharmony_ci FUNCTION(uart_ao), 7998c2ecf20Sopenharmony_ci FUNCTION(uart_ao_b), 8008c2ecf20Sopenharmony_ci FUNCTION(i2c_ao), 8018c2ecf20Sopenharmony_ci FUNCTION(i2c_slave_ao), 8028c2ecf20Sopenharmony_ci FUNCTION(remote_input_ao), 8038c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_a), 8048c2ecf20Sopenharmony_ci FUNCTION(pwm_ao_b), 8058c2ecf20Sopenharmony_ci FUNCTION(i2s_out_ao), 8068c2ecf20Sopenharmony_ci FUNCTION(spdif_out_ao), 8078c2ecf20Sopenharmony_ci FUNCTION(cec_ao), 8088c2ecf20Sopenharmony_ci}; 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_cistatic struct meson_bank meson_gxl_periphs_banks[] = { 8118c2ecf20Sopenharmony_ci /* name first last irq pullen pull dir out in */ 8128c2ecf20Sopenharmony_ci BANK("X", GPIOX_0, GPIOX_18, 89, 107, 4, 0, 4, 0, 12, 0, 13, 0, 14, 0), 8138c2ecf20Sopenharmony_ci BANK("DV", GPIODV_0, GPIODV_29, 83, 88, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0), 8148c2ecf20Sopenharmony_ci BANK("H", GPIOH_0, GPIOH_9, 26, 35, 1, 20, 1, 20, 3, 20, 4, 20, 5, 20), 8158c2ecf20Sopenharmony_ci BANK("Z", GPIOZ_0, GPIOZ_15, 10, 25, 3, 0, 3, 0, 9, 0, 10, 0, 11, 0), 8168c2ecf20Sopenharmony_ci BANK("CARD", CARD_0, CARD_6, 52, 58, 2, 20, 2, 20, 6, 20, 7, 20, 8, 20), 8178c2ecf20Sopenharmony_ci BANK("BOOT", BOOT_0, BOOT_15, 36, 51, 2, 0, 2, 0, 6, 0, 7, 0, 8, 0), 8188c2ecf20Sopenharmony_ci BANK("CLK", GPIOCLK_0, GPIOCLK_1, 108, 109, 3, 28, 3, 28, 9, 28, 10, 28, 11, 28), 8198c2ecf20Sopenharmony_ci}; 8208c2ecf20Sopenharmony_ci 8218c2ecf20Sopenharmony_cistatic struct meson_bank meson_gxl_aobus_banks[] = { 8228c2ecf20Sopenharmony_ci /* name first last irq pullen pull dir out in */ 8238c2ecf20Sopenharmony_ci BANK("AO", GPIOAO_0, GPIOAO_9, 0, 9, 0, 16, 0, 0, 0, 0, 0, 16, 1, 0), 8248c2ecf20Sopenharmony_ci}; 8258c2ecf20Sopenharmony_ci 8268c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data = { 8278c2ecf20Sopenharmony_ci .name = "periphs-banks", 8288c2ecf20Sopenharmony_ci .pins = meson_gxl_periphs_pins, 8298c2ecf20Sopenharmony_ci .groups = meson_gxl_periphs_groups, 8308c2ecf20Sopenharmony_ci .funcs = meson_gxl_periphs_functions, 8318c2ecf20Sopenharmony_ci .banks = meson_gxl_periphs_banks, 8328c2ecf20Sopenharmony_ci .num_pins = ARRAY_SIZE(meson_gxl_periphs_pins), 8338c2ecf20Sopenharmony_ci .num_groups = ARRAY_SIZE(meson_gxl_periphs_groups), 8348c2ecf20Sopenharmony_ci .num_funcs = ARRAY_SIZE(meson_gxl_periphs_functions), 8358c2ecf20Sopenharmony_ci .num_banks = ARRAY_SIZE(meson_gxl_periphs_banks), 8368c2ecf20Sopenharmony_ci .pmx_ops = &meson8_pmx_ops, 8378c2ecf20Sopenharmony_ci}; 8388c2ecf20Sopenharmony_ci 8398c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data = { 8408c2ecf20Sopenharmony_ci .name = "aobus-banks", 8418c2ecf20Sopenharmony_ci .pins = meson_gxl_aobus_pins, 8428c2ecf20Sopenharmony_ci .groups = meson_gxl_aobus_groups, 8438c2ecf20Sopenharmony_ci .funcs = meson_gxl_aobus_functions, 8448c2ecf20Sopenharmony_ci .banks = meson_gxl_aobus_banks, 8458c2ecf20Sopenharmony_ci .num_pins = ARRAY_SIZE(meson_gxl_aobus_pins), 8468c2ecf20Sopenharmony_ci .num_groups = ARRAY_SIZE(meson_gxl_aobus_groups), 8478c2ecf20Sopenharmony_ci .num_funcs = ARRAY_SIZE(meson_gxl_aobus_functions), 8488c2ecf20Sopenharmony_ci .num_banks = ARRAY_SIZE(meson_gxl_aobus_banks), 8498c2ecf20Sopenharmony_ci .pmx_ops = &meson8_pmx_ops, 8508c2ecf20Sopenharmony_ci .parse_dt = meson8_aobus_parse_dt_extra, 8518c2ecf20Sopenharmony_ci}; 8528c2ecf20Sopenharmony_ci 8538c2ecf20Sopenharmony_cistatic const struct of_device_id meson_gxl_pinctrl_dt_match[] = { 8548c2ecf20Sopenharmony_ci { 8558c2ecf20Sopenharmony_ci .compatible = "amlogic,meson-gxl-periphs-pinctrl", 8568c2ecf20Sopenharmony_ci .data = &meson_gxl_periphs_pinctrl_data, 8578c2ecf20Sopenharmony_ci }, 8588c2ecf20Sopenharmony_ci { 8598c2ecf20Sopenharmony_ci .compatible = "amlogic,meson-gxl-aobus-pinctrl", 8608c2ecf20Sopenharmony_ci .data = &meson_gxl_aobus_pinctrl_data, 8618c2ecf20Sopenharmony_ci }, 8628c2ecf20Sopenharmony_ci { }, 8638c2ecf20Sopenharmony_ci}; 8648c2ecf20Sopenharmony_ci 8658c2ecf20Sopenharmony_cistatic struct platform_driver meson_gxl_pinctrl_driver = { 8668c2ecf20Sopenharmony_ci .probe = meson_pinctrl_probe, 8678c2ecf20Sopenharmony_ci .driver = { 8688c2ecf20Sopenharmony_ci .name = "meson-gxl-pinctrl", 8698c2ecf20Sopenharmony_ci .of_match_table = meson_gxl_pinctrl_dt_match, 8708c2ecf20Sopenharmony_ci }, 8718c2ecf20Sopenharmony_ci}; 8728c2ecf20Sopenharmony_cibuiltin_platform_driver(meson_gxl_pinctrl_driver); 873