18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Pin controller and GPIO driver for Amlogic Meson AXG SoC.
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
58c2ecf20Sopenharmony_ci * Author: Xingyu Chen <xingyu.chen@amlogic.com>
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * SPDX-License-Identifier: (GPL-2.0+ or MIT)
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-axg-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_axg_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(BOOT_0),
278c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_1),
288c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_2),
298c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_3),
308c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_4),
318c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_5),
328c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_6),
338c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_7),
348c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_8),
358c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_9),
368c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_10),
378c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_11),
388c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_12),
398c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_13),
408c2ecf20Sopenharmony_ci	MESON_PIN(BOOT_14),
418c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_0),
428c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_1),
438c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_2),
448c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_3),
458c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_4),
468c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_5),
478c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_6),
488c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_7),
498c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_8),
508c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_9),
518c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_10),
528c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_11),
538c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_12),
548c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_13),
558c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_14),
568c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_15),
578c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_16),
588c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_17),
598c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_18),
608c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_19),
618c2ecf20Sopenharmony_ci	MESON_PIN(GPIOA_20),
628c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_0),
638c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_1),
648c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_2),
658c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_3),
668c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_4),
678c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_5),
688c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_6),
698c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_7),
708c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_8),
718c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_9),
728c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_10),
738c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_11),
748c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_12),
758c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_13),
768c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_14),
778c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_15),
788c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_16),
798c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_17),
808c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_18),
818c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_19),
828c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_20),
838c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_21),
848c2ecf20Sopenharmony_ci	MESON_PIN(GPIOX_22),
858c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_0),
868c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_1),
878c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_2),
888c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_3),
898c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_4),
908c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_5),
918c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_6),
928c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_7),
938c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_8),
948c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_9),
958c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_10),
968c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_11),
978c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_12),
988c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_13),
998c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_14),
1008c2ecf20Sopenharmony_ci	MESON_PIN(GPIOY_15),
1018c2ecf20Sopenharmony_ci};
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_axg_aobus_pins[] = {
1048c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_0),
1058c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_1),
1068c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_2),
1078c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_3),
1088c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_4),
1098c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_5),
1108c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_6),
1118c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_7),
1128c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_8),
1138c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_9),
1148c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_10),
1158c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_11),
1168c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_12),
1178c2ecf20Sopenharmony_ci	MESON_PIN(GPIOAO_13),
1188c2ecf20Sopenharmony_ci	MESON_PIN(GPIO_TEST_N),
1198c2ecf20Sopenharmony_ci};
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci/* emmc */
1228c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d0_pins[] = {BOOT_0};
1238c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d1_pins[] = {BOOT_1};
1248c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d2_pins[] = {BOOT_2};
1258c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d3_pins[] = {BOOT_3};
1268c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d4_pins[] = {BOOT_4};
1278c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d5_pins[] = {BOOT_5};
1288c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d6_pins[] = {BOOT_6};
1298c2ecf20Sopenharmony_cistatic const unsigned int emmc_nand_d7_pins[] = {BOOT_7};
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_cistatic const unsigned int emmc_clk_pins[] = {BOOT_8};
1328c2ecf20Sopenharmony_cistatic const unsigned int emmc_cmd_pins[] = {BOOT_10};
1338c2ecf20Sopenharmony_cistatic const unsigned int emmc_ds_pins[]  = {BOOT_13};
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci/* nand */
1368c2ecf20Sopenharmony_cistatic const unsigned int nand_ce0_pins[] = {BOOT_8};
1378c2ecf20Sopenharmony_cistatic const unsigned int nand_ale_pins[] = {BOOT_9};
1388c2ecf20Sopenharmony_cistatic const unsigned int nand_cle_pins[] = {BOOT_10};
1398c2ecf20Sopenharmony_cistatic const unsigned int nand_wen_clk_pins[] = {BOOT_11};
1408c2ecf20Sopenharmony_cistatic const unsigned int nand_ren_wr_pins[] = {BOOT_12};
1418c2ecf20Sopenharmony_cistatic const unsigned int nand_rb0_pins[] = {BOOT_13};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci/* nor */
1448c2ecf20Sopenharmony_cistatic const unsigned int nor_hold_pins[] = {BOOT_3};
1458c2ecf20Sopenharmony_cistatic const unsigned int nor_d_pins[] = {BOOT_4};
1468c2ecf20Sopenharmony_cistatic const unsigned int nor_q_pins[] = {BOOT_5};
1478c2ecf20Sopenharmony_cistatic const unsigned int nor_c_pins[] = {BOOT_6};
1488c2ecf20Sopenharmony_cistatic const unsigned int nor_wp_pins[] = {BOOT_9};
1498c2ecf20Sopenharmony_cistatic const unsigned int nor_cs_pins[] = {BOOT_14};
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci/* sdio */
1528c2ecf20Sopenharmony_cistatic const unsigned int sdio_d0_pins[] = {GPIOX_0};
1538c2ecf20Sopenharmony_cistatic const unsigned int sdio_d1_pins[] = {GPIOX_1};
1548c2ecf20Sopenharmony_cistatic const unsigned int sdio_d2_pins[] = {GPIOX_2};
1558c2ecf20Sopenharmony_cistatic const unsigned int sdio_d3_pins[] = {GPIOX_3};
1568c2ecf20Sopenharmony_cistatic const unsigned int sdio_clk_pins[] = {GPIOX_4};
1578c2ecf20Sopenharmony_cistatic const unsigned int sdio_cmd_pins[] = {GPIOX_5};
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci/* spi0 */
1608c2ecf20Sopenharmony_cistatic const unsigned int spi0_clk_pins[] = {GPIOZ_0};
1618c2ecf20Sopenharmony_cistatic const unsigned int spi0_mosi_pins[] = {GPIOZ_1};
1628c2ecf20Sopenharmony_cistatic const unsigned int spi0_miso_pins[] = {GPIOZ_2};
1638c2ecf20Sopenharmony_cistatic const unsigned int spi0_ss0_pins[] = {GPIOZ_3};
1648c2ecf20Sopenharmony_cistatic const unsigned int spi0_ss1_pins[] = {GPIOZ_4};
1658c2ecf20Sopenharmony_cistatic const unsigned int spi0_ss2_pins[] = {GPIOZ_5};
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci/* spi1 */
1688c2ecf20Sopenharmony_cistatic const unsigned int spi1_clk_x_pins[] = {GPIOX_19};
1698c2ecf20Sopenharmony_cistatic const unsigned int spi1_mosi_x_pins[] = {GPIOX_17};
1708c2ecf20Sopenharmony_cistatic const unsigned int spi1_miso_x_pins[] = {GPIOX_18};
1718c2ecf20Sopenharmony_cistatic const unsigned int spi1_ss0_x_pins[] = {GPIOX_16};
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_cistatic const unsigned int spi1_clk_a_pins[] = {GPIOA_4};
1748c2ecf20Sopenharmony_cistatic const unsigned int spi1_mosi_a_pins[] = {GPIOA_2};
1758c2ecf20Sopenharmony_cistatic const unsigned int spi1_miso_a_pins[] = {GPIOA_3};
1768c2ecf20Sopenharmony_cistatic const unsigned int spi1_ss0_a_pins[] = {GPIOA_5};
1778c2ecf20Sopenharmony_cistatic const unsigned int spi1_ss1_pins[] = {GPIOA_6};
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci/* i2c0 */
1808c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_pins[] = {GPIOZ_6};
1818c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_pins[] = {GPIOZ_7};
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci/* i2c1 */
1848c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_z_pins[] = {GPIOZ_8};
1858c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_z_pins[] = {GPIOZ_9};
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_x_pins[] = {GPIOX_16};
1888c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_x_pins[] = {GPIOX_17};
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci/* i2c2 */
1918c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_x_pins[] = {GPIOX_18};
1928c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_x_pins[] = {GPIOX_19};
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_a_pins[] = {GPIOA_17};
1958c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_a_pins[] = {GPIOA_18};
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ci/* i2c3 */
1988c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_a6_pins[] = {GPIOA_6};
1998c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_a7_pins[] = {GPIOA_7};
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_a12_pins[] = {GPIOA_12};
2028c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_a13_pins[] = {GPIOA_13};
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_a19_pins[] = {GPIOA_19};
2058c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_a20_pins[] = {GPIOA_20};
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ci/* uart_a */
2088c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_a_pins[] = {GPIOX_11};
2098c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_a_pins[] = {GPIOX_10};
2108c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_a_pins[] = {GPIOX_8};
2118c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_a_pins[] = {GPIOX_9};
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci/* uart_b */
2148c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_b_z_pins[] = {GPIOZ_0};
2158c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_b_z_pins[] = {GPIOZ_1};
2168c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_b_z_pins[] = {GPIOZ_2};
2178c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_b_z_pins[] = {GPIOZ_3};
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_cistatic const unsigned int uart_rts_b_x_pins[] = {GPIOX_18};
2208c2ecf20Sopenharmony_cistatic const unsigned int uart_cts_b_x_pins[] = {GPIOX_19};
2218c2ecf20Sopenharmony_cistatic const unsigned int uart_tx_b_x_pins[] = {GPIOX_16};
2228c2ecf20Sopenharmony_cistatic const unsigned int uart_rx_b_x_pins[] = {GPIOX_17};
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci/* uart_ao_b */
2258c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_tx_b_z_pins[] = {GPIOZ_8};
2268c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rx_b_z_pins[] = {GPIOZ_9};
2278c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_cts_b_z_pins[] = {GPIOZ_6};
2288c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rts_b_z_pins[] = {GPIOZ_7};
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci/* pwm_a */
2318c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_z_pins[] = {GPIOZ_5};
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_x18_pins[] = {GPIOX_18};
2348c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_x20_pins[] = {GPIOX_20};
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_a_pins[] = {GPIOA_14};
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci/* pwm_b */
2398c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_z_pins[] = {GPIOZ_4};
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_x_pins[] = {GPIOX_19};
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_a_pins[] = {GPIOA_15};
2448c2ecf20Sopenharmony_ci
2458c2ecf20Sopenharmony_ci/* pwm_c */
2468c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_x10_pins[] = {GPIOX_10};
2478c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_x17_pins[] = {GPIOX_17};
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_a_pins[] = {GPIOA_16};
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ci/* pwm_d */
2528c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x11_pins[] = {GPIOX_11};
2538c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x16_pins[] = {GPIOX_16};
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci/* pwm_vs */
2568c2ecf20Sopenharmony_cistatic const unsigned int pwm_vs_pins[] = {GPIOA_0};
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci/* spdif_in */
2598c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_z_pins[] = {GPIOZ_4};
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a1_pins[] = {GPIOA_1};
2628c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a7_pins[] = {GPIOA_7};
2638c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a19_pins[] = {GPIOA_19};
2648c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_a20_pins[] = {GPIOA_20};
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ci/* spdif_out */
2678c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_z_pins[] = {GPIOZ_5};
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a1_pins[] = {GPIOA_1};
2708c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a11_pins[] = {GPIOA_11};
2718c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a19_pins[] = {GPIOA_19};
2728c2ecf20Sopenharmony_cistatic const unsigned int spdif_out_a20_pins[] = {GPIOA_20};
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci/* jtag_ee */
2758c2ecf20Sopenharmony_cistatic const unsigned int jtag_tdo_x_pins[] = {GPIOX_0};
2768c2ecf20Sopenharmony_cistatic const unsigned int jtag_tdi_x_pins[] = {GPIOX_1};
2778c2ecf20Sopenharmony_cistatic const unsigned int jtag_clk_x_pins[] = {GPIOX_4};
2788c2ecf20Sopenharmony_cistatic const unsigned int jtag_tms_x_pins[] = {GPIOX_5};
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci/* eth */
2818c2ecf20Sopenharmony_cistatic const unsigned int eth_txd0_x_pins[] = {GPIOX_8};
2828c2ecf20Sopenharmony_cistatic const unsigned int eth_txd1_x_pins[] = {GPIOX_9};
2838c2ecf20Sopenharmony_cistatic const unsigned int eth_txen_x_pins[] = {GPIOX_10};
2848c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_rx_clk_x_pins[] = {GPIOX_12};
2858c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd0_x_pins[] = {GPIOX_13};
2868c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd1_x_pins[] = {GPIOX_14};
2878c2ecf20Sopenharmony_cistatic const unsigned int eth_rx_dv_x_pins[] = {GPIOX_15};
2888c2ecf20Sopenharmony_cistatic const unsigned int eth_mdio_x_pins[] = {GPIOX_21};
2898c2ecf20Sopenharmony_cistatic const unsigned int eth_mdc_x_pins[] = {GPIOX_22};
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_cistatic const unsigned int eth_txd0_y_pins[] = {GPIOY_10};
2928c2ecf20Sopenharmony_cistatic const unsigned int eth_txd1_y_pins[] = {GPIOY_11};
2938c2ecf20Sopenharmony_cistatic const unsigned int eth_txen_y_pins[] = {GPIOY_9};
2948c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_rx_clk_y_pins[] = {GPIOY_2};
2958c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd0_y_pins[] = {GPIOY_4};
2968c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd1_y_pins[] = {GPIOY_5};
2978c2ecf20Sopenharmony_cistatic const unsigned int eth_rx_dv_y_pins[] = {GPIOY_3};
2988c2ecf20Sopenharmony_cistatic const unsigned int eth_mdio_y_pins[] = {GPIOY_0};
2998c2ecf20Sopenharmony_cistatic const unsigned int eth_mdc_y_pins[] = {GPIOY_1};
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd2_rgmii_pins[] = {GPIOY_6};
3028c2ecf20Sopenharmony_cistatic const unsigned int eth_rxd3_rgmii_pins[] = {GPIOY_7};
3038c2ecf20Sopenharmony_cistatic const unsigned int eth_rgmii_tx_clk_pins[] = {GPIOY_8};
3048c2ecf20Sopenharmony_cistatic const unsigned int eth_txd2_rgmii_pins[] = {GPIOY_12};
3058c2ecf20Sopenharmony_cistatic const unsigned int eth_txd3_rgmii_pins[] = {GPIOY_13};
3068c2ecf20Sopenharmony_ci
3078c2ecf20Sopenharmony_ci/* pdm */
3088c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_a14_pins[] = {GPIOA_14};
3098c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_a19_pins[] = {GPIOA_19};
3108c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_pins[] = {GPIOA_15};
3118c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_pins[] = {GPIOA_16};
3128c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_pins[] = {GPIOA_17};
3138c2ecf20Sopenharmony_cistatic const unsigned int pdm_din3_pins[] = {GPIOA_18};
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci/* mclk */
3168c2ecf20Sopenharmony_cistatic const unsigned int mclk_c_pins[] = {GPIOA_0};
3178c2ecf20Sopenharmony_cistatic const unsigned int mclk_b_pins[] = {GPIOA_1};
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci/* tdm */
3208c2ecf20Sopenharmony_cistatic const unsigned int tdma_sclk_pins[] = {GPIOX_12};
3218c2ecf20Sopenharmony_cistatic const unsigned int tdma_sclk_slv_pins[] = {GPIOX_12};
3228c2ecf20Sopenharmony_cistatic const unsigned int tdma_fs_pins[] = {GPIOX_13};
3238c2ecf20Sopenharmony_cistatic const unsigned int tdma_fs_slv_pins[] = {GPIOX_13};
3248c2ecf20Sopenharmony_cistatic const unsigned int tdma_din0_pins[] = {GPIOX_14};
3258c2ecf20Sopenharmony_cistatic const unsigned int tdma_dout0_x14_pins[] = {GPIOX_14};
3268c2ecf20Sopenharmony_cistatic const unsigned int tdma_dout0_x15_pins[] = {GPIOX_15};
3278c2ecf20Sopenharmony_cistatic const unsigned int tdma_dout1_pins[] = {GPIOX_15};
3288c2ecf20Sopenharmony_cistatic const unsigned int tdma_din1_pins[] = {GPIOX_15};
3298c2ecf20Sopenharmony_ci
3308c2ecf20Sopenharmony_cistatic const unsigned int tdmc_sclk_pins[] = {GPIOA_2};
3318c2ecf20Sopenharmony_cistatic const unsigned int tdmc_sclk_slv_pins[] = {GPIOA_2};
3328c2ecf20Sopenharmony_cistatic const unsigned int tdmc_fs_pins[] = {GPIOA_3};
3338c2ecf20Sopenharmony_cistatic const unsigned int tdmc_fs_slv_pins[] = {GPIOA_3};
3348c2ecf20Sopenharmony_cistatic const unsigned int tdmc_din0_pins[] = {GPIOA_4};
3358c2ecf20Sopenharmony_cistatic const unsigned int tdmc_dout0_pins[] = {GPIOA_4};
3368c2ecf20Sopenharmony_cistatic const unsigned int tdmc_din1_pins[] = {GPIOA_5};
3378c2ecf20Sopenharmony_cistatic const unsigned int tdmc_dout1_pins[] = {GPIOA_5};
3388c2ecf20Sopenharmony_cistatic const unsigned int tdmc_din2_pins[] = {GPIOA_6};
3398c2ecf20Sopenharmony_cistatic const unsigned int tdmc_dout2_pins[] = {GPIOA_6};
3408c2ecf20Sopenharmony_cistatic const unsigned int tdmc_din3_pins[] = {GPIOA_7};
3418c2ecf20Sopenharmony_cistatic const unsigned int tdmc_dout3_pins[] = {GPIOA_7};
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_cistatic const unsigned int tdmb_sclk_pins[] = {GPIOA_8};
3448c2ecf20Sopenharmony_cistatic const unsigned int tdmb_sclk_slv_pins[] = {GPIOA_8};
3458c2ecf20Sopenharmony_cistatic const unsigned int tdmb_fs_pins[] = {GPIOA_9};
3468c2ecf20Sopenharmony_cistatic const unsigned int tdmb_fs_slv_pins[] = {GPIOA_9};
3478c2ecf20Sopenharmony_cistatic const unsigned int tdmb_din0_pins[] = {GPIOA_10};
3488c2ecf20Sopenharmony_cistatic const unsigned int tdmb_dout0_pins[] = {GPIOA_10};
3498c2ecf20Sopenharmony_cistatic const unsigned int tdmb_din1_pins[] = {GPIOA_11};
3508c2ecf20Sopenharmony_cistatic const unsigned int tdmb_dout1_pins[] = {GPIOA_11};
3518c2ecf20Sopenharmony_cistatic const unsigned int tdmb_din2_pins[] = {GPIOA_12};
3528c2ecf20Sopenharmony_cistatic const unsigned int tdmb_dout2_pins[] = {GPIOA_12};
3538c2ecf20Sopenharmony_cistatic const unsigned int tdmb_din3_pins[] = {GPIOA_13};
3548c2ecf20Sopenharmony_cistatic const unsigned int tdmb_dout3_pins[] = {GPIOA_13};
3558c2ecf20Sopenharmony_ci
3568c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_axg_periphs_groups[] = {
3578c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_0),
3588c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_1),
3598c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_2),
3608c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_3),
3618c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_4),
3628c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_5),
3638c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_6),
3648c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_7),
3658c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_8),
3668c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_9),
3678c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOZ_10),
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_0),
3708c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_1),
3718c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_2),
3728c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_3),
3738c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_4),
3748c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_5),
3758c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_6),
3768c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_7),
3778c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_8),
3788c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_9),
3798c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_10),
3808c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_11),
3818c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_12),
3828c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_13),
3838c2ecf20Sopenharmony_ci	GPIO_GROUP(BOOT_14),
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_0),
3868c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_1),
3878c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_2),
3888c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_3),
3898c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_4),
3908c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_5),
3918c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_6),
3928c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_7),
3938c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_8),
3948c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_9),
3958c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_10),
3968c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_11),
3978c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_12),
3988c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_13),
3998c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_14),
4008c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_15),
4018c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_16),
4028c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_17),
4038c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_18),
4048c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_19),
4058c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOA_20),
4068c2ecf20Sopenharmony_ci
4078c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_0),
4088c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_1),
4098c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_2),
4108c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_3),
4118c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_4),
4128c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_5),
4138c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_6),
4148c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_7),
4158c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_8),
4168c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_9),
4178c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_10),
4188c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_11),
4198c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_12),
4208c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_13),
4218c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_14),
4228c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_15),
4238c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_16),
4248c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_17),
4258c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_18),
4268c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_19),
4278c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_20),
4288c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_21),
4298c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOX_22),
4308c2ecf20Sopenharmony_ci
4318c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_0),
4328c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_1),
4338c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_2),
4348c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_3),
4358c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_4),
4368c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_5),
4378c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_6),
4388c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_7),
4398c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_8),
4408c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_9),
4418c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_10),
4428c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_11),
4438c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_12),
4448c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_13),
4458c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_14),
4468c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOY_15),
4478c2ecf20Sopenharmony_ci
4488c2ecf20Sopenharmony_ci	/* bank BOOT */
4498c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d0, 1),
4508c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d1, 1),
4518c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d2, 1),
4528c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d3, 1),
4538c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d4, 1),
4548c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d5, 1),
4558c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d6, 1),
4568c2ecf20Sopenharmony_ci	GROUP(emmc_nand_d7, 1),
4578c2ecf20Sopenharmony_ci	GROUP(emmc_clk, 1),
4588c2ecf20Sopenharmony_ci	GROUP(emmc_cmd, 1),
4598c2ecf20Sopenharmony_ci	GROUP(emmc_ds, 1),
4608c2ecf20Sopenharmony_ci	GROUP(nand_ce0, 2),
4618c2ecf20Sopenharmony_ci	GROUP(nand_ale, 2),
4628c2ecf20Sopenharmony_ci	GROUP(nand_cle, 2),
4638c2ecf20Sopenharmony_ci	GROUP(nand_wen_clk, 2),
4648c2ecf20Sopenharmony_ci	GROUP(nand_ren_wr, 2),
4658c2ecf20Sopenharmony_ci	GROUP(nand_rb0, 2),
4668c2ecf20Sopenharmony_ci	GROUP(nor_hold, 3),
4678c2ecf20Sopenharmony_ci	GROUP(nor_d, 3),
4688c2ecf20Sopenharmony_ci	GROUP(nor_q, 3),
4698c2ecf20Sopenharmony_ci	GROUP(nor_c, 3),
4708c2ecf20Sopenharmony_ci	GROUP(nor_wp, 3),
4718c2ecf20Sopenharmony_ci	GROUP(nor_cs, 3),
4728c2ecf20Sopenharmony_ci
4738c2ecf20Sopenharmony_ci	/* bank GPIOZ */
4748c2ecf20Sopenharmony_ci	GROUP(spi0_clk, 1),
4758c2ecf20Sopenharmony_ci	GROUP(spi0_mosi, 1),
4768c2ecf20Sopenharmony_ci	GROUP(spi0_miso, 1),
4778c2ecf20Sopenharmony_ci	GROUP(spi0_ss0, 1),
4788c2ecf20Sopenharmony_ci	GROUP(spi0_ss1, 1),
4798c2ecf20Sopenharmony_ci	GROUP(spi0_ss2, 1),
4808c2ecf20Sopenharmony_ci	GROUP(i2c0_sck, 1),
4818c2ecf20Sopenharmony_ci	GROUP(i2c0_sda, 1),
4828c2ecf20Sopenharmony_ci	GROUP(i2c1_sck_z, 1),
4838c2ecf20Sopenharmony_ci	GROUP(i2c1_sda_z, 1),
4848c2ecf20Sopenharmony_ci	GROUP(uart_rts_b_z, 2),
4858c2ecf20Sopenharmony_ci	GROUP(uart_cts_b_z, 2),
4868c2ecf20Sopenharmony_ci	GROUP(uart_tx_b_z, 2),
4878c2ecf20Sopenharmony_ci	GROUP(uart_rx_b_z, 2),
4888c2ecf20Sopenharmony_ci	GROUP(pwm_a_z, 2),
4898c2ecf20Sopenharmony_ci	GROUP(pwm_b_z, 2),
4908c2ecf20Sopenharmony_ci	GROUP(spdif_in_z, 3),
4918c2ecf20Sopenharmony_ci	GROUP(spdif_out_z, 3),
4928c2ecf20Sopenharmony_ci	GROUP(uart_ao_tx_b_z, 2),
4938c2ecf20Sopenharmony_ci	GROUP(uart_ao_rx_b_z, 2),
4948c2ecf20Sopenharmony_ci	GROUP(uart_ao_cts_b_z, 2),
4958c2ecf20Sopenharmony_ci	GROUP(uart_ao_rts_b_z, 2),
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ci	/* bank GPIOX */
4988c2ecf20Sopenharmony_ci	GROUP(sdio_d0, 1),
4998c2ecf20Sopenharmony_ci	GROUP(sdio_d1, 1),
5008c2ecf20Sopenharmony_ci	GROUP(sdio_d2, 1),
5018c2ecf20Sopenharmony_ci	GROUP(sdio_d3, 1),
5028c2ecf20Sopenharmony_ci	GROUP(sdio_clk, 1),
5038c2ecf20Sopenharmony_ci	GROUP(sdio_cmd, 1),
5048c2ecf20Sopenharmony_ci	GROUP(i2c1_sck_x, 1),
5058c2ecf20Sopenharmony_ci	GROUP(i2c1_sda_x, 1),
5068c2ecf20Sopenharmony_ci	GROUP(i2c2_sck_x, 1),
5078c2ecf20Sopenharmony_ci	GROUP(i2c2_sda_x, 1),
5088c2ecf20Sopenharmony_ci	GROUP(uart_rts_a, 1),
5098c2ecf20Sopenharmony_ci	GROUP(uart_cts_a, 1),
5108c2ecf20Sopenharmony_ci	GROUP(uart_tx_a, 1),
5118c2ecf20Sopenharmony_ci	GROUP(uart_rx_a, 1),
5128c2ecf20Sopenharmony_ci	GROUP(uart_rts_b_x, 2),
5138c2ecf20Sopenharmony_ci	GROUP(uart_cts_b_x, 2),
5148c2ecf20Sopenharmony_ci	GROUP(uart_tx_b_x, 2),
5158c2ecf20Sopenharmony_ci	GROUP(uart_rx_b_x, 2),
5168c2ecf20Sopenharmony_ci	GROUP(jtag_tdo_x, 2),
5178c2ecf20Sopenharmony_ci	GROUP(jtag_tdi_x, 2),
5188c2ecf20Sopenharmony_ci	GROUP(jtag_clk_x, 2),
5198c2ecf20Sopenharmony_ci	GROUP(jtag_tms_x, 2),
5208c2ecf20Sopenharmony_ci	GROUP(spi1_clk_x, 4),
5218c2ecf20Sopenharmony_ci	GROUP(spi1_mosi_x, 4),
5228c2ecf20Sopenharmony_ci	GROUP(spi1_miso_x, 4),
5238c2ecf20Sopenharmony_ci	GROUP(spi1_ss0_x, 4),
5248c2ecf20Sopenharmony_ci	GROUP(pwm_a_x18, 3),
5258c2ecf20Sopenharmony_ci	GROUP(pwm_a_x20, 1),
5268c2ecf20Sopenharmony_ci	GROUP(pwm_b_x, 3),
5278c2ecf20Sopenharmony_ci	GROUP(pwm_c_x10, 3),
5288c2ecf20Sopenharmony_ci	GROUP(pwm_c_x17, 3),
5298c2ecf20Sopenharmony_ci	GROUP(pwm_d_x11, 3),
5308c2ecf20Sopenharmony_ci	GROUP(pwm_d_x16, 3),
5318c2ecf20Sopenharmony_ci	GROUP(eth_txd0_x, 4),
5328c2ecf20Sopenharmony_ci	GROUP(eth_txd1_x, 4),
5338c2ecf20Sopenharmony_ci	GROUP(eth_txen_x, 4),
5348c2ecf20Sopenharmony_ci	GROUP(eth_rgmii_rx_clk_x, 4),
5358c2ecf20Sopenharmony_ci	GROUP(eth_rxd0_x, 4),
5368c2ecf20Sopenharmony_ci	GROUP(eth_rxd1_x, 4),
5378c2ecf20Sopenharmony_ci	GROUP(eth_rx_dv_x, 4),
5388c2ecf20Sopenharmony_ci	GROUP(eth_mdio_x, 4),
5398c2ecf20Sopenharmony_ci	GROUP(eth_mdc_x, 4),
5408c2ecf20Sopenharmony_ci	GROUP(tdma_sclk, 1),
5418c2ecf20Sopenharmony_ci	GROUP(tdma_sclk_slv, 2),
5428c2ecf20Sopenharmony_ci	GROUP(tdma_fs, 1),
5438c2ecf20Sopenharmony_ci	GROUP(tdma_fs_slv, 2),
5448c2ecf20Sopenharmony_ci	GROUP(tdma_din0, 1),
5458c2ecf20Sopenharmony_ci	GROUP(tdma_dout0_x14, 2),
5468c2ecf20Sopenharmony_ci	GROUP(tdma_dout0_x15, 1),
5478c2ecf20Sopenharmony_ci	GROUP(tdma_dout1, 2),
5488c2ecf20Sopenharmony_ci	GROUP(tdma_din1, 3),
5498c2ecf20Sopenharmony_ci
5508c2ecf20Sopenharmony_ci	/* bank GPIOY */
5518c2ecf20Sopenharmony_ci	GROUP(eth_txd0_y, 1),
5528c2ecf20Sopenharmony_ci	GROUP(eth_txd1_y, 1),
5538c2ecf20Sopenharmony_ci	GROUP(eth_txen_y, 1),
5548c2ecf20Sopenharmony_ci	GROUP(eth_rgmii_rx_clk_y, 1),
5558c2ecf20Sopenharmony_ci	GROUP(eth_rxd0_y, 1),
5568c2ecf20Sopenharmony_ci	GROUP(eth_rxd1_y, 1),
5578c2ecf20Sopenharmony_ci	GROUP(eth_rx_dv_y, 1),
5588c2ecf20Sopenharmony_ci	GROUP(eth_mdio_y, 1),
5598c2ecf20Sopenharmony_ci	GROUP(eth_mdc_y, 1),
5608c2ecf20Sopenharmony_ci	GROUP(eth_rxd2_rgmii, 1),
5618c2ecf20Sopenharmony_ci	GROUP(eth_rxd3_rgmii, 1),
5628c2ecf20Sopenharmony_ci	GROUP(eth_rgmii_tx_clk, 1),
5638c2ecf20Sopenharmony_ci	GROUP(eth_txd2_rgmii, 1),
5648c2ecf20Sopenharmony_ci	GROUP(eth_txd3_rgmii, 1),
5658c2ecf20Sopenharmony_ci
5668c2ecf20Sopenharmony_ci	/* bank GPIOA */
5678c2ecf20Sopenharmony_ci	GROUP(spdif_out_a1, 4),
5688c2ecf20Sopenharmony_ci	GROUP(spdif_out_a11, 3),
5698c2ecf20Sopenharmony_ci	GROUP(spdif_out_a19, 2),
5708c2ecf20Sopenharmony_ci	GROUP(spdif_out_a20, 1),
5718c2ecf20Sopenharmony_ci	GROUP(spdif_in_a1, 3),
5728c2ecf20Sopenharmony_ci	GROUP(spdif_in_a7, 3),
5738c2ecf20Sopenharmony_ci	GROUP(spdif_in_a19, 1),
5748c2ecf20Sopenharmony_ci	GROUP(spdif_in_a20, 2),
5758c2ecf20Sopenharmony_ci	GROUP(spi1_clk_a, 3),
5768c2ecf20Sopenharmony_ci	GROUP(spi1_mosi_a, 3),
5778c2ecf20Sopenharmony_ci	GROUP(spi1_miso_a, 3),
5788c2ecf20Sopenharmony_ci	GROUP(spi1_ss0_a, 3),
5798c2ecf20Sopenharmony_ci	GROUP(spi1_ss1, 3),
5808c2ecf20Sopenharmony_ci	GROUP(pwm_a_a, 3),
5818c2ecf20Sopenharmony_ci	GROUP(pwm_b_a, 3),
5828c2ecf20Sopenharmony_ci	GROUP(pwm_c_a, 3),
5838c2ecf20Sopenharmony_ci	GROUP(pwm_vs, 2),
5848c2ecf20Sopenharmony_ci	GROUP(i2c2_sda_a, 3),
5858c2ecf20Sopenharmony_ci	GROUP(i2c2_sck_a, 3),
5868c2ecf20Sopenharmony_ci	GROUP(i2c3_sda_a6, 4),
5878c2ecf20Sopenharmony_ci	GROUP(i2c3_sck_a7, 4),
5888c2ecf20Sopenharmony_ci	GROUP(i2c3_sda_a12, 4),
5898c2ecf20Sopenharmony_ci	GROUP(i2c3_sck_a13, 4),
5908c2ecf20Sopenharmony_ci	GROUP(i2c3_sda_a19, 4),
5918c2ecf20Sopenharmony_ci	GROUP(i2c3_sck_a20, 4),
5928c2ecf20Sopenharmony_ci	GROUP(pdm_dclk_a14, 1),
5938c2ecf20Sopenharmony_ci	GROUP(pdm_dclk_a19, 3),
5948c2ecf20Sopenharmony_ci	GROUP(pdm_din0, 1),
5958c2ecf20Sopenharmony_ci	GROUP(pdm_din1, 1),
5968c2ecf20Sopenharmony_ci	GROUP(pdm_din2, 1),
5978c2ecf20Sopenharmony_ci	GROUP(pdm_din3, 1),
5988c2ecf20Sopenharmony_ci	GROUP(mclk_c, 1),
5998c2ecf20Sopenharmony_ci	GROUP(mclk_b, 1),
6008c2ecf20Sopenharmony_ci	GROUP(tdmc_sclk, 1),
6018c2ecf20Sopenharmony_ci	GROUP(tdmc_sclk_slv, 2),
6028c2ecf20Sopenharmony_ci	GROUP(tdmc_fs, 1),
6038c2ecf20Sopenharmony_ci	GROUP(tdmc_fs_slv, 2),
6048c2ecf20Sopenharmony_ci	GROUP(tdmc_din0, 2),
6058c2ecf20Sopenharmony_ci	GROUP(tdmc_dout0, 1),
6068c2ecf20Sopenharmony_ci	GROUP(tdmc_din1, 2),
6078c2ecf20Sopenharmony_ci	GROUP(tdmc_dout1, 1),
6088c2ecf20Sopenharmony_ci	GROUP(tdmc_din2, 2),
6098c2ecf20Sopenharmony_ci	GROUP(tdmc_dout2, 1),
6108c2ecf20Sopenharmony_ci	GROUP(tdmc_din3, 2),
6118c2ecf20Sopenharmony_ci	GROUP(tdmc_dout3, 1),
6128c2ecf20Sopenharmony_ci	GROUP(tdmb_sclk, 1),
6138c2ecf20Sopenharmony_ci	GROUP(tdmb_sclk_slv, 2),
6148c2ecf20Sopenharmony_ci	GROUP(tdmb_fs, 1),
6158c2ecf20Sopenharmony_ci	GROUP(tdmb_fs_slv, 2),
6168c2ecf20Sopenharmony_ci	GROUP(tdmb_din0, 2),
6178c2ecf20Sopenharmony_ci	GROUP(tdmb_dout0, 1),
6188c2ecf20Sopenharmony_ci	GROUP(tdmb_din1, 2),
6198c2ecf20Sopenharmony_ci	GROUP(tdmb_dout1, 1),
6208c2ecf20Sopenharmony_ci	GROUP(tdmb_din2, 2),
6218c2ecf20Sopenharmony_ci	GROUP(tdmb_dout2, 1),
6228c2ecf20Sopenharmony_ci	GROUP(tdmb_din3, 2),
6238c2ecf20Sopenharmony_ci	GROUP(tdmb_dout3, 1),
6248c2ecf20Sopenharmony_ci};
6258c2ecf20Sopenharmony_ci
6268c2ecf20Sopenharmony_ci/* uart_ao_a */
6278c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_tx_a_pins[] = {GPIOAO_0};
6288c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rx_a_pins[] = {GPIOAO_1};
6298c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_cts_a_pins[] = {GPIOAO_2};
6308c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rts_a_pins[] = {GPIOAO_3};
6318c2ecf20Sopenharmony_ci
6328c2ecf20Sopenharmony_ci/* uart_ao_b */
6338c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_tx_b_pins[] = {GPIOAO_4};
6348c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rx_b_pins[] = {GPIOAO_5};
6358c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_cts_b_pins[] = {GPIOAO_2};
6368c2ecf20Sopenharmony_cistatic const unsigned int uart_ao_rts_b_pins[] = {GPIOAO_3};
6378c2ecf20Sopenharmony_ci
6388c2ecf20Sopenharmony_ci/* i2c_ao */
6398c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sck_4_pins[] = {GPIOAO_4};
6408c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sda_5_pins[] = {GPIOAO_5};
6418c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sck_8_pins[] = {GPIOAO_8};
6428c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sda_9_pins[] = {GPIOAO_9};
6438c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sck_10_pins[] = {GPIOAO_10};
6448c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_sda_11_pins[] = {GPIOAO_11};
6458c2ecf20Sopenharmony_ci
6468c2ecf20Sopenharmony_ci/* i2c_ao_slave */
6478c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_slave_sck_pins[] = {GPIOAO_10};
6488c2ecf20Sopenharmony_cistatic const unsigned int i2c_ao_slave_sda_pins[] = {GPIOAO_11};
6498c2ecf20Sopenharmony_ci
6508c2ecf20Sopenharmony_ci/* ir_in */
6518c2ecf20Sopenharmony_cistatic const unsigned int remote_input_ao_pins[] = {GPIOAO_6};
6528c2ecf20Sopenharmony_ci
6538c2ecf20Sopenharmony_ci/* ir_out */
6548c2ecf20Sopenharmony_cistatic const unsigned int remote_out_ao_pins[] = {GPIOAO_7};
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_ci/* pwm_ao_a */
6578c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_a_pins[] = {GPIOAO_3};
6588c2ecf20Sopenharmony_ci
6598c2ecf20Sopenharmony_ci/* pwm_ao_b */
6608c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_b_ao2_pins[] = {GPIOAO_2};
6618c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_b_ao12_pins[] = {GPIOAO_12};
6628c2ecf20Sopenharmony_ci
6638c2ecf20Sopenharmony_ci/* pwm_ao_c */
6648c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_c_ao8_pins[] = {GPIOAO_8};
6658c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_c_ao13_pins[] = {GPIOAO_13};
6668c2ecf20Sopenharmony_ci
6678c2ecf20Sopenharmony_ci/* pwm_ao_d */
6688c2ecf20Sopenharmony_cistatic const unsigned int pwm_ao_d_pins[] = {GPIOAO_9};
6698c2ecf20Sopenharmony_ci
6708c2ecf20Sopenharmony_ci/* jtag_ao */
6718c2ecf20Sopenharmony_cistatic const unsigned int jtag_ao_tdi_pins[] = {GPIOAO_3};
6728c2ecf20Sopenharmony_cistatic const unsigned int jtag_ao_tdo_pins[] = {GPIOAO_4};
6738c2ecf20Sopenharmony_cistatic const unsigned int jtag_ao_clk_pins[] = {GPIOAO_5};
6748c2ecf20Sopenharmony_cistatic const unsigned int jtag_ao_tms_pins[] = {GPIOAO_7};
6758c2ecf20Sopenharmony_ci
6768c2ecf20Sopenharmony_ci/* gen_clk */
6778c2ecf20Sopenharmony_cistatic const unsigned int gen_clk_ee_pins[] = {GPIOAO_13};
6788c2ecf20Sopenharmony_ci
6798c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_axg_aobus_groups[] = {
6808c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_0),
6818c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_1),
6828c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_2),
6838c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_3),
6848c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_4),
6858c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_5),
6868c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_6),
6878c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_7),
6888c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_8),
6898c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_9),
6908c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_10),
6918c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_11),
6928c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_12),
6938c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIOAO_13),
6948c2ecf20Sopenharmony_ci	GPIO_GROUP(GPIO_TEST_N),
6958c2ecf20Sopenharmony_ci
6968c2ecf20Sopenharmony_ci	/* bank AO */
6978c2ecf20Sopenharmony_ci	GROUP(uart_ao_tx_a, 1),
6988c2ecf20Sopenharmony_ci	GROUP(uart_ao_rx_a, 1),
6998c2ecf20Sopenharmony_ci	GROUP(uart_ao_cts_a, 2),
7008c2ecf20Sopenharmony_ci	GROUP(uart_ao_rts_a, 2),
7018c2ecf20Sopenharmony_ci	GROUP(uart_ao_tx_b, 1),
7028c2ecf20Sopenharmony_ci	GROUP(uart_ao_rx_b, 1),
7038c2ecf20Sopenharmony_ci	GROUP(uart_ao_cts_b, 1),
7048c2ecf20Sopenharmony_ci	GROUP(uart_ao_rts_b, 1),
7058c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sck_4, 2),
7068c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sda_5, 2),
7078c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sck_8, 2),
7088c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sda_9, 2),
7098c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sck_10, 2),
7108c2ecf20Sopenharmony_ci	GROUP(i2c_ao_sda_11, 2),
7118c2ecf20Sopenharmony_ci	GROUP(i2c_ao_slave_sck, 1),
7128c2ecf20Sopenharmony_ci	GROUP(i2c_ao_slave_sda, 1),
7138c2ecf20Sopenharmony_ci	GROUP(remote_input_ao, 1),
7148c2ecf20Sopenharmony_ci	GROUP(remote_out_ao, 1),
7158c2ecf20Sopenharmony_ci	GROUP(pwm_ao_a, 3),
7168c2ecf20Sopenharmony_ci	GROUP(pwm_ao_b_ao2, 3),
7178c2ecf20Sopenharmony_ci	GROUP(pwm_ao_b_ao12, 3),
7188c2ecf20Sopenharmony_ci	GROUP(pwm_ao_c_ao8, 3),
7198c2ecf20Sopenharmony_ci	GROUP(pwm_ao_c_ao13, 3),
7208c2ecf20Sopenharmony_ci	GROUP(pwm_ao_d, 3),
7218c2ecf20Sopenharmony_ci	GROUP(jtag_ao_tdi, 4),
7228c2ecf20Sopenharmony_ci	GROUP(jtag_ao_tdo, 4),
7238c2ecf20Sopenharmony_ci	GROUP(jtag_ao_clk, 4),
7248c2ecf20Sopenharmony_ci	GROUP(jtag_ao_tms, 4),
7258c2ecf20Sopenharmony_ci	GROUP(gen_clk_ee, 4),
7268c2ecf20Sopenharmony_ci};
7278c2ecf20Sopenharmony_ci
7288c2ecf20Sopenharmony_cistatic const char * const gpio_periphs_groups[] = {
7298c2ecf20Sopenharmony_ci	"GPIOZ_0", "GPIOZ_1", "GPIOZ_2", "GPIOZ_3", "GPIOZ_4",
7308c2ecf20Sopenharmony_ci	"GPIOZ_5", "GPIOZ_6", "GPIOZ_7", "GPIOZ_8", "GPIOZ_9",
7318c2ecf20Sopenharmony_ci	"GPIOZ_10",
7328c2ecf20Sopenharmony_ci
7338c2ecf20Sopenharmony_ci	"BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4",
7348c2ecf20Sopenharmony_ci	"BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9",
7358c2ecf20Sopenharmony_ci	"BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14",
7368c2ecf20Sopenharmony_ci
7378c2ecf20Sopenharmony_ci	"GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4",
7388c2ecf20Sopenharmony_ci	"GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9",
7398c2ecf20Sopenharmony_ci	"GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14",
7408c2ecf20Sopenharmony_ci	"GPIOA_15", "GPIOA_16", "GPIOA_17", "GPIOA_18", "GPIOA_19",
7418c2ecf20Sopenharmony_ci	"GPIOA_20",
7428c2ecf20Sopenharmony_ci
7438c2ecf20Sopenharmony_ci	"GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4",
7448c2ecf20Sopenharmony_ci	"GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9",
7458c2ecf20Sopenharmony_ci	"GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14",
7468c2ecf20Sopenharmony_ci	"GPIOX_15", "GPIOX_16", "GPIOX_17", "GPIOX_18", "GPIOX_19",
7478c2ecf20Sopenharmony_ci	"GPIOX_20", "GPIOX_21", "GPIOX_22",
7488c2ecf20Sopenharmony_ci
7498c2ecf20Sopenharmony_ci	"GPIOY_0", "GPIOY_1", "GPIOY_2", "GPIOY_3", "GPIOY_4",
7508c2ecf20Sopenharmony_ci	"GPIOY_5", "GPIOY_6", "GPIOY_7", "GPIOY_8", "GPIOY_9",
7518c2ecf20Sopenharmony_ci	"GPIOY_10", "GPIOY_11", "GPIOY_12", "GPIOY_13", "GPIOY_14",
7528c2ecf20Sopenharmony_ci	"GPIOY_15",
7538c2ecf20Sopenharmony_ci};
7548c2ecf20Sopenharmony_ci
7558c2ecf20Sopenharmony_cistatic const char * const emmc_groups[] = {
7568c2ecf20Sopenharmony_ci	"emmc_nand_d0", "emmc_nand_d1", "emmc_nand_d2",
7578c2ecf20Sopenharmony_ci	"emmc_nand_d3", "emmc_nand_d4", "emmc_nand_d5",
7588c2ecf20Sopenharmony_ci	"emmc_nand_d6", "emmc_nand_d7",
7598c2ecf20Sopenharmony_ci	"emmc_clk", "emmc_cmd", "emmc_ds",
7608c2ecf20Sopenharmony_ci};
7618c2ecf20Sopenharmony_ci
7628c2ecf20Sopenharmony_cistatic const char * const nand_groups[] = {
7638c2ecf20Sopenharmony_ci	"emmc_nand_d0", "emmc_nand_d1", "emmc_nand_d2",
7648c2ecf20Sopenharmony_ci	"emmc_nand_d3", "emmc_nand_d4", "emmc_nand_d5",
7658c2ecf20Sopenharmony_ci	"emmc_nand_d6", "emmc_nand_d7",
7668c2ecf20Sopenharmony_ci	"nand_ce0", "nand_ale", "nand_cle",
7678c2ecf20Sopenharmony_ci	"nand_wen_clk", "nand_ren_wr", "nand_rb0",
7688c2ecf20Sopenharmony_ci};
7698c2ecf20Sopenharmony_ci
7708c2ecf20Sopenharmony_cistatic const char * const nor_groups[] = {
7718c2ecf20Sopenharmony_ci	"nor_d", "nor_q", "nor_c", "nor_cs",
7728c2ecf20Sopenharmony_ci	"nor_hold", "nor_wp",
7738c2ecf20Sopenharmony_ci};
7748c2ecf20Sopenharmony_ci
7758c2ecf20Sopenharmony_cistatic const char * const sdio_groups[] = {
7768c2ecf20Sopenharmony_ci	"sdio_d0", "sdio_d1", "sdio_d2", "sdio_d3",
7778c2ecf20Sopenharmony_ci	"sdio_cmd", "sdio_clk",
7788c2ecf20Sopenharmony_ci};
7798c2ecf20Sopenharmony_ci
7808c2ecf20Sopenharmony_cistatic const char * const spi0_groups[] = {
7818c2ecf20Sopenharmony_ci	"spi0_clk", "spi0_mosi", "spi0_miso", "spi0_ss0",
7828c2ecf20Sopenharmony_ci	"spi0_ss1", "spi0_ss2"
7838c2ecf20Sopenharmony_ci};
7848c2ecf20Sopenharmony_ci
7858c2ecf20Sopenharmony_cistatic const char * const spi1_groups[] = {
7868c2ecf20Sopenharmony_ci	"spi1_clk_x", "spi1_mosi_x", "spi1_miso_x", "spi1_ss0_x",
7878c2ecf20Sopenharmony_ci	"spi1_clk_a", "spi1_mosi_a", "spi1_miso_a", "spi1_ss0_a",
7888c2ecf20Sopenharmony_ci	"spi1_ss1"
7898c2ecf20Sopenharmony_ci};
7908c2ecf20Sopenharmony_ci
7918c2ecf20Sopenharmony_cistatic const char * const uart_a_groups[] = {
7928c2ecf20Sopenharmony_ci	"uart_tx_a", "uart_rx_a", "uart_cts_a", "uart_rts_a",
7938c2ecf20Sopenharmony_ci};
7948c2ecf20Sopenharmony_ci
7958c2ecf20Sopenharmony_cistatic const char * const uart_b_groups[] = {
7968c2ecf20Sopenharmony_ci	"uart_tx_b_z", "uart_rx_b_z", "uart_cts_b_z", "uart_rts_b_z",
7978c2ecf20Sopenharmony_ci	"uart_tx_b_x", "uart_rx_b_x", "uart_cts_b_x", "uart_rts_b_x",
7988c2ecf20Sopenharmony_ci};
7998c2ecf20Sopenharmony_ci
8008c2ecf20Sopenharmony_cistatic const char * const uart_ao_b_z_groups[] = {
8018c2ecf20Sopenharmony_ci	"uart_ao_tx_b_z", "uart_ao_rx_b_z",
8028c2ecf20Sopenharmony_ci	"uart_ao_cts_b_z", "uart_ao_rts_b_z",
8038c2ecf20Sopenharmony_ci};
8048c2ecf20Sopenharmony_ci
8058c2ecf20Sopenharmony_cistatic const char * const i2c0_groups[] = {
8068c2ecf20Sopenharmony_ci	"i2c0_sck", "i2c0_sda",
8078c2ecf20Sopenharmony_ci};
8088c2ecf20Sopenharmony_ci
8098c2ecf20Sopenharmony_cistatic const char * const i2c1_groups[] = {
8108c2ecf20Sopenharmony_ci	"i2c1_sck_z", "i2c1_sda_z",
8118c2ecf20Sopenharmony_ci	"i2c1_sck_x", "i2c1_sda_x",
8128c2ecf20Sopenharmony_ci};
8138c2ecf20Sopenharmony_ci
8148c2ecf20Sopenharmony_cistatic const char * const i2c2_groups[] = {
8158c2ecf20Sopenharmony_ci	"i2c2_sck_x", "i2c2_sda_x",
8168c2ecf20Sopenharmony_ci	"i2c2_sda_a", "i2c2_sck_a",
8178c2ecf20Sopenharmony_ci};
8188c2ecf20Sopenharmony_ci
8198c2ecf20Sopenharmony_cistatic const char * const i2c3_groups[] = {
8208c2ecf20Sopenharmony_ci	"i2c3_sda_a6", "i2c3_sck_a7",
8218c2ecf20Sopenharmony_ci	"i2c3_sda_a12", "i2c3_sck_a13",
8228c2ecf20Sopenharmony_ci	"i2c3_sda_a19", "i2c3_sck_a20",
8238c2ecf20Sopenharmony_ci};
8248c2ecf20Sopenharmony_ci
8258c2ecf20Sopenharmony_cistatic const char * const eth_groups[] = {
8268c2ecf20Sopenharmony_ci	"eth_rxd2_rgmii", "eth_rxd3_rgmii", "eth_rgmii_tx_clk",
8278c2ecf20Sopenharmony_ci	"eth_txd2_rgmii", "eth_txd3_rgmii",
8288c2ecf20Sopenharmony_ci	"eth_txd0_x", "eth_txd1_x", "eth_txen_x", "eth_rgmii_rx_clk_x",
8298c2ecf20Sopenharmony_ci	"eth_rxd0_x", "eth_rxd1_x", "eth_rx_dv_x", "eth_mdio_x",
8308c2ecf20Sopenharmony_ci	"eth_mdc_x",
8318c2ecf20Sopenharmony_ci	"eth_txd0_y", "eth_txd1_y", "eth_txen_y", "eth_rgmii_rx_clk_y",
8328c2ecf20Sopenharmony_ci	"eth_rxd0_y", "eth_rxd1_y", "eth_rx_dv_y", "eth_mdio_y",
8338c2ecf20Sopenharmony_ci	"eth_mdc_y",
8348c2ecf20Sopenharmony_ci};
8358c2ecf20Sopenharmony_ci
8368c2ecf20Sopenharmony_cistatic const char * const pwm_a_groups[] = {
8378c2ecf20Sopenharmony_ci	"pwm_a_z", "pwm_a_x18", "pwm_a_x20", "pwm_a_a",
8388c2ecf20Sopenharmony_ci};
8398c2ecf20Sopenharmony_ci
8408c2ecf20Sopenharmony_cistatic const char * const pwm_b_groups[] = {
8418c2ecf20Sopenharmony_ci	"pwm_b_z", "pwm_b_x", "pwm_b_a",
8428c2ecf20Sopenharmony_ci};
8438c2ecf20Sopenharmony_ci
8448c2ecf20Sopenharmony_cistatic const char * const pwm_c_groups[] = {
8458c2ecf20Sopenharmony_ci	"pwm_c_x10", "pwm_c_x17", "pwm_c_a",
8468c2ecf20Sopenharmony_ci};
8478c2ecf20Sopenharmony_ci
8488c2ecf20Sopenharmony_cistatic const char * const pwm_d_groups[] = {
8498c2ecf20Sopenharmony_ci	"pwm_d_x11", "pwm_d_x16",
8508c2ecf20Sopenharmony_ci};
8518c2ecf20Sopenharmony_ci
8528c2ecf20Sopenharmony_cistatic const char * const pwm_vs_groups[] = {
8538c2ecf20Sopenharmony_ci	"pwm_vs",
8548c2ecf20Sopenharmony_ci};
8558c2ecf20Sopenharmony_ci
8568c2ecf20Sopenharmony_cistatic const char * const spdif_out_groups[] = {
8578c2ecf20Sopenharmony_ci	"spdif_out_z", "spdif_out_a1", "spdif_out_a11",
8588c2ecf20Sopenharmony_ci	"spdif_out_a19", "spdif_out_a20",
8598c2ecf20Sopenharmony_ci};
8608c2ecf20Sopenharmony_ci
8618c2ecf20Sopenharmony_cistatic const char * const spdif_in_groups[] = {
8628c2ecf20Sopenharmony_ci	"spdif_in_z", "spdif_in_a1", "spdif_in_a7",
8638c2ecf20Sopenharmony_ci	"spdif_in_a19", "spdif_in_a20",
8648c2ecf20Sopenharmony_ci};
8658c2ecf20Sopenharmony_ci
8668c2ecf20Sopenharmony_cistatic const char * const jtag_ee_groups[] = {
8678c2ecf20Sopenharmony_ci	"jtag_tdo_x", "jtag_tdi_x", "jtag_clk_x",
8688c2ecf20Sopenharmony_ci	"jtag_tms_x",
8698c2ecf20Sopenharmony_ci};
8708c2ecf20Sopenharmony_ci
8718c2ecf20Sopenharmony_cistatic const char * const pdm_groups[] = {
8728c2ecf20Sopenharmony_ci	"pdm_din0", "pdm_din1", "pdm_din2", "pdm_din3",
8738c2ecf20Sopenharmony_ci	"pdm_dclk_a14", "pdm_dclk_a19",
8748c2ecf20Sopenharmony_ci};
8758c2ecf20Sopenharmony_ci
8768c2ecf20Sopenharmony_cistatic const char * const gpio_aobus_groups[] = {
8778c2ecf20Sopenharmony_ci	"GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
8788c2ecf20Sopenharmony_ci	"GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
8798c2ecf20Sopenharmony_ci	"GPIOAO_10", "GPIOAO_11", "GPIOAO_12", "GPIOAO_13",
8808c2ecf20Sopenharmony_ci	"GPIO_TEST_N",
8818c2ecf20Sopenharmony_ci};
8828c2ecf20Sopenharmony_ci
8838c2ecf20Sopenharmony_cistatic const char * const uart_ao_a_groups[] = {
8848c2ecf20Sopenharmony_ci	"uart_ao_tx_a", "uart_ao_rx_a", "uart_ao_cts_a", "uart_ao_rts_a",
8858c2ecf20Sopenharmony_ci};
8868c2ecf20Sopenharmony_ci
8878c2ecf20Sopenharmony_cistatic const char * const uart_ao_b_groups[] = {
8888c2ecf20Sopenharmony_ci	"uart_ao_tx_b", "uart_ao_rx_b", "uart_ao_cts_b", "uart_ao_rts_b",
8898c2ecf20Sopenharmony_ci};
8908c2ecf20Sopenharmony_ci
8918c2ecf20Sopenharmony_cistatic const char * const i2c_ao_groups[] = {
8928c2ecf20Sopenharmony_ci	"i2c_ao_sck_4", "i2c_ao_sda_5",
8938c2ecf20Sopenharmony_ci	"i2c_ao_sck_8", "i2c_ao_sda_9",
8948c2ecf20Sopenharmony_ci	"i2c_ao_sck_10", "i2c_ao_sda_11",
8958c2ecf20Sopenharmony_ci};
8968c2ecf20Sopenharmony_ci
8978c2ecf20Sopenharmony_cistatic const char * const i2c_ao_slave_groups[] = {
8988c2ecf20Sopenharmony_ci	"i2c_ao_slave_sck", "i2c_ao_slave_sda",
8998c2ecf20Sopenharmony_ci};
9008c2ecf20Sopenharmony_ci
9018c2ecf20Sopenharmony_cistatic const char * const remote_input_ao_groups[] = {
9028c2ecf20Sopenharmony_ci	"remote_input_ao",
9038c2ecf20Sopenharmony_ci};
9048c2ecf20Sopenharmony_ci
9058c2ecf20Sopenharmony_cistatic const char * const remote_out_ao_groups[] = {
9068c2ecf20Sopenharmony_ci	"remote_out_ao",
9078c2ecf20Sopenharmony_ci};
9088c2ecf20Sopenharmony_ci
9098c2ecf20Sopenharmony_cistatic const char * const pwm_ao_a_groups[] = {
9108c2ecf20Sopenharmony_ci	"pwm_ao_a",
9118c2ecf20Sopenharmony_ci};
9128c2ecf20Sopenharmony_ci
9138c2ecf20Sopenharmony_cistatic const char * const pwm_ao_b_groups[] = {
9148c2ecf20Sopenharmony_ci	"pwm_ao_b_ao2", "pwm_ao_b_ao12",
9158c2ecf20Sopenharmony_ci};
9168c2ecf20Sopenharmony_ci
9178c2ecf20Sopenharmony_cistatic const char * const pwm_ao_c_groups[] = {
9188c2ecf20Sopenharmony_ci	"pwm_ao_c_ao8", "pwm_ao_c_ao13",
9198c2ecf20Sopenharmony_ci};
9208c2ecf20Sopenharmony_ci
9218c2ecf20Sopenharmony_cistatic const char * const pwm_ao_d_groups[] = {
9228c2ecf20Sopenharmony_ci	"pwm_ao_d",
9238c2ecf20Sopenharmony_ci};
9248c2ecf20Sopenharmony_ci
9258c2ecf20Sopenharmony_cistatic const char * const jtag_ao_groups[] = {
9268c2ecf20Sopenharmony_ci	"jtag_ao_tdi", "jtag_ao_tdo", "jtag_ao_clk", "jtag_ao_tms",
9278c2ecf20Sopenharmony_ci};
9288c2ecf20Sopenharmony_ci
9298c2ecf20Sopenharmony_cistatic const char * const mclk_c_groups[] = {
9308c2ecf20Sopenharmony_ci	"mclk_c",
9318c2ecf20Sopenharmony_ci};
9328c2ecf20Sopenharmony_ci
9338c2ecf20Sopenharmony_cistatic const char * const mclk_b_groups[] = {
9348c2ecf20Sopenharmony_ci	"mclk_b",
9358c2ecf20Sopenharmony_ci};
9368c2ecf20Sopenharmony_ci
9378c2ecf20Sopenharmony_cistatic const char * const tdma_groups[] = {
9388c2ecf20Sopenharmony_ci	"tdma_sclk", "tdma_sclk_slv", "tdma_fs", "tdma_fs_slv",
9398c2ecf20Sopenharmony_ci	"tdma_din0", "tdma_dout0_x14", "tdma_dout0_x15", "tdma_dout1",
9408c2ecf20Sopenharmony_ci	"tdma_din1",
9418c2ecf20Sopenharmony_ci};
9428c2ecf20Sopenharmony_ci
9438c2ecf20Sopenharmony_cistatic const char * const tdmc_groups[] = {
9448c2ecf20Sopenharmony_ci	"tdmc_sclk", "tdmc_sclk_slv", "tdmc_fs", "tdmc_fs_slv",
9458c2ecf20Sopenharmony_ci	"tdmc_din0", "tdmc_dout0", "tdmc_din1",	"tdmc_dout1",
9468c2ecf20Sopenharmony_ci	"tdmc_din2", "tdmc_dout2", "tdmc_din3",	"tdmc_dout3",
9478c2ecf20Sopenharmony_ci};
9488c2ecf20Sopenharmony_ci
9498c2ecf20Sopenharmony_cistatic const char * const tdmb_groups[] = {
9508c2ecf20Sopenharmony_ci	"tdmb_sclk", "tdmb_sclk_slv", "tdmb_fs", "tdmb_fs_slv",
9518c2ecf20Sopenharmony_ci	"tdmb_din0", "tdmb_dout0", "tdmb_din1",	"tdmb_dout1",
9528c2ecf20Sopenharmony_ci	"tdmb_din2", "tdmb_dout2", "tdmb_din3",	"tdmb_dout3",
9538c2ecf20Sopenharmony_ci};
9548c2ecf20Sopenharmony_ci
9558c2ecf20Sopenharmony_cistatic const char * const gen_clk_ee_groups[] = {
9568c2ecf20Sopenharmony_ci	"gen_clk_ee",
9578c2ecf20Sopenharmony_ci};
9588c2ecf20Sopenharmony_ci
9598c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_axg_periphs_functions[] = {
9608c2ecf20Sopenharmony_ci	FUNCTION(gpio_periphs),
9618c2ecf20Sopenharmony_ci	FUNCTION(emmc),
9628c2ecf20Sopenharmony_ci	FUNCTION(nor),
9638c2ecf20Sopenharmony_ci	FUNCTION(spi0),
9648c2ecf20Sopenharmony_ci	FUNCTION(spi1),
9658c2ecf20Sopenharmony_ci	FUNCTION(sdio),
9668c2ecf20Sopenharmony_ci	FUNCTION(nand),
9678c2ecf20Sopenharmony_ci	FUNCTION(uart_a),
9688c2ecf20Sopenharmony_ci	FUNCTION(uart_b),
9698c2ecf20Sopenharmony_ci	FUNCTION(uart_ao_b_z),
9708c2ecf20Sopenharmony_ci	FUNCTION(i2c0),
9718c2ecf20Sopenharmony_ci	FUNCTION(i2c1),
9728c2ecf20Sopenharmony_ci	FUNCTION(i2c2),
9738c2ecf20Sopenharmony_ci	FUNCTION(i2c3),
9748c2ecf20Sopenharmony_ci	FUNCTION(eth),
9758c2ecf20Sopenharmony_ci	FUNCTION(pwm_a),
9768c2ecf20Sopenharmony_ci	FUNCTION(pwm_b),
9778c2ecf20Sopenharmony_ci	FUNCTION(pwm_c),
9788c2ecf20Sopenharmony_ci	FUNCTION(pwm_d),
9798c2ecf20Sopenharmony_ci	FUNCTION(pwm_vs),
9808c2ecf20Sopenharmony_ci	FUNCTION(spdif_out),
9818c2ecf20Sopenharmony_ci	FUNCTION(spdif_in),
9828c2ecf20Sopenharmony_ci	FUNCTION(jtag_ee),
9838c2ecf20Sopenharmony_ci	FUNCTION(pdm),
9848c2ecf20Sopenharmony_ci	FUNCTION(mclk_b),
9858c2ecf20Sopenharmony_ci	FUNCTION(mclk_c),
9868c2ecf20Sopenharmony_ci	FUNCTION(tdma),
9878c2ecf20Sopenharmony_ci	FUNCTION(tdmb),
9888c2ecf20Sopenharmony_ci	FUNCTION(tdmc),
9898c2ecf20Sopenharmony_ci};
9908c2ecf20Sopenharmony_ci
9918c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_axg_aobus_functions[] = {
9928c2ecf20Sopenharmony_ci	FUNCTION(gpio_aobus),
9938c2ecf20Sopenharmony_ci	FUNCTION(uart_ao_a),
9948c2ecf20Sopenharmony_ci	FUNCTION(uart_ao_b),
9958c2ecf20Sopenharmony_ci	FUNCTION(i2c_ao),
9968c2ecf20Sopenharmony_ci	FUNCTION(i2c_ao_slave),
9978c2ecf20Sopenharmony_ci	FUNCTION(remote_input_ao),
9988c2ecf20Sopenharmony_ci	FUNCTION(remote_out_ao),
9998c2ecf20Sopenharmony_ci	FUNCTION(pwm_ao_a),
10008c2ecf20Sopenharmony_ci	FUNCTION(pwm_ao_b),
10018c2ecf20Sopenharmony_ci	FUNCTION(pwm_ao_c),
10028c2ecf20Sopenharmony_ci	FUNCTION(pwm_ao_d),
10038c2ecf20Sopenharmony_ci	FUNCTION(jtag_ao),
10048c2ecf20Sopenharmony_ci	FUNCTION(gen_clk_ee),
10058c2ecf20Sopenharmony_ci};
10068c2ecf20Sopenharmony_ci
10078c2ecf20Sopenharmony_cistatic struct meson_bank meson_axg_periphs_banks[] = {
10088c2ecf20Sopenharmony_ci	/*   name    first      last       irq	     pullen  pull    dir     out     in  */
10098c2ecf20Sopenharmony_ci	BANK("Z",    GPIOZ_0,	GPIOZ_10, 14,  24, 3,  0,  3,  0,  9,  0,  10, 0,  11, 0),
10108c2ecf20Sopenharmony_ci	BANK("BOOT", BOOT_0,	BOOT_14,  25,  39, 4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
10118c2ecf20Sopenharmony_ci	BANK("A",    GPIOA_0,	GPIOA_20, 40,  60, 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
10128c2ecf20Sopenharmony_ci	BANK("X",    GPIOX_0,	GPIOX_22, 61,  83, 2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
10138c2ecf20Sopenharmony_ci	BANK("Y", 	 GPIOY_0,	GPIOY_15, 84,  99, 1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
10148c2ecf20Sopenharmony_ci};
10158c2ecf20Sopenharmony_ci
10168c2ecf20Sopenharmony_cistatic struct meson_bank meson_axg_aobus_banks[] = {
10178c2ecf20Sopenharmony_ci	/*   name    first      last      irq	pullen  pull    dir     out     in  */
10188c2ecf20Sopenharmony_ci	BANK("AO",   GPIOAO_0,  GPIOAO_13, 0, 13, 0,  16,  0, 0,  0,  0,  0, 16,  1,  0),
10198c2ecf20Sopenharmony_ci};
10208c2ecf20Sopenharmony_ci
10218c2ecf20Sopenharmony_cistatic struct meson_pmx_bank meson_axg_periphs_pmx_banks[] = {
10228c2ecf20Sopenharmony_ci	/*	 name	 first		lask	   reg	offset  */
10238c2ecf20Sopenharmony_ci	BANK_PMX("Z",	 GPIOZ_0, GPIOZ_10, 0x2, 0),
10248c2ecf20Sopenharmony_ci	BANK_PMX("BOOT", BOOT_0,  BOOT_14,  0x0, 0),
10258c2ecf20Sopenharmony_ci	BANK_PMX("A",	 GPIOA_0, GPIOA_20, 0xb, 0),
10268c2ecf20Sopenharmony_ci	BANK_PMX("X",	 GPIOX_0, GPIOX_22, 0x4, 0),
10278c2ecf20Sopenharmony_ci	BANK_PMX("Y",	 GPIOY_0, GPIOY_15, 0x8, 0),
10288c2ecf20Sopenharmony_ci};
10298c2ecf20Sopenharmony_ci
10308c2ecf20Sopenharmony_cistatic struct meson_axg_pmx_data meson_axg_periphs_pmx_banks_data = {
10318c2ecf20Sopenharmony_ci	.pmx_banks	= meson_axg_periphs_pmx_banks,
10328c2ecf20Sopenharmony_ci	.num_pmx_banks = ARRAY_SIZE(meson_axg_periphs_pmx_banks),
10338c2ecf20Sopenharmony_ci};
10348c2ecf20Sopenharmony_ci
10358c2ecf20Sopenharmony_cistatic struct meson_pmx_bank meson_axg_aobus_pmx_banks[] = {
10368c2ecf20Sopenharmony_ci	BANK_PMX("AO", GPIOAO_0, GPIOAO_13, 0x0, 0),
10378c2ecf20Sopenharmony_ci};
10388c2ecf20Sopenharmony_ci
10398c2ecf20Sopenharmony_cistatic struct meson_axg_pmx_data meson_axg_aobus_pmx_banks_data = {
10408c2ecf20Sopenharmony_ci	.pmx_banks	= meson_axg_aobus_pmx_banks,
10418c2ecf20Sopenharmony_ci	.num_pmx_banks = ARRAY_SIZE(meson_axg_aobus_pmx_banks),
10428c2ecf20Sopenharmony_ci};
10438c2ecf20Sopenharmony_ci
10448c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_axg_periphs_pinctrl_data = {
10458c2ecf20Sopenharmony_ci	.name		= "periphs-banks",
10468c2ecf20Sopenharmony_ci	.pins		= meson_axg_periphs_pins,
10478c2ecf20Sopenharmony_ci	.groups		= meson_axg_periphs_groups,
10488c2ecf20Sopenharmony_ci	.funcs		= meson_axg_periphs_functions,
10498c2ecf20Sopenharmony_ci	.banks		= meson_axg_periphs_banks,
10508c2ecf20Sopenharmony_ci	.num_pins	= ARRAY_SIZE(meson_axg_periphs_pins),
10518c2ecf20Sopenharmony_ci	.num_groups	= ARRAY_SIZE(meson_axg_periphs_groups),
10528c2ecf20Sopenharmony_ci	.num_funcs	= ARRAY_SIZE(meson_axg_periphs_functions),
10538c2ecf20Sopenharmony_ci	.num_banks	= ARRAY_SIZE(meson_axg_periphs_banks),
10548c2ecf20Sopenharmony_ci	.pmx_ops	= &meson_axg_pmx_ops,
10558c2ecf20Sopenharmony_ci	.pmx_data	= &meson_axg_periphs_pmx_banks_data,
10568c2ecf20Sopenharmony_ci};
10578c2ecf20Sopenharmony_ci
10588c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_axg_aobus_pinctrl_data = {
10598c2ecf20Sopenharmony_ci	.name		= "aobus-banks",
10608c2ecf20Sopenharmony_ci	.pins		= meson_axg_aobus_pins,
10618c2ecf20Sopenharmony_ci	.groups		= meson_axg_aobus_groups,
10628c2ecf20Sopenharmony_ci	.funcs		= meson_axg_aobus_functions,
10638c2ecf20Sopenharmony_ci	.banks		= meson_axg_aobus_banks,
10648c2ecf20Sopenharmony_ci	.num_pins	= ARRAY_SIZE(meson_axg_aobus_pins),
10658c2ecf20Sopenharmony_ci	.num_groups	= ARRAY_SIZE(meson_axg_aobus_groups),
10668c2ecf20Sopenharmony_ci	.num_funcs	= ARRAY_SIZE(meson_axg_aobus_functions),
10678c2ecf20Sopenharmony_ci	.num_banks	= ARRAY_SIZE(meson_axg_aobus_banks),
10688c2ecf20Sopenharmony_ci	.pmx_ops	= &meson_axg_pmx_ops,
10698c2ecf20Sopenharmony_ci	.pmx_data	= &meson_axg_aobus_pmx_banks_data,
10708c2ecf20Sopenharmony_ci	.parse_dt	= meson8_aobus_parse_dt_extra,
10718c2ecf20Sopenharmony_ci};
10728c2ecf20Sopenharmony_ci
10738c2ecf20Sopenharmony_cistatic const struct of_device_id meson_axg_pinctrl_dt_match[] = {
10748c2ecf20Sopenharmony_ci	{
10758c2ecf20Sopenharmony_ci		.compatible = "amlogic,meson-axg-periphs-pinctrl",
10768c2ecf20Sopenharmony_ci		.data = &meson_axg_periphs_pinctrl_data,
10778c2ecf20Sopenharmony_ci	},
10788c2ecf20Sopenharmony_ci	{
10798c2ecf20Sopenharmony_ci		.compatible = "amlogic,meson-axg-aobus-pinctrl",
10808c2ecf20Sopenharmony_ci		.data = &meson_axg_aobus_pinctrl_data,
10818c2ecf20Sopenharmony_ci	},
10828c2ecf20Sopenharmony_ci	{ },
10838c2ecf20Sopenharmony_ci};
10848c2ecf20Sopenharmony_ci
10858c2ecf20Sopenharmony_cistatic struct platform_driver meson_axg_pinctrl_driver = {
10868c2ecf20Sopenharmony_ci	.probe		= meson_pinctrl_probe,
10878c2ecf20Sopenharmony_ci	.driver = {
10888c2ecf20Sopenharmony_ci		.name	= "meson-axg-pinctrl",
10898c2ecf20Sopenharmony_ci		.of_match_table = meson_axg_pinctrl_dt_match,
10908c2ecf20Sopenharmony_ci	},
10918c2ecf20Sopenharmony_ci};
10928c2ecf20Sopenharmony_ci
10938c2ecf20Sopenharmony_cibuiltin_platform_driver(meson_axg_pinctrl_driver);
1094