18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Pin controller and GPIO driver for Amlogic Meson A1 SoC. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2019 Amlogic, Inc. All rights reserved. 68c2ecf20Sopenharmony_ci * Author: Qianggui Song <qianggui.song@amlogic.com> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-a1-gpio.h> 108c2ecf20Sopenharmony_ci#include "pinctrl-meson.h" 118c2ecf20Sopenharmony_ci#include "pinctrl-meson-axg-pmx.h" 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc meson_a1_periphs_pins[] = { 148c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_0), 158c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_1), 168c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_2), 178c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_3), 188c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_4), 198c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_5), 208c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_6), 218c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_7), 228c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_8), 238c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_9), 248c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_10), 258c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_11), 268c2ecf20Sopenharmony_ci MESON_PIN(GPIOP_12), 278c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_0), 288c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_1), 298c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_2), 308c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_3), 318c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_4), 328c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_5), 338c2ecf20Sopenharmony_ci MESON_PIN(GPIOB_6), 348c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_0), 358c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_1), 368c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_2), 378c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_3), 388c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_4), 398c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_5), 408c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_6), 418c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_7), 428c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_8), 438c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_9), 448c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_10), 458c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_11), 468c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_12), 478c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_13), 488c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_14), 498c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_15), 508c2ecf20Sopenharmony_ci MESON_PIN(GPIOX_16), 518c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_0), 528c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_1), 538c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_2), 548c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_3), 558c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_4), 568c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_5), 578c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_6), 588c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_7), 598c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_8), 608c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_9), 618c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_10), 628c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_11), 638c2ecf20Sopenharmony_ci MESON_PIN(GPIOF_12), 648c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_0), 658c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_1), 668c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_2), 678c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_3), 688c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_4), 698c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_5), 708c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_6), 718c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_7), 728c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_8), 738c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_9), 748c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_10), 758c2ecf20Sopenharmony_ci MESON_PIN(GPIOA_11), 768c2ecf20Sopenharmony_ci}; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci/* psram */ 798c2ecf20Sopenharmony_cistatic const unsigned int psram_clkn_pins[] = { GPIOP_0 }; 808c2ecf20Sopenharmony_cistatic const unsigned int psram_clkp_pins[] = { GPIOP_1 }; 818c2ecf20Sopenharmony_cistatic const unsigned int psram_ce_n_pins[] = { GPIOP_2 }; 828c2ecf20Sopenharmony_cistatic const unsigned int psram_rst_n_pins[] = { GPIOP_3 }; 838c2ecf20Sopenharmony_cistatic const unsigned int psram_adq0_pins[] = { GPIOP_4 }; 848c2ecf20Sopenharmony_cistatic const unsigned int psram_adq1_pins[] = { GPIOP_5 }; 858c2ecf20Sopenharmony_cistatic const unsigned int psram_adq2_pins[] = { GPIOP_6 }; 868c2ecf20Sopenharmony_cistatic const unsigned int psram_adq3_pins[] = { GPIOP_7 }; 878c2ecf20Sopenharmony_cistatic const unsigned int psram_adq4_pins[] = { GPIOP_8 }; 888c2ecf20Sopenharmony_cistatic const unsigned int psram_adq5_pins[] = { GPIOP_9 }; 898c2ecf20Sopenharmony_cistatic const unsigned int psram_adq6_pins[] = { GPIOP_10 }; 908c2ecf20Sopenharmony_cistatic const unsigned int psram_adq7_pins[] = { GPIOP_11 }; 918c2ecf20Sopenharmony_cistatic const unsigned int psram_dqs_dm_pins[] = { GPIOP_12 }; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci/* sdcard */ 948c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d0_b_pins[] = { GPIOB_0 }; 958c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d1_b_pins[] = { GPIOB_1 }; 968c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d2_b_pins[] = { GPIOB_2 }; 978c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d3_b_pins[] = { GPIOB_3 }; 988c2ecf20Sopenharmony_cistatic const unsigned int sdcard_clk_b_pins[] = { GPIOB_4 }; 998c2ecf20Sopenharmony_cistatic const unsigned int sdcard_cmd_b_pins[] = { GPIOB_5 }; 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d0_x_pins[] = { GPIOX_0 }; 1028c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d1_x_pins[] = { GPIOX_1 }; 1038c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d2_x_pins[] = { GPIOX_2 }; 1048c2ecf20Sopenharmony_cistatic const unsigned int sdcard_d3_x_pins[] = { GPIOX_3 }; 1058c2ecf20Sopenharmony_cistatic const unsigned int sdcard_clk_x_pins[] = { GPIOX_4 }; 1068c2ecf20Sopenharmony_cistatic const unsigned int sdcard_cmd_x_pins[] = { GPIOX_5 }; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci/* spif */ 1098c2ecf20Sopenharmony_cistatic const unsigned int spif_mo_pins[] = { GPIOB_0 }; 1108c2ecf20Sopenharmony_cistatic const unsigned int spif_mi_pins[] = { GPIOB_1 }; 1118c2ecf20Sopenharmony_cistatic const unsigned int spif_wp_n_pins[] = { GPIOB_2 }; 1128c2ecf20Sopenharmony_cistatic const unsigned int spif_hold_n_pins[] = { GPIOB_3 }; 1138c2ecf20Sopenharmony_cistatic const unsigned int spif_clk_pins[] = { GPIOB_4 }; 1148c2ecf20Sopenharmony_cistatic const unsigned int spif_cs_pins[] = { GPIOB_5 }; 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci/* i2c0 */ 1178c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_f9_pins[] = { GPIOF_9 }; 1188c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_f10_pins[] = { GPIOF_10 }; 1198c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sck_f11_pins[] = { GPIOF_11 }; 1208c2ecf20Sopenharmony_cistatic const unsigned int i2c0_sda_f12_pins[] = { GPIOF_12 }; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci/* i2c1 */ 1238c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_x_pins[] = { GPIOX_9 }; 1248c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_x_pins[] = { GPIOX_10 }; 1258c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sda_a_pins[] = { GPIOA_10 }; 1268c2ecf20Sopenharmony_cistatic const unsigned int i2c1_sck_a_pins[] = { GPIOA_11 }; 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci/* i2c2 */ 1298c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_x0_pins[] = { GPIOX_0 }; 1308c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_x1_pins[] = { GPIOX_1 }; 1318c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_x15_pins[] = { GPIOX_15 }; 1328c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_x16_pins[] = { GPIOX_16 }; 1338c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_a4_pins[] = { GPIOA_4 }; 1348c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_a5_pins[] = { GPIOA_5 }; 1358c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sck_a8_pins[] = { GPIOA_8 }; 1368c2ecf20Sopenharmony_cistatic const unsigned int i2c2_sda_a9_pins[] = { GPIOA_9 }; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci/* i2c3 */ 1398c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_f_pins[] = { GPIOF_4 }; 1408c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_f_pins[] = { GPIOF_5 }; 1418c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sck_x_pins[] = { GPIOX_11 }; 1428c2ecf20Sopenharmony_cistatic const unsigned int i2c3_sda_x_pins[] = { GPIOX_12 }; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci/* i2c slave */ 1458c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sck_a_pins[] = { GPIOA_10 }; 1468c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sda_a_pins[] = { GPIOA_11 }; 1478c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sck_f_pins[] = { GPIOF_11 }; 1488c2ecf20Sopenharmony_cistatic const unsigned int i2c_slave_sda_f_pins[] = { GPIOF_12 }; 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci/* uart_a */ 1518c2ecf20Sopenharmony_cistatic const unsigned int uart_a_tx_pins[] = { GPIOX_11 }; 1528c2ecf20Sopenharmony_cistatic const unsigned int uart_a_rx_pins[] = { GPIOX_12 }; 1538c2ecf20Sopenharmony_cistatic const unsigned int uart_a_cts_pins[] = { GPIOX_13 }; 1548c2ecf20Sopenharmony_cistatic const unsigned int uart_a_rts_pins[] = { GPIOX_14 }; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci/* uart_b */ 1578c2ecf20Sopenharmony_cistatic const unsigned int uart_b_tx_x_pins[] = { GPIOX_7 }; 1588c2ecf20Sopenharmony_cistatic const unsigned int uart_b_rx_x_pins[] = { GPIOX_8 }; 1598c2ecf20Sopenharmony_cistatic const unsigned int uart_b_tx_f_pins[] = { GPIOF_0 }; 1608c2ecf20Sopenharmony_cistatic const unsigned int uart_b_rx_f_pins[] = { GPIOF_1 }; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci/* uart_c */ 1638c2ecf20Sopenharmony_cistatic const unsigned int uart_c_tx_x0_pins[] = { GPIOX_0 }; 1648c2ecf20Sopenharmony_cistatic const unsigned int uart_c_rx_x1_pins[] = { GPIOX_1 }; 1658c2ecf20Sopenharmony_cistatic const unsigned int uart_c_cts_pins[] = { GPIOX_2 }; 1668c2ecf20Sopenharmony_cistatic const unsigned int uart_c_rts_pins[] = { GPIOX_3 }; 1678c2ecf20Sopenharmony_cistatic const unsigned int uart_c_tx_x15_pins[] = { GPIOX_15 }; 1688c2ecf20Sopenharmony_cistatic const unsigned int uart_c_rx_x16_pins[] = { GPIOX_16 }; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci/* pmw_a */ 1718c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_x6_pins[] = { GPIOX_6 }; 1728c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_x7_pins[] = { GPIOX_7 }; 1738c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_f6_pins[] = { GPIOF_6 }; 1748c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_f10_pins[] = { GPIOF_10 }; 1758c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_a_pins[] = { GPIOA_5 }; 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci/* pmw_b */ 1788c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_x_pins[] = { GPIOX_8 }; 1798c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_f_pins[] = { GPIOF_7 }; 1808c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_a_pins[] = { GPIOA_11 }; 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ci/* pmw_c */ 1838c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_x_pins[] = { GPIOX_9 }; 1848c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_f3_pins[] = { GPIOF_3 }; 1858c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_f8_pins[] = { GPIOF_8 }; 1868c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_a_pins[] = { GPIOA_10 }; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci/* pwm_d */ 1898c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x10_pins[] = { GPIOX_10 }; 1908c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x13_pins[] = { GPIOX_13 }; 1918c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_x15_pins[] = { GPIOX_15 }; 1928c2ecf20Sopenharmony_cistatic const unsigned int pwm_d_f_pins[] = { GPIOF_11 }; 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci/* pwm_e */ 1958c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_p_pins[] = { GPIOP_3 }; 1968c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_x2_pins[] = { GPIOX_2 }; 1978c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_x14_pins[] = { GPIOX_14 }; 1988c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_x16_pins[] = { GPIOX_16 }; 1998c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_f_pins[] = { GPIOF_3 }; 2008c2ecf20Sopenharmony_cistatic const unsigned int pwm_e_a_pins[] = { GPIOA_0 }; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci/* pwm_f */ 2038c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_b_pins[] = { GPIOB_6 }; 2048c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_x_pins[] = { GPIOX_3 }; 2058c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_f4_pins[] = { GPIOF_4 }; 2068c2ecf20Sopenharmony_cistatic const unsigned int pwm_f_f12_pins[] = { GPIOF_12 }; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci/* pwm_a_hiz */ 2098c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_hiz_f8_pins[] = { GPIOF_8 }; 2108c2ecf20Sopenharmony_cistatic const unsigned int pwm_a_hiz_f10_pins[] = { GPIOF_10 }; 2118c2ecf20Sopenharmony_cistatic const unsigned int pmw_a_hiz_f6_pins[] = { GPIOF_6 }; 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci/* pwm_b_hiz */ 2148c2ecf20Sopenharmony_cistatic const unsigned int pwm_b_hiz_pins[] = { GPIOF_7 }; 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci/* pmw_c_hiz */ 2178c2ecf20Sopenharmony_cistatic const unsigned int pwm_c_hiz_pins[] = { GPIOF_8 }; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci/* tdm_a */ 2208c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_dout1_pins[] = { GPIOX_7 }; 2218c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_dout0_pins[] = { GPIOX_8 }; 2228c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_fs_pins[] = { GPIOX_9 }; 2238c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_sclk_pins[] = { GPIOX_10 }; 2248c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_din1_pins[] = { GPIOX_7 }; 2258c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_din0_pins[] = { GPIOX_8 }; 2268c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_slv_fs_pins[] = { GPIOX_9 }; 2278c2ecf20Sopenharmony_cistatic const unsigned int tdm_a_slv_sclk_pins[] = { GPIOX_10 }; 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci/* spi_a */ 2308c2ecf20Sopenharmony_cistatic const unsigned int spi_a_mosi_x2_pins[] = { GPIOX_2 }; 2318c2ecf20Sopenharmony_cistatic const unsigned int spi_a_ss0_x3_pins[] = { GPIOX_3 }; 2328c2ecf20Sopenharmony_cistatic const unsigned int spi_a_sclk_x4_pins[] = { GPIOX_4 }; 2338c2ecf20Sopenharmony_cistatic const unsigned int spi_a_miso_x5_pins[] = { GPIOX_5 }; 2348c2ecf20Sopenharmony_cistatic const unsigned int spi_a_mosi_x7_pins[] = { GPIOX_7 }; 2358c2ecf20Sopenharmony_cistatic const unsigned int spi_a_miso_x8_pins[] = { GPIOX_8 }; 2368c2ecf20Sopenharmony_cistatic const unsigned int spi_a_ss0_x9_pins[] = { GPIOX_9 }; 2378c2ecf20Sopenharmony_cistatic const unsigned int spi_a_sclk_x10_pins[] = { GPIOX_10 }; 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_cistatic const unsigned int spi_a_mosi_a_pins[] = { GPIOA_6 }; 2408c2ecf20Sopenharmony_cistatic const unsigned int spi_a_miso_a_pins[] = { GPIOA_7 }; 2418c2ecf20Sopenharmony_cistatic const unsigned int spi_a_ss0_a_pins[] = { GPIOA_8 }; 2428c2ecf20Sopenharmony_cistatic const unsigned int spi_a_sclk_a_pins[] = { GPIOA_9 }; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci/* pdm */ 2458c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_x_pins[] = { GPIOX_7 }; 2468c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_x_pins[] = { GPIOX_8 }; 2478c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_x_pins[] = { GPIOX_9 }; 2488c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_x_pins[] = { GPIOX_10 }; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_cistatic const unsigned int pdm_din2_a_pins[] = { GPIOA_6 }; 2518c2ecf20Sopenharmony_cistatic const unsigned int pdm_din1_a_pins[] = { GPIOA_7 }; 2528c2ecf20Sopenharmony_cistatic const unsigned int pdm_din0_a_pins[] = { GPIOA_8 }; 2538c2ecf20Sopenharmony_cistatic const unsigned int pdm_dclk_pins[] = { GPIOA_9 }; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci/* gen_clk */ 2568c2ecf20Sopenharmony_cistatic const unsigned int gen_clk_x_pins[] = { GPIOX_7 }; 2578c2ecf20Sopenharmony_cistatic const unsigned int gen_clk_f8_pins[] = { GPIOF_8 }; 2588c2ecf20Sopenharmony_cistatic const unsigned int gen_clk_f10_pins[] = { GPIOF_10 }; 2598c2ecf20Sopenharmony_cistatic const unsigned int gen_clk_a_pins[] = { GPIOA_11 }; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci/* jtag_a */ 2628c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_clk_pins[] = { GPIOF_4 }; 2638c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tms_pins[] = { GPIOF_5 }; 2648c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tdi_pins[] = { GPIOF_6 }; 2658c2ecf20Sopenharmony_cistatic const unsigned int jtag_a_tdo_pins[] = { GPIOF_7 }; 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci/* clk_32_in */ 2688c2ecf20Sopenharmony_cistatic const unsigned int clk_32k_in_pins[] = { GPIOF_2 }; 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci/* ir in */ 2718c2ecf20Sopenharmony_cistatic const unsigned int remote_input_f_pins[] = { GPIOF_3 }; 2728c2ecf20Sopenharmony_cistatic const unsigned int remote_input_a_pins[] = { GPIOA_11 }; 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci/* ir out */ 2758c2ecf20Sopenharmony_cistatic const unsigned int remote_out_pins[] = { GPIOF_5 }; 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci/* spdif */ 2788c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_f6_pins[] = { GPIOF_6 }; 2798c2ecf20Sopenharmony_cistatic const unsigned int spdif_in_f7_pins[] = { GPIOF_7 }; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci/* sw */ 2828c2ecf20Sopenharmony_cistatic const unsigned int swclk_pins[] = { GPIOF_4 }; 2838c2ecf20Sopenharmony_cistatic const unsigned int swdio_pins[] = { GPIOF_5 }; 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci/* clk_25 */ 2868c2ecf20Sopenharmony_cistatic const unsigned int clk25_pins[] = { GPIOF_10 }; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci/* cec_a */ 2898c2ecf20Sopenharmony_cistatic const unsigned int cec_a_pins[] = { GPIOF_2 }; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci/* cec_b */ 2928c2ecf20Sopenharmony_cistatic const unsigned int cec_b_pins[] = { GPIOF_2 }; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci/* clk12_24 */ 2958c2ecf20Sopenharmony_cistatic const unsigned int clk12_24_pins[] = { GPIOF_10 }; 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci/* mclk_0 */ 2988c2ecf20Sopenharmony_cistatic const unsigned int mclk_0_pins[] = { GPIOA_0 }; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci/* tdm_b */ 3018c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_sclk_pins[] = { GPIOA_1 }; 3028c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_fs_pins[] = { GPIOA_2 }; 3038c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout0_pins[] = { GPIOA_3 }; 3048c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout1_pins[] = { GPIOA_4 }; 3058c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout2_pins[] = { GPIOA_5 }; 3068c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout3_pins[] = { GPIOA_6 }; 3078c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout4_pins[] = { GPIOA_7 }; 3088c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_dout5_pins[] = { GPIOA_8 }; 3098c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_slv_sclk_pins[] = { GPIOA_5 }; 3108c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_slv_fs_pins[] = { GPIOA_6 }; 3118c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din0_pins[] = { GPIOA_7 }; 3128c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din1_pins[] = { GPIOA_8 }; 3138c2ecf20Sopenharmony_cistatic const unsigned int tdm_b_din2_pins[] = { GPIOA_9 }; 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci/* mclk_vad */ 3168c2ecf20Sopenharmony_cistatic const unsigned int mclk_vad_pins[] = { GPIOA_0 }; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci/* tdm_vad */ 3198c2ecf20Sopenharmony_cistatic const unsigned int tdm_vad_sclk_a1_pins[] = { GPIOA_1 }; 3208c2ecf20Sopenharmony_cistatic const unsigned int tdm_vad_fs_a2_pins[] = { GPIOA_2 }; 3218c2ecf20Sopenharmony_cistatic const unsigned int tdm_vad_sclk_a5_pins[] = { GPIOA_5 }; 3228c2ecf20Sopenharmony_cistatic const unsigned int tdm_vad_fs_a6_pins[] = { GPIOA_6 }; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci/* tst_out */ 3258c2ecf20Sopenharmony_cistatic const unsigned int tst_out0_pins[] = { GPIOA_0 }; 3268c2ecf20Sopenharmony_cistatic const unsigned int tst_out1_pins[] = { GPIOA_1 }; 3278c2ecf20Sopenharmony_cistatic const unsigned int tst_out2_pins[] = { GPIOA_2 }; 3288c2ecf20Sopenharmony_cistatic const unsigned int tst_out3_pins[] = { GPIOA_3 }; 3298c2ecf20Sopenharmony_cistatic const unsigned int tst_out4_pins[] = { GPIOA_4 }; 3308c2ecf20Sopenharmony_cistatic const unsigned int tst_out5_pins[] = { GPIOA_5 }; 3318c2ecf20Sopenharmony_cistatic const unsigned int tst_out6_pins[] = { GPIOA_6 }; 3328c2ecf20Sopenharmony_cistatic const unsigned int tst_out7_pins[] = { GPIOA_7 }; 3338c2ecf20Sopenharmony_cistatic const unsigned int tst_out8_pins[] = { GPIOA_8 }; 3348c2ecf20Sopenharmony_cistatic const unsigned int tst_out9_pins[] = { GPIOA_9 }; 3358c2ecf20Sopenharmony_cistatic const unsigned int tst_out10_pins[] = { GPIOA_10 }; 3368c2ecf20Sopenharmony_cistatic const unsigned int tst_out11_pins[] = { GPIOA_11 }; 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci/* mute */ 3398c2ecf20Sopenharmony_cistatic const unsigned int mute_key_pins[] = { GPIOA_4 }; 3408c2ecf20Sopenharmony_cistatic const unsigned int mute_en_pins[] = { GPIOA_5 }; 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_cistatic struct meson_pmx_group meson_a1_periphs_groups[] = { 3438c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_0), 3448c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_1), 3458c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_2), 3468c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_3), 3478c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_4), 3488c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_5), 3498c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_6), 3508c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_7), 3518c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_8), 3528c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_9), 3538c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_10), 3548c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_11), 3558c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOP_12), 3568c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_0), 3578c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_1), 3588c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_2), 3598c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_3), 3608c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_4), 3618c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_5), 3628c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOB_6), 3638c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_0), 3648c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_1), 3658c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_2), 3668c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_3), 3678c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_4), 3688c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_5), 3698c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_6), 3708c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_7), 3718c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_8), 3728c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_9), 3738c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_10), 3748c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_11), 3758c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_12), 3768c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_13), 3778c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_14), 3788c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_15), 3798c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOX_16), 3808c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_0), 3818c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_1), 3828c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_2), 3838c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_3), 3848c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_4), 3858c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_5), 3868c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_6), 3878c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_7), 3888c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_8), 3898c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_9), 3908c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_10), 3918c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_11), 3928c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOF_12), 3938c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_0), 3948c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_1), 3958c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_2), 3968c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_3), 3978c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_4), 3988c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_5), 3998c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_6), 4008c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_7), 4018c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_8), 4028c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_9), 4038c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_10), 4048c2ecf20Sopenharmony_ci GPIO_GROUP(GPIOA_11), 4058c2ecf20Sopenharmony_ci 4068c2ecf20Sopenharmony_ci /* bank P func1 */ 4078c2ecf20Sopenharmony_ci GROUP(psram_clkn, 1), 4088c2ecf20Sopenharmony_ci GROUP(psram_clkp, 1), 4098c2ecf20Sopenharmony_ci GROUP(psram_ce_n, 1), 4108c2ecf20Sopenharmony_ci GROUP(psram_rst_n, 1), 4118c2ecf20Sopenharmony_ci GROUP(psram_adq0, 1), 4128c2ecf20Sopenharmony_ci GROUP(psram_adq1, 1), 4138c2ecf20Sopenharmony_ci GROUP(psram_adq2, 1), 4148c2ecf20Sopenharmony_ci GROUP(psram_adq3, 1), 4158c2ecf20Sopenharmony_ci GROUP(psram_adq4, 1), 4168c2ecf20Sopenharmony_ci GROUP(psram_adq5, 1), 4178c2ecf20Sopenharmony_ci GROUP(psram_adq6, 1), 4188c2ecf20Sopenharmony_ci GROUP(psram_adq7, 1), 4198c2ecf20Sopenharmony_ci GROUP(psram_dqs_dm, 1), 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ci /*bank P func2 */ 4228c2ecf20Sopenharmony_ci GROUP(pwm_e_p, 2), 4238c2ecf20Sopenharmony_ci 4248c2ecf20Sopenharmony_ci /*bank B func1 */ 4258c2ecf20Sopenharmony_ci GROUP(spif_mo, 1), 4268c2ecf20Sopenharmony_ci GROUP(spif_mi, 1), 4278c2ecf20Sopenharmony_ci GROUP(spif_wp_n, 1), 4288c2ecf20Sopenharmony_ci GROUP(spif_hold_n, 1), 4298c2ecf20Sopenharmony_ci GROUP(spif_clk, 1), 4308c2ecf20Sopenharmony_ci GROUP(spif_cs, 1), 4318c2ecf20Sopenharmony_ci GROUP(pwm_f_b, 1), 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci /*bank B func2 */ 4348c2ecf20Sopenharmony_ci GROUP(sdcard_d0_b, 2), 4358c2ecf20Sopenharmony_ci GROUP(sdcard_d1_b, 2), 4368c2ecf20Sopenharmony_ci GROUP(sdcard_d2_b, 2), 4378c2ecf20Sopenharmony_ci GROUP(sdcard_d3_b, 2), 4388c2ecf20Sopenharmony_ci GROUP(sdcard_clk_b, 2), 4398c2ecf20Sopenharmony_ci GROUP(sdcard_cmd_b, 2), 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ci /*bank X func1 */ 4428c2ecf20Sopenharmony_ci GROUP(sdcard_d0_x, 1), 4438c2ecf20Sopenharmony_ci GROUP(sdcard_d1_x, 1), 4448c2ecf20Sopenharmony_ci GROUP(sdcard_d2_x, 1), 4458c2ecf20Sopenharmony_ci GROUP(sdcard_d3_x, 1), 4468c2ecf20Sopenharmony_ci GROUP(sdcard_clk_x, 1), 4478c2ecf20Sopenharmony_ci GROUP(sdcard_cmd_x, 1), 4488c2ecf20Sopenharmony_ci GROUP(pwm_a_x6, 1), 4498c2ecf20Sopenharmony_ci GROUP(tdm_a_dout1, 1), 4508c2ecf20Sopenharmony_ci GROUP(tdm_a_dout0, 1), 4518c2ecf20Sopenharmony_ci GROUP(tdm_a_fs, 1), 4528c2ecf20Sopenharmony_ci GROUP(tdm_a_sclk, 1), 4538c2ecf20Sopenharmony_ci GROUP(uart_a_tx, 1), 4548c2ecf20Sopenharmony_ci GROUP(uart_a_rx, 1), 4558c2ecf20Sopenharmony_ci GROUP(uart_a_cts, 1), 4568c2ecf20Sopenharmony_ci GROUP(uart_a_rts, 1), 4578c2ecf20Sopenharmony_ci GROUP(pwm_d_x15, 1), 4588c2ecf20Sopenharmony_ci GROUP(pwm_e_x16, 1), 4598c2ecf20Sopenharmony_ci 4608c2ecf20Sopenharmony_ci /*bank X func2 */ 4618c2ecf20Sopenharmony_ci GROUP(i2c2_sck_x0, 2), 4628c2ecf20Sopenharmony_ci GROUP(i2c2_sda_x1, 2), 4638c2ecf20Sopenharmony_ci GROUP(spi_a_mosi_x2, 2), 4648c2ecf20Sopenharmony_ci GROUP(spi_a_ss0_x3, 2), 4658c2ecf20Sopenharmony_ci GROUP(spi_a_sclk_x4, 2), 4668c2ecf20Sopenharmony_ci GROUP(spi_a_miso_x5, 2), 4678c2ecf20Sopenharmony_ci GROUP(tdm_a_din1, 2), 4688c2ecf20Sopenharmony_ci GROUP(tdm_a_din0, 2), 4698c2ecf20Sopenharmony_ci GROUP(tdm_a_slv_fs, 2), 4708c2ecf20Sopenharmony_ci GROUP(tdm_a_slv_sclk, 2), 4718c2ecf20Sopenharmony_ci GROUP(i2c3_sck_x, 2), 4728c2ecf20Sopenharmony_ci GROUP(i2c3_sda_x, 2), 4738c2ecf20Sopenharmony_ci GROUP(pwm_d_x13, 2), 4748c2ecf20Sopenharmony_ci GROUP(pwm_e_x14, 2), 4758c2ecf20Sopenharmony_ci GROUP(i2c2_sck_x15, 2), 4768c2ecf20Sopenharmony_ci GROUP(i2c2_sda_x16, 2), 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ci /*bank X func3 */ 4798c2ecf20Sopenharmony_ci GROUP(uart_c_tx_x0, 3), 4808c2ecf20Sopenharmony_ci GROUP(uart_c_rx_x1, 3), 4818c2ecf20Sopenharmony_ci GROUP(uart_c_cts, 3), 4828c2ecf20Sopenharmony_ci GROUP(uart_c_rts, 3), 4838c2ecf20Sopenharmony_ci GROUP(pdm_din0_x, 3), 4848c2ecf20Sopenharmony_ci GROUP(pdm_din1_x, 3), 4858c2ecf20Sopenharmony_ci GROUP(pdm_din2_x, 3), 4868c2ecf20Sopenharmony_ci GROUP(pdm_dclk_x, 3), 4878c2ecf20Sopenharmony_ci GROUP(uart_c_tx_x15, 3), 4888c2ecf20Sopenharmony_ci GROUP(uart_c_rx_x16, 3), 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ci /*bank X func4 */ 4918c2ecf20Sopenharmony_ci GROUP(pwm_e_x2, 4), 4928c2ecf20Sopenharmony_ci GROUP(pwm_f_x, 4), 4938c2ecf20Sopenharmony_ci GROUP(spi_a_mosi_x7, 4), 4948c2ecf20Sopenharmony_ci GROUP(spi_a_miso_x8, 4), 4958c2ecf20Sopenharmony_ci GROUP(spi_a_ss0_x9, 4), 4968c2ecf20Sopenharmony_ci GROUP(spi_a_sclk_x10, 4), 4978c2ecf20Sopenharmony_ci 4988c2ecf20Sopenharmony_ci /*bank X func5 */ 4998c2ecf20Sopenharmony_ci GROUP(uart_b_tx_x, 5), 5008c2ecf20Sopenharmony_ci GROUP(uart_b_rx_x, 5), 5018c2ecf20Sopenharmony_ci GROUP(i2c1_sda_x, 5), 5028c2ecf20Sopenharmony_ci GROUP(i2c1_sck_x, 5), 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_ci /*bank X func6 */ 5058c2ecf20Sopenharmony_ci GROUP(pwm_a_x7, 6), 5068c2ecf20Sopenharmony_ci GROUP(pwm_b_x, 6), 5078c2ecf20Sopenharmony_ci GROUP(pwm_c_x, 6), 5088c2ecf20Sopenharmony_ci GROUP(pwm_d_x10, 6), 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci /*bank X func7 */ 5118c2ecf20Sopenharmony_ci GROUP(gen_clk_x, 7), 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_ci /*bank F func1 */ 5148c2ecf20Sopenharmony_ci GROUP(uart_b_tx_f, 1), 5158c2ecf20Sopenharmony_ci GROUP(uart_b_rx_f, 1), 5168c2ecf20Sopenharmony_ci GROUP(remote_input_f, 1), 5178c2ecf20Sopenharmony_ci GROUP(jtag_a_clk, 1), 5188c2ecf20Sopenharmony_ci GROUP(jtag_a_tms, 1), 5198c2ecf20Sopenharmony_ci GROUP(jtag_a_tdi, 1), 5208c2ecf20Sopenharmony_ci GROUP(jtag_a_tdo, 1), 5218c2ecf20Sopenharmony_ci GROUP(gen_clk_f8, 1), 5228c2ecf20Sopenharmony_ci GROUP(pwm_a_f10, 1), 5238c2ecf20Sopenharmony_ci GROUP(i2c0_sck_f11, 1), 5248c2ecf20Sopenharmony_ci GROUP(i2c0_sda_f12, 1), 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ci /*bank F func2 */ 5278c2ecf20Sopenharmony_ci GROUP(clk_32k_in, 2), 5288c2ecf20Sopenharmony_ci GROUP(pwm_e_f, 2), 5298c2ecf20Sopenharmony_ci GROUP(pwm_f_f4, 2), 5308c2ecf20Sopenharmony_ci GROUP(remote_out, 2), 5318c2ecf20Sopenharmony_ci GROUP(spdif_in_f6, 2), 5328c2ecf20Sopenharmony_ci GROUP(spdif_in_f7, 2), 5338c2ecf20Sopenharmony_ci GROUP(pwm_a_hiz_f8, 2), 5348c2ecf20Sopenharmony_ci GROUP(pwm_a_hiz_f10, 2), 5358c2ecf20Sopenharmony_ci GROUP(pwm_d_f, 2), 5368c2ecf20Sopenharmony_ci GROUP(pwm_f_f12, 2), 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_ci /*bank F func3 */ 5398c2ecf20Sopenharmony_ci GROUP(pwm_c_f3, 3), 5408c2ecf20Sopenharmony_ci GROUP(swclk, 3), 5418c2ecf20Sopenharmony_ci GROUP(swdio, 3), 5428c2ecf20Sopenharmony_ci GROUP(pwm_a_f6, 3), 5438c2ecf20Sopenharmony_ci GROUP(pwm_b_f, 3), 5448c2ecf20Sopenharmony_ci GROUP(pwm_c_f8, 3), 5458c2ecf20Sopenharmony_ci GROUP(clk25, 3), 5468c2ecf20Sopenharmony_ci GROUP(i2c_slave_sck_f, 3), 5478c2ecf20Sopenharmony_ci GROUP(i2c_slave_sda_f, 3), 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ci /*bank F func4 */ 5508c2ecf20Sopenharmony_ci GROUP(cec_a, 4), 5518c2ecf20Sopenharmony_ci GROUP(i2c3_sck_f, 4), 5528c2ecf20Sopenharmony_ci GROUP(i2c3_sda_f, 4), 5538c2ecf20Sopenharmony_ci GROUP(pmw_a_hiz_f6, 4), 5548c2ecf20Sopenharmony_ci GROUP(pwm_b_hiz, 4), 5558c2ecf20Sopenharmony_ci GROUP(pwm_c_hiz, 4), 5568c2ecf20Sopenharmony_ci GROUP(i2c0_sck_f9, 4), 5578c2ecf20Sopenharmony_ci GROUP(i2c0_sda_f10, 4), 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ci /*bank F func5 */ 5608c2ecf20Sopenharmony_ci GROUP(cec_b, 5), 5618c2ecf20Sopenharmony_ci GROUP(clk12_24, 5), 5628c2ecf20Sopenharmony_ci 5638c2ecf20Sopenharmony_ci /*bank F func7 */ 5648c2ecf20Sopenharmony_ci GROUP(gen_clk_f10, 7), 5658c2ecf20Sopenharmony_ci 5668c2ecf20Sopenharmony_ci /*bank A func1 */ 5678c2ecf20Sopenharmony_ci GROUP(mclk_0, 1), 5688c2ecf20Sopenharmony_ci GROUP(tdm_b_sclk, 1), 5698c2ecf20Sopenharmony_ci GROUP(tdm_b_fs, 1), 5708c2ecf20Sopenharmony_ci GROUP(tdm_b_dout0, 1), 5718c2ecf20Sopenharmony_ci GROUP(tdm_b_dout1, 1), 5728c2ecf20Sopenharmony_ci GROUP(tdm_b_dout2, 1), 5738c2ecf20Sopenharmony_ci GROUP(tdm_b_dout3, 1), 5748c2ecf20Sopenharmony_ci GROUP(tdm_b_dout4, 1), 5758c2ecf20Sopenharmony_ci GROUP(tdm_b_dout5, 1), 5768c2ecf20Sopenharmony_ci GROUP(remote_input_a, 1), 5778c2ecf20Sopenharmony_ci 5788c2ecf20Sopenharmony_ci /*bank A func2 */ 5798c2ecf20Sopenharmony_ci GROUP(pwm_e_a, 2), 5808c2ecf20Sopenharmony_ci GROUP(tdm_b_slv_sclk, 2), 5818c2ecf20Sopenharmony_ci GROUP(tdm_b_slv_fs, 2), 5828c2ecf20Sopenharmony_ci GROUP(tdm_b_din0, 2), 5838c2ecf20Sopenharmony_ci GROUP(tdm_b_din1, 2), 5848c2ecf20Sopenharmony_ci GROUP(tdm_b_din2, 2), 5858c2ecf20Sopenharmony_ci GROUP(i2c1_sda_a, 2), 5868c2ecf20Sopenharmony_ci GROUP(i2c1_sck_a, 2), 5878c2ecf20Sopenharmony_ci 5888c2ecf20Sopenharmony_ci /*bank A func3 */ 5898c2ecf20Sopenharmony_ci GROUP(i2c2_sck_a4, 3), 5908c2ecf20Sopenharmony_ci GROUP(i2c2_sda_a5, 3), 5918c2ecf20Sopenharmony_ci GROUP(pdm_din2_a, 3), 5928c2ecf20Sopenharmony_ci GROUP(pdm_din1_a, 3), 5938c2ecf20Sopenharmony_ci GROUP(pdm_din0_a, 3), 5948c2ecf20Sopenharmony_ci GROUP(pdm_dclk, 3), 5958c2ecf20Sopenharmony_ci GROUP(pwm_c_a, 3), 5968c2ecf20Sopenharmony_ci GROUP(pwm_b_a, 3), 5978c2ecf20Sopenharmony_ci 5988c2ecf20Sopenharmony_ci /*bank A func4 */ 5998c2ecf20Sopenharmony_ci GROUP(pwm_a_a, 4), 6008c2ecf20Sopenharmony_ci GROUP(spi_a_mosi_a, 4), 6018c2ecf20Sopenharmony_ci GROUP(spi_a_miso_a, 4), 6028c2ecf20Sopenharmony_ci GROUP(spi_a_ss0_a, 4), 6038c2ecf20Sopenharmony_ci GROUP(spi_a_sclk_a, 4), 6048c2ecf20Sopenharmony_ci GROUP(i2c_slave_sck_a, 4), 6058c2ecf20Sopenharmony_ci GROUP(i2c_slave_sda_a, 4), 6068c2ecf20Sopenharmony_ci 6078c2ecf20Sopenharmony_ci /*bank A func5 */ 6088c2ecf20Sopenharmony_ci GROUP(mclk_vad, 5), 6098c2ecf20Sopenharmony_ci GROUP(tdm_vad_sclk_a1, 5), 6108c2ecf20Sopenharmony_ci GROUP(tdm_vad_fs_a2, 5), 6118c2ecf20Sopenharmony_ci GROUP(tdm_vad_sclk_a5, 5), 6128c2ecf20Sopenharmony_ci GROUP(tdm_vad_fs_a6, 5), 6138c2ecf20Sopenharmony_ci GROUP(i2c2_sck_a8, 5), 6148c2ecf20Sopenharmony_ci GROUP(i2c2_sda_a9, 5), 6158c2ecf20Sopenharmony_ci 6168c2ecf20Sopenharmony_ci /*bank A func6 */ 6178c2ecf20Sopenharmony_ci GROUP(tst_out0, 6), 6188c2ecf20Sopenharmony_ci GROUP(tst_out1, 6), 6198c2ecf20Sopenharmony_ci GROUP(tst_out2, 6), 6208c2ecf20Sopenharmony_ci GROUP(tst_out3, 6), 6218c2ecf20Sopenharmony_ci GROUP(tst_out4, 6), 6228c2ecf20Sopenharmony_ci GROUP(tst_out5, 6), 6238c2ecf20Sopenharmony_ci GROUP(tst_out6, 6), 6248c2ecf20Sopenharmony_ci GROUP(tst_out7, 6), 6258c2ecf20Sopenharmony_ci GROUP(tst_out8, 6), 6268c2ecf20Sopenharmony_ci GROUP(tst_out9, 6), 6278c2ecf20Sopenharmony_ci GROUP(tst_out10, 6), 6288c2ecf20Sopenharmony_ci GROUP(tst_out11, 6), 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ci /*bank A func7 */ 6318c2ecf20Sopenharmony_ci GROUP(mute_key, 7), 6328c2ecf20Sopenharmony_ci GROUP(mute_en, 7), 6338c2ecf20Sopenharmony_ci GROUP(gen_clk_a, 7), 6348c2ecf20Sopenharmony_ci}; 6358c2ecf20Sopenharmony_ci 6368c2ecf20Sopenharmony_cistatic const char * const gpio_periphs_groups[] = { 6378c2ecf20Sopenharmony_ci "GPIOP_0", "GPIOP_1", "GPIOP_2", "GPIOP_3", "GPIOP_4", 6388c2ecf20Sopenharmony_ci "GPIOP_5", "GPIOP_6", "GPIOP_7", "GPIOP_8", "GPIOP_9", 6398c2ecf20Sopenharmony_ci "GPIOP_10", "GPIOP_11", "GPIOP_12", 6408c2ecf20Sopenharmony_ci 6418c2ecf20Sopenharmony_ci "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", 6428c2ecf20Sopenharmony_ci "GPIOB_5", "GPIOB_6", 6438c2ecf20Sopenharmony_ci 6448c2ecf20Sopenharmony_ci "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", 6458c2ecf20Sopenharmony_ci "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9", 6468c2ecf20Sopenharmony_ci "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14", 6478c2ecf20Sopenharmony_ci "GPIOX_15", "GPIOX_16", 6488c2ecf20Sopenharmony_ci 6498c2ecf20Sopenharmony_ci "GPIOF_0", "GPIOF_1", "GPIOF_2", "GPIOF_3", "GPIOF_4", 6508c2ecf20Sopenharmony_ci "GPIOF_5", "GPIOF_6", "GPIOF_7", "GPIOF_8", "GPIOF_9", 6518c2ecf20Sopenharmony_ci "GPIOF_10", "GPIOF_11", "GPIOF_12", 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_ci "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", 6548c2ecf20Sopenharmony_ci "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", 6558c2ecf20Sopenharmony_ci "GPIOA_10", "GPIOA_11", 6568c2ecf20Sopenharmony_ci}; 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_cistatic const char * const psram_groups[] = { 6598c2ecf20Sopenharmony_ci "psram_clkn", "psram_clkp", "psram_ce_n", "psram_rst_n", "psram_adq0", 6608c2ecf20Sopenharmony_ci "psram_adq1", "psram_adq2", "psram_adq3", "psram_adq4", "psram_adq5", 6618c2ecf20Sopenharmony_ci "psram_adq6", "psram_adq7", "psram_dqs_dm", 6628c2ecf20Sopenharmony_ci}; 6638c2ecf20Sopenharmony_ci 6648c2ecf20Sopenharmony_cistatic const char * const pwm_a_groups[] = { 6658c2ecf20Sopenharmony_ci "pwm_a_x6", "pwm_a_x7", "pwm_a_f10", "pwm_a_f6", "pwm_a_a", 6668c2ecf20Sopenharmony_ci}; 6678c2ecf20Sopenharmony_ci 6688c2ecf20Sopenharmony_cistatic const char * const pwm_b_groups[] = { 6698c2ecf20Sopenharmony_ci "pwm_b_x", "pwm_b_f", "pwm_b_a", 6708c2ecf20Sopenharmony_ci}; 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_cistatic const char * const pwm_c_groups[] = { 6738c2ecf20Sopenharmony_ci "pwm_c_x", "pwm_c_f3", "pwm_c_f8", "pwm_c_a", 6748c2ecf20Sopenharmony_ci}; 6758c2ecf20Sopenharmony_ci 6768c2ecf20Sopenharmony_cistatic const char * const pwm_d_groups[] = { 6778c2ecf20Sopenharmony_ci "pwm_d_x15", "pwm_d_x13", "pwm_d_x10", "pwm_d_f", 6788c2ecf20Sopenharmony_ci}; 6798c2ecf20Sopenharmony_ci 6808c2ecf20Sopenharmony_cistatic const char * const pwm_e_groups[] = { 6818c2ecf20Sopenharmony_ci "pwm_e_p", "pwm_e_x16", "pwm_e_x14", "pwm_e_x2", "pwm_e_f", 6828c2ecf20Sopenharmony_ci "pwm_e_a", 6838c2ecf20Sopenharmony_ci}; 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_cistatic const char * const pwm_f_groups[] = { 6868c2ecf20Sopenharmony_ci "pwm_f_b", "pwm_f_x", "pwm_f_f4", "pwm_f_f12", 6878c2ecf20Sopenharmony_ci}; 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_cistatic const char * const pwm_a_hiz_groups[] = { 6908c2ecf20Sopenharmony_ci "pwm_a_hiz_f8", "pwm_a_hiz_f10", "pwm_a_hiz_f6", 6918c2ecf20Sopenharmony_ci}; 6928c2ecf20Sopenharmony_ci 6938c2ecf20Sopenharmony_cistatic const char * const pwm_b_hiz_groups[] = { 6948c2ecf20Sopenharmony_ci "pwm_b_hiz", 6958c2ecf20Sopenharmony_ci}; 6968c2ecf20Sopenharmony_ci 6978c2ecf20Sopenharmony_cistatic const char * const pwm_c_hiz_groups[] = { 6988c2ecf20Sopenharmony_ci "pwm_c_hiz", 6998c2ecf20Sopenharmony_ci}; 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_cistatic const char * const spif_groups[] = { 7028c2ecf20Sopenharmony_ci "spif_mo", "spif_mi", "spif_wp_n", "spif_hold_n", "spif_clk", 7038c2ecf20Sopenharmony_ci "spif_cs", 7048c2ecf20Sopenharmony_ci}; 7058c2ecf20Sopenharmony_ci 7068c2ecf20Sopenharmony_cistatic const char * const sdcard_groups[] = { 7078c2ecf20Sopenharmony_ci "sdcard_d0_b", "sdcard_d1_b", "sdcard_d2_b", "sdcard_d3_b", 7088c2ecf20Sopenharmony_ci "sdcard_clk_b", "sdcard_cmd_b", 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_ci "sdcard_d0_x", "sdcard_d1_x", "sdcard_d2_x", "sdcard_d3_x", 7118c2ecf20Sopenharmony_ci "sdcard_clk_x", "sdcard_cmd_x", 7128c2ecf20Sopenharmony_ci}; 7138c2ecf20Sopenharmony_ci 7148c2ecf20Sopenharmony_cistatic const char * const tdm_a_groups[] = { 7158c2ecf20Sopenharmony_ci "tdm_a_din0", "tdm_a_din1", "tdm_a_fs", "tdm_a_sclk", 7168c2ecf20Sopenharmony_ci "tdm_a_slv_fs", "tdm_a_slv_sclk", "tdm_a_dout0", "tdm_a_dout1", 7178c2ecf20Sopenharmony_ci}; 7188c2ecf20Sopenharmony_ci 7198c2ecf20Sopenharmony_cistatic const char * const uart_a_groups[] = { 7208c2ecf20Sopenharmony_ci "uart_a_tx", "uart_a_rx", "uart_a_cts", "uart_a_rts", 7218c2ecf20Sopenharmony_ci}; 7228c2ecf20Sopenharmony_ci 7238c2ecf20Sopenharmony_cistatic const char * const uart_b_groups[] = { 7248c2ecf20Sopenharmony_ci "uart_b_tx_x", "uart_b_rx_x", "uart_b_tx_f", "uart_b_rx_f", 7258c2ecf20Sopenharmony_ci}; 7268c2ecf20Sopenharmony_ci 7278c2ecf20Sopenharmony_cistatic const char * const uart_c_groups[] = { 7288c2ecf20Sopenharmony_ci "uart_c_tx_x0", "uart_c_rx_x1", "uart_c_cts", "uart_c_rts", 7298c2ecf20Sopenharmony_ci "uart_c_tx_x15", "uart_c_rx_x16", 7308c2ecf20Sopenharmony_ci}; 7318c2ecf20Sopenharmony_ci 7328c2ecf20Sopenharmony_cistatic const char * const i2c0_groups[] = { 7338c2ecf20Sopenharmony_ci "i2c0_sck_f11", "i2c0_sda_f12", "i2c0_sck_f9", "i2c0_sda_f10", 7348c2ecf20Sopenharmony_ci}; 7358c2ecf20Sopenharmony_ci 7368c2ecf20Sopenharmony_cistatic const char * const i2c1_groups[] = { 7378c2ecf20Sopenharmony_ci "i2c1_sda_x", "i2c1_sck_x", "i2c1_sda_a", "i2c1_sck_a", 7388c2ecf20Sopenharmony_ci}; 7398c2ecf20Sopenharmony_ci 7408c2ecf20Sopenharmony_cistatic const char * const i2c2_groups[] = { 7418c2ecf20Sopenharmony_ci "i2c2_sck_x0", "i2c2_sda_x1", "i2c2_sck_x15", "i2c2_sda_x16", 7428c2ecf20Sopenharmony_ci "i2c2_sck_a4", "i2c2_sda_a5", "i2c2_sck_a8", "i2c2_sda_a9", 7438c2ecf20Sopenharmony_ci}; 7448c2ecf20Sopenharmony_ci 7458c2ecf20Sopenharmony_cistatic const char * const i2c3_groups[] = { 7468c2ecf20Sopenharmony_ci "i2c3_sck_x", "i2c3_sda_x", "i2c3_sck_f", "i2c3_sda_f", 7478c2ecf20Sopenharmony_ci}; 7488c2ecf20Sopenharmony_ci 7498c2ecf20Sopenharmony_cistatic const char * const spi_a_groups[] = { 7508c2ecf20Sopenharmony_ci "spi_a_mosi_x2", "spi_a_ss0_x3", "spi_a_sclk_x4", "spi_a_miso_x5", 7518c2ecf20Sopenharmony_ci "spi_a_mosi_x7", "spi_a_miso_x8", "spi_a_ss0_x9", "spi_a_sclk_x10", 7528c2ecf20Sopenharmony_ci 7538c2ecf20Sopenharmony_ci "spi_a_mosi_a", "spi_a_miso_a", "spi_a_ss0_a", "spi_a_sclk_a", 7548c2ecf20Sopenharmony_ci}; 7558c2ecf20Sopenharmony_ci 7568c2ecf20Sopenharmony_cistatic const char * const pdm_groups[] = { 7578c2ecf20Sopenharmony_ci "pdm_din0_x", "pdm_din1_x", "pdm_din2_x", "pdm_dclk_x", "pdm_din2_a", 7588c2ecf20Sopenharmony_ci "pdm_din1_a", "pdm_din0_a", "pdm_dclk", 7598c2ecf20Sopenharmony_ci}; 7608c2ecf20Sopenharmony_ci 7618c2ecf20Sopenharmony_cistatic const char * const gen_clk_groups[] = { 7628c2ecf20Sopenharmony_ci "gen_clk_x", "gen_clk_f8", "gen_clk_f10", "gen_clk_a", 7638c2ecf20Sopenharmony_ci}; 7648c2ecf20Sopenharmony_ci 7658c2ecf20Sopenharmony_cistatic const char * const remote_input_groups[] = { 7668c2ecf20Sopenharmony_ci "remote_input_f", 7678c2ecf20Sopenharmony_ci "remote_input_a", 7688c2ecf20Sopenharmony_ci}; 7698c2ecf20Sopenharmony_ci 7708c2ecf20Sopenharmony_cistatic const char * const jtag_a_groups[] = { 7718c2ecf20Sopenharmony_ci "jtag_a_clk", "jtag_a_tms", "jtag_a_tdi", "jtag_a_tdo", 7728c2ecf20Sopenharmony_ci}; 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_cistatic const char * const clk_32k_in_groups[] = { 7758c2ecf20Sopenharmony_ci "clk_32k_in", 7768c2ecf20Sopenharmony_ci}; 7778c2ecf20Sopenharmony_ci 7788c2ecf20Sopenharmony_cistatic const char * const remote_out_groups[] = { 7798c2ecf20Sopenharmony_ci "remote_out", 7808c2ecf20Sopenharmony_ci}; 7818c2ecf20Sopenharmony_ci 7828c2ecf20Sopenharmony_cistatic const char * const spdif_in_groups[] = { 7838c2ecf20Sopenharmony_ci "spdif_in_f6", "spdif_in_f7", 7848c2ecf20Sopenharmony_ci}; 7858c2ecf20Sopenharmony_ci 7868c2ecf20Sopenharmony_cistatic const char * const sw_groups[] = { 7878c2ecf20Sopenharmony_ci "swclk", "swdio", 7888c2ecf20Sopenharmony_ci}; 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_cistatic const char * const clk25_groups[] = { 7918c2ecf20Sopenharmony_ci "clk_25", 7928c2ecf20Sopenharmony_ci}; 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_cistatic const char * const cec_a_groups[] = { 7958c2ecf20Sopenharmony_ci "cec_a", 7968c2ecf20Sopenharmony_ci}; 7978c2ecf20Sopenharmony_ci 7988c2ecf20Sopenharmony_cistatic const char * const cec_b_groups[] = { 7998c2ecf20Sopenharmony_ci "cec_b", 8008c2ecf20Sopenharmony_ci}; 8018c2ecf20Sopenharmony_ci 8028c2ecf20Sopenharmony_cistatic const char * const clk12_24_groups[] = { 8038c2ecf20Sopenharmony_ci "clk12_24", 8048c2ecf20Sopenharmony_ci}; 8058c2ecf20Sopenharmony_ci 8068c2ecf20Sopenharmony_cistatic const char * const mclk_0_groups[] = { 8078c2ecf20Sopenharmony_ci "mclk_0", 8088c2ecf20Sopenharmony_ci}; 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_cistatic const char * const tdm_b_groups[] = { 8118c2ecf20Sopenharmony_ci "tdm_b_din0", "tdm_b_din1", "tdm_b_din2", 8128c2ecf20Sopenharmony_ci "tdm_b_sclk", "tdm_b_fs", "tdm_b_dout0", "tdm_b_dout1", 8138c2ecf20Sopenharmony_ci "tdm_b_dout2", "tdm_b_dout3", "tdm_b_dout4", "tdm_b_dout5", 8148c2ecf20Sopenharmony_ci "tdm_b_slv_sclk", "tdm_b_slv_fs", 8158c2ecf20Sopenharmony_ci}; 8168c2ecf20Sopenharmony_ci 8178c2ecf20Sopenharmony_cistatic const char * const mclk_vad_groups[] = { 8188c2ecf20Sopenharmony_ci "mclk_vad", 8198c2ecf20Sopenharmony_ci}; 8208c2ecf20Sopenharmony_ci 8218c2ecf20Sopenharmony_cistatic const char * const tdm_vad_groups[] = { 8228c2ecf20Sopenharmony_ci "tdm_vad_sclk_a1", "tdm_vad_fs_a2", "tdm_vad_sclk_a5", "tdm_vad_fs_a6", 8238c2ecf20Sopenharmony_ci}; 8248c2ecf20Sopenharmony_ci 8258c2ecf20Sopenharmony_cistatic const char * const tst_out_groups[] = { 8268c2ecf20Sopenharmony_ci "tst_out0", "tst_out1", "tst_out2", "tst_out3", 8278c2ecf20Sopenharmony_ci "tst_out4", "tst_out5", "tst_out6", "tst_out7", 8288c2ecf20Sopenharmony_ci "tst_out8", "tst_out9", "tst_out10", "tst_out11", 8298c2ecf20Sopenharmony_ci}; 8308c2ecf20Sopenharmony_ci 8318c2ecf20Sopenharmony_cistatic const char * const mute_groups[] = { 8328c2ecf20Sopenharmony_ci "mute_key", "mute_en", 8338c2ecf20Sopenharmony_ci}; 8348c2ecf20Sopenharmony_ci 8358c2ecf20Sopenharmony_cistatic struct meson_pmx_func meson_a1_periphs_functions[] = { 8368c2ecf20Sopenharmony_ci FUNCTION(gpio_periphs), 8378c2ecf20Sopenharmony_ci FUNCTION(psram), 8388c2ecf20Sopenharmony_ci FUNCTION(pwm_a), 8398c2ecf20Sopenharmony_ci FUNCTION(pwm_b), 8408c2ecf20Sopenharmony_ci FUNCTION(pwm_c), 8418c2ecf20Sopenharmony_ci FUNCTION(pwm_d), 8428c2ecf20Sopenharmony_ci FUNCTION(pwm_e), 8438c2ecf20Sopenharmony_ci FUNCTION(pwm_f), 8448c2ecf20Sopenharmony_ci FUNCTION(pwm_a_hiz), 8458c2ecf20Sopenharmony_ci FUNCTION(pwm_b_hiz), 8468c2ecf20Sopenharmony_ci FUNCTION(pwm_c_hiz), 8478c2ecf20Sopenharmony_ci FUNCTION(spif), 8488c2ecf20Sopenharmony_ci FUNCTION(sdcard), 8498c2ecf20Sopenharmony_ci FUNCTION(tdm_a), 8508c2ecf20Sopenharmony_ci FUNCTION(uart_a), 8518c2ecf20Sopenharmony_ci FUNCTION(uart_b), 8528c2ecf20Sopenharmony_ci FUNCTION(uart_c), 8538c2ecf20Sopenharmony_ci FUNCTION(i2c0), 8548c2ecf20Sopenharmony_ci FUNCTION(i2c1), 8558c2ecf20Sopenharmony_ci FUNCTION(i2c2), 8568c2ecf20Sopenharmony_ci FUNCTION(i2c3), 8578c2ecf20Sopenharmony_ci FUNCTION(spi_a), 8588c2ecf20Sopenharmony_ci FUNCTION(pdm), 8598c2ecf20Sopenharmony_ci FUNCTION(gen_clk), 8608c2ecf20Sopenharmony_ci FUNCTION(remote_input), 8618c2ecf20Sopenharmony_ci FUNCTION(jtag_a), 8628c2ecf20Sopenharmony_ci FUNCTION(clk_32k_in), 8638c2ecf20Sopenharmony_ci FUNCTION(remote_out), 8648c2ecf20Sopenharmony_ci FUNCTION(spdif_in), 8658c2ecf20Sopenharmony_ci FUNCTION(sw), 8668c2ecf20Sopenharmony_ci FUNCTION(clk25), 8678c2ecf20Sopenharmony_ci FUNCTION(cec_a), 8688c2ecf20Sopenharmony_ci FUNCTION(cec_b), 8698c2ecf20Sopenharmony_ci FUNCTION(clk12_24), 8708c2ecf20Sopenharmony_ci FUNCTION(mclk_0), 8718c2ecf20Sopenharmony_ci FUNCTION(tdm_b), 8728c2ecf20Sopenharmony_ci FUNCTION(mclk_vad), 8738c2ecf20Sopenharmony_ci FUNCTION(tdm_vad), 8748c2ecf20Sopenharmony_ci FUNCTION(tst_out), 8758c2ecf20Sopenharmony_ci FUNCTION(mute), 8768c2ecf20Sopenharmony_ci}; 8778c2ecf20Sopenharmony_ci 8788c2ecf20Sopenharmony_cistatic struct meson_bank meson_a1_periphs_banks[] = { 8798c2ecf20Sopenharmony_ci /* name first last irq pullen pull dir out in ds*/ 8808c2ecf20Sopenharmony_ci BANK_DS("P", GPIOP_0, GPIOP_12, 0, 12, 0x3, 0, 0x4, 0, 8818c2ecf20Sopenharmony_ci 0x2, 0, 0x1, 0, 0x0, 0, 0x5, 0), 8828c2ecf20Sopenharmony_ci BANK_DS("B", GPIOB_0, GPIOB_6, 13, 19, 0x13, 0, 0x14, 0, 8838c2ecf20Sopenharmony_ci 0x12, 0, 0x11, 0, 0x10, 0, 0x15, 0), 8848c2ecf20Sopenharmony_ci BANK_DS("X", GPIOX_0, GPIOX_16, 20, 36, 0x23, 0, 0x24, 0, 8858c2ecf20Sopenharmony_ci 0x22, 0, 0x21, 0, 0x20, 0, 0x25, 0), 8868c2ecf20Sopenharmony_ci BANK_DS("F", GPIOF_0, GPIOF_12, 37, 49, 0x33, 0, 0x34, 0, 8878c2ecf20Sopenharmony_ci 0x32, 0, 0x31, 0, 0x30, 0, 0x35, 0), 8888c2ecf20Sopenharmony_ci BANK_DS("A", GPIOA_0, GPIOA_11, 50, 61, 0x43, 0, 0x44, 0, 8898c2ecf20Sopenharmony_ci 0x42, 0, 0x41, 0, 0x40, 0, 0x45, 0), 8908c2ecf20Sopenharmony_ci}; 8918c2ecf20Sopenharmony_ci 8928c2ecf20Sopenharmony_cistatic struct meson_pmx_bank meson_a1_periphs_pmx_banks[] = { 8938c2ecf20Sopenharmony_ci /* name first lask reg offset */ 8948c2ecf20Sopenharmony_ci BANK_PMX("P", GPIOP_0, GPIOP_12, 0x0, 0), 8958c2ecf20Sopenharmony_ci BANK_PMX("B", GPIOB_0, GPIOB_6, 0x2, 0), 8968c2ecf20Sopenharmony_ci BANK_PMX("X", GPIOX_0, GPIOX_16, 0x3, 0), 8978c2ecf20Sopenharmony_ci BANK_PMX("F", GPIOF_0, GPIOF_12, 0x6, 0), 8988c2ecf20Sopenharmony_ci BANK_PMX("A", GPIOA_0, GPIOA_11, 0x8, 0), 8998c2ecf20Sopenharmony_ci}; 9008c2ecf20Sopenharmony_ci 9018c2ecf20Sopenharmony_cistatic struct meson_axg_pmx_data meson_a1_periphs_pmx_banks_data = { 9028c2ecf20Sopenharmony_ci .pmx_banks = meson_a1_periphs_pmx_banks, 9038c2ecf20Sopenharmony_ci .num_pmx_banks = ARRAY_SIZE(meson_a1_periphs_pmx_banks), 9048c2ecf20Sopenharmony_ci}; 9058c2ecf20Sopenharmony_ci 9068c2ecf20Sopenharmony_cistatic struct meson_pinctrl_data meson_a1_periphs_pinctrl_data = { 9078c2ecf20Sopenharmony_ci .name = "periphs-banks", 9088c2ecf20Sopenharmony_ci .pins = meson_a1_periphs_pins, 9098c2ecf20Sopenharmony_ci .groups = meson_a1_periphs_groups, 9108c2ecf20Sopenharmony_ci .funcs = meson_a1_periphs_functions, 9118c2ecf20Sopenharmony_ci .banks = meson_a1_periphs_banks, 9128c2ecf20Sopenharmony_ci .num_pins = ARRAY_SIZE(meson_a1_periphs_pins), 9138c2ecf20Sopenharmony_ci .num_groups = ARRAY_SIZE(meson_a1_periphs_groups), 9148c2ecf20Sopenharmony_ci .num_funcs = ARRAY_SIZE(meson_a1_periphs_functions), 9158c2ecf20Sopenharmony_ci .num_banks = ARRAY_SIZE(meson_a1_periphs_banks), 9168c2ecf20Sopenharmony_ci .pmx_ops = &meson_axg_pmx_ops, 9178c2ecf20Sopenharmony_ci .pmx_data = &meson_a1_periphs_pmx_banks_data, 9188c2ecf20Sopenharmony_ci .parse_dt = &meson_a1_parse_dt_extra, 9198c2ecf20Sopenharmony_ci}; 9208c2ecf20Sopenharmony_ci 9218c2ecf20Sopenharmony_cistatic const struct of_device_id meson_a1_pinctrl_dt_match[] = { 9228c2ecf20Sopenharmony_ci { 9238c2ecf20Sopenharmony_ci .compatible = "amlogic,meson-a1-periphs-pinctrl", 9248c2ecf20Sopenharmony_ci .data = &meson_a1_periphs_pinctrl_data, 9258c2ecf20Sopenharmony_ci }, 9268c2ecf20Sopenharmony_ci { }, 9278c2ecf20Sopenharmony_ci}; 9288c2ecf20Sopenharmony_ci 9298c2ecf20Sopenharmony_cistatic struct platform_driver meson_a1_pinctrl_driver = { 9308c2ecf20Sopenharmony_ci .probe = meson_pinctrl_probe, 9318c2ecf20Sopenharmony_ci .driver = { 9328c2ecf20Sopenharmony_ci .name = "meson-a1-pinctrl", 9338c2ecf20Sopenharmony_ci .of_match_table = meson_a1_pinctrl_dt_match, 9348c2ecf20Sopenharmony_ci }, 9358c2ecf20Sopenharmony_ci}; 9368c2ecf20Sopenharmony_ci 9378c2ecf20Sopenharmony_cibuiltin_platform_driver(meson_a1_pinctrl_driver); 938