^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Pin controller and GPIO driver for Amlogic Meson GXL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Copyright (C) 2016 Endless Mobile, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Author: Carlo Caione <carlo@endlessm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <dt-bindings/gpio/meson-gxl-gpio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include "pinctrl-meson.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include "pinctrl-meson8-pmx.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) static const struct pinctrl_pin_desc meson_gxl_periphs_pins[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) MESON_PIN(GPIOZ_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) MESON_PIN(GPIOZ_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) MESON_PIN(GPIOZ_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) MESON_PIN(GPIOZ_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) MESON_PIN(GPIOZ_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) MESON_PIN(GPIOZ_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) MESON_PIN(GPIOZ_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) MESON_PIN(GPIOZ_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) MESON_PIN(GPIOZ_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) MESON_PIN(GPIOZ_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) MESON_PIN(GPIOZ_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) MESON_PIN(GPIOZ_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) MESON_PIN(GPIOZ_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) MESON_PIN(GPIOZ_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) MESON_PIN(GPIOZ_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) MESON_PIN(GPIOZ_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) MESON_PIN(GPIOH_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) MESON_PIN(GPIOH_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) MESON_PIN(GPIOH_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) MESON_PIN(GPIOH_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) MESON_PIN(GPIOH_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) MESON_PIN(GPIOH_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) MESON_PIN(GPIOH_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) MESON_PIN(GPIOH_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) MESON_PIN(GPIOH_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) MESON_PIN(GPIOH_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) MESON_PIN(BOOT_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) MESON_PIN(BOOT_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) MESON_PIN(BOOT_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) MESON_PIN(BOOT_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) MESON_PIN(BOOT_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) MESON_PIN(BOOT_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) MESON_PIN(BOOT_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) MESON_PIN(BOOT_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) MESON_PIN(BOOT_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) MESON_PIN(BOOT_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) MESON_PIN(BOOT_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) MESON_PIN(BOOT_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) MESON_PIN(BOOT_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) MESON_PIN(BOOT_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) MESON_PIN(BOOT_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) MESON_PIN(BOOT_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) MESON_PIN(CARD_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) MESON_PIN(CARD_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) MESON_PIN(CARD_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) MESON_PIN(CARD_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) MESON_PIN(CARD_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) MESON_PIN(CARD_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) MESON_PIN(CARD_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) MESON_PIN(GPIODV_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) MESON_PIN(GPIODV_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) MESON_PIN(GPIODV_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) MESON_PIN(GPIODV_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) MESON_PIN(GPIODV_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) MESON_PIN(GPIODV_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) MESON_PIN(GPIODV_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) MESON_PIN(GPIODV_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) MESON_PIN(GPIODV_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) MESON_PIN(GPIODV_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) MESON_PIN(GPIODV_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) MESON_PIN(GPIODV_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) MESON_PIN(GPIODV_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) MESON_PIN(GPIODV_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) MESON_PIN(GPIODV_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) MESON_PIN(GPIODV_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) MESON_PIN(GPIODV_16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) MESON_PIN(GPIODV_17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) MESON_PIN(GPIODV_18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) MESON_PIN(GPIODV_19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) MESON_PIN(GPIODV_20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) MESON_PIN(GPIODV_21),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) MESON_PIN(GPIODV_22),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) MESON_PIN(GPIODV_23),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) MESON_PIN(GPIODV_24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) MESON_PIN(GPIODV_25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) MESON_PIN(GPIODV_26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) MESON_PIN(GPIODV_27),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) MESON_PIN(GPIODV_28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) MESON_PIN(GPIODV_29),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) MESON_PIN(GPIOX_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) MESON_PIN(GPIOX_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) MESON_PIN(GPIOX_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) MESON_PIN(GPIOX_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) MESON_PIN(GPIOX_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) MESON_PIN(GPIOX_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) MESON_PIN(GPIOX_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) MESON_PIN(GPIOX_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) MESON_PIN(GPIOX_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) MESON_PIN(GPIOX_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) MESON_PIN(GPIOX_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) MESON_PIN(GPIOX_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) MESON_PIN(GPIOX_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) MESON_PIN(GPIOX_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) MESON_PIN(GPIOX_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) MESON_PIN(GPIOX_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) MESON_PIN(GPIOX_16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) MESON_PIN(GPIOX_17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) MESON_PIN(GPIOX_18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) MESON_PIN(GPIOCLK_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) MESON_PIN(GPIOCLK_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) static const unsigned int emmc_nand_d07_pins[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) BOOT_0, BOOT_1, BOOT_2, BOOT_3, BOOT_4, BOOT_5, BOOT_6, BOOT_7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) static const unsigned int emmc_clk_pins[] = { BOOT_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) static const unsigned int emmc_cmd_pins[] = { BOOT_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) static const unsigned int emmc_ds_pins[] = { BOOT_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) static const unsigned int nor_d_pins[] = { BOOT_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) static const unsigned int nor_q_pins[] = { BOOT_12 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) static const unsigned int nor_c_pins[] = { BOOT_13 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) static const unsigned int nor_cs_pins[] = { BOOT_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) static const unsigned int spi_mosi_pins[] = { GPIOX_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) static const unsigned int spi_miso_pins[] = { GPIOX_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) static const unsigned int spi_ss0_pins[] = { GPIOX_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) static const unsigned int spi_sclk_pins[] = { GPIOX_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) static const unsigned int sdcard_d0_pins[] = { CARD_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) static const unsigned int sdcard_d1_pins[] = { CARD_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) static const unsigned int sdcard_d2_pins[] = { CARD_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) static const unsigned int sdcard_d3_pins[] = { CARD_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) static const unsigned int sdcard_cmd_pins[] = { CARD_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) static const unsigned int sdcard_clk_pins[] = { CARD_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) static const unsigned int sdio_d0_pins[] = { GPIOX_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) static const unsigned int sdio_d1_pins[] = { GPIOX_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) static const unsigned int sdio_d2_pins[] = { GPIOX_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) static const unsigned int sdio_d3_pins[] = { GPIOX_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) static const unsigned int sdio_clk_pins[] = { GPIOX_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) static const unsigned int sdio_cmd_pins[] = { GPIOX_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) static const unsigned int sdio_irq_pins[] = { GPIOX_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) static const unsigned int nand_ce0_pins[] = { BOOT_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) static const unsigned int nand_ce1_pins[] = { BOOT_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) static const unsigned int nand_rb0_pins[] = { BOOT_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) static const unsigned int nand_ale_pins[] = { BOOT_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) static const unsigned int nand_cle_pins[] = { BOOT_12 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) static const unsigned int nand_wen_clk_pins[] = { BOOT_13 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) static const unsigned int nand_ren_wr_pins[] = { BOOT_14 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) static const unsigned int nand_dqs_pins[] = { BOOT_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) static const unsigned int uart_tx_a_pins[] = { GPIOX_12 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) static const unsigned int uart_rx_a_pins[] = { GPIOX_13 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) static const unsigned int uart_cts_a_pins[] = { GPIOX_14 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) static const unsigned int uart_rts_a_pins[] = { GPIOX_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) static const unsigned int uart_tx_b_pins[] = { GPIODV_24 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) static const unsigned int uart_rx_b_pins[] = { GPIODV_25 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) static const unsigned int uart_cts_b_pins[] = { GPIODV_26 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) static const unsigned int uart_rts_b_pins[] = { GPIODV_27 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) static const unsigned int uart_tx_c_pins[] = { GPIOX_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) static const unsigned int uart_rx_c_pins[] = { GPIOX_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) static const unsigned int uart_cts_c_pins[] = { GPIOX_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) static const unsigned int uart_rts_c_pins[] = { GPIOX_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) static const unsigned int i2c_sck_a_pins[] = { GPIODV_25 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) static const unsigned int i2c_sda_a_pins[] = { GPIODV_24 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) static const unsigned int i2c_sck_b_pins[] = { GPIODV_27 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) static const unsigned int i2c_sda_b_pins[] = { GPIODV_26 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) static const unsigned int i2c_sck_c_pins[] = { GPIODV_29 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) static const unsigned int i2c_sda_c_pins[] = { GPIODV_28 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) static const unsigned int i2c_sck_c_dv19_pins[] = { GPIODV_19 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) static const unsigned int i2c_sda_c_dv18_pins[] = { GPIODV_18 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) static const unsigned int eth_mdio_pins[] = { GPIOZ_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) static const unsigned int eth_mdc_pins[] = { GPIOZ_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) static const unsigned int eth_clk_rx_clk_pins[] = { GPIOZ_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) static const unsigned int eth_rx_dv_pins[] = { GPIOZ_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) static const unsigned int eth_rxd0_pins[] = { GPIOZ_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) static const unsigned int eth_rxd1_pins[] = { GPIOZ_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) static const unsigned int eth_rxd2_pins[] = { GPIOZ_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) static const unsigned int eth_rxd3_pins[] = { GPIOZ_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) static const unsigned int eth_rgmii_tx_clk_pins[] = { GPIOZ_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) static const unsigned int eth_tx_en_pins[] = { GPIOZ_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) static const unsigned int eth_txd0_pins[] = { GPIOZ_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) static const unsigned int eth_txd1_pins[] = { GPIOZ_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) static const unsigned int eth_txd2_pins[] = { GPIOZ_12 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) static const unsigned int eth_txd3_pins[] = { GPIOZ_13 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) static const unsigned int pwm_a_pins[] = { GPIOX_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) static const unsigned int pwm_b_pins[] = { GPIODV_29 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) static const unsigned int pwm_c_pins[] = { GPIOZ_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) static const unsigned int pwm_d_pins[] = { GPIODV_28 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) static const unsigned int pwm_e_pins[] = { GPIOX_16 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) static const unsigned int pwm_f_clk_pins[] = { GPIOCLK_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) static const unsigned int pwm_f_x_pins[] = { GPIOX_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) static const unsigned int hdmi_hpd_pins[] = { GPIOH_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) static const unsigned int hdmi_sda_pins[] = { GPIOH_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) static const unsigned int hdmi_scl_pins[] = { GPIOH_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) static const unsigned int i2s_am_clk_pins[] = { GPIOH_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) static const unsigned int i2s_out_ao_clk_pins[] = { GPIOH_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) static const unsigned int i2s_out_lr_clk_pins[] = { GPIOH_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) static const unsigned int i2s_out_ch01_pins[] = { GPIOH_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) static const unsigned int i2s_out_ch23_z_pins[] = { GPIOZ_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) static const unsigned int i2s_out_ch45_z_pins[] = { GPIOZ_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) static const unsigned int i2s_out_ch67_z_pins[] = { GPIOZ_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) static const unsigned int spdif_out_h_pins[] = { GPIOH_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) static const unsigned int eth_link_led_pins[] = { GPIOZ_14 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) static const unsigned int tsin_a_d0_pins[] = { GPIODV_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) static const unsigned int tsin_a_clk_pins[] = { GPIODV_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) static const unsigned int tsin_a_sop_pins[] = { GPIODV_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) static const unsigned int tsin_a_d_valid_pins[] = { GPIODV_10 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) static const unsigned int tsin_a_fail_pins[] = { GPIODV_11 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) static const unsigned int tsin_a_dp_pins[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) GPIODV_1, GPIODV_2, GPIODV_3, GPIODV_4, GPIODV_5, GPIODV_6, GPIODV_7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) static const unsigned int tsin_b_clk_pins[] = { GPIOH_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) static const unsigned int tsin_b_d0_pins[] = { GPIOH_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) static const unsigned int tsin_b_sop_pins[] = { GPIOH_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) static const unsigned int tsin_b_d_valid_pins[] = { GPIOH_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) static const unsigned int tsin_b_fail_z4_pins[] = { GPIOZ_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) static const unsigned int tsin_b_clk_z3_pins[] = { GPIOZ_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) static const unsigned int tsin_b_d0_z2_pins[] = { GPIOZ_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) static const unsigned int tsin_b_sop_z1_pins[] = { GPIOZ_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) static const unsigned int tsin_b_d_valid_z0_pins[] = { GPIOZ_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) static const struct pinctrl_pin_desc meson_gxl_aobus_pins[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) MESON_PIN(GPIOAO_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) MESON_PIN(GPIOAO_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) MESON_PIN(GPIOAO_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) MESON_PIN(GPIOAO_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) MESON_PIN(GPIOAO_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) MESON_PIN(GPIOAO_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) MESON_PIN(GPIOAO_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) MESON_PIN(GPIOAO_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) MESON_PIN(GPIOAO_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) MESON_PIN(GPIOAO_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) MESON_PIN(GPIO_TEST_N),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) static const unsigned int uart_tx_ao_a_pins[] = { GPIOAO_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) static const unsigned int uart_rx_ao_a_pins[] = { GPIOAO_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) static const unsigned int uart_tx_ao_b_0_pins[] = { GPIOAO_0 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) static const unsigned int uart_rx_ao_b_1_pins[] = { GPIOAO_1 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) static const unsigned int uart_cts_ao_a_pins[] = { GPIOAO_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) static const unsigned int uart_rts_ao_a_pins[] = { GPIOAO_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) static const unsigned int uart_tx_ao_b_pins[] = { GPIOAO_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) static const unsigned int uart_rx_ao_b_pins[] = { GPIOAO_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) static const unsigned int uart_cts_ao_b_pins[] = { GPIOAO_2 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) static const unsigned int uart_rts_ao_b_pins[] = { GPIOAO_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) static const unsigned int i2c_sck_ao_pins[] = {GPIOAO_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) static const unsigned int i2c_sda_ao_pins[] = {GPIOAO_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) static const unsigned int i2c_slave_sck_ao_pins[] = {GPIOAO_4 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) static const unsigned int i2c_slave_sda_ao_pins[] = {GPIOAO_5 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) static const unsigned int remote_input_ao_pins[] = {GPIOAO_7 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) static const unsigned int pwm_ao_a_3_pins[] = { GPIOAO_3 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) static const unsigned int pwm_ao_a_8_pins[] = { GPIOAO_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) static const unsigned int pwm_ao_b_pins[] = { GPIOAO_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) static const unsigned int pwm_ao_b_6_pins[] = { GPIOAO_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) static const unsigned int i2s_out_ch23_ao_pins[] = { GPIOAO_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) static const unsigned int i2s_out_ch45_ao_pins[] = { GPIOAO_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) static const unsigned int i2s_out_ch67_ao_pins[] = { GPIO_TEST_N };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) static const unsigned int spdif_out_ao_6_pins[] = { GPIOAO_6 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) static const unsigned int spdif_out_ao_9_pins[] = { GPIOAO_9 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) static const unsigned int ao_cec_pins[] = { GPIOAO_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) static const unsigned int ee_cec_pins[] = { GPIOAO_8 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) static struct meson_pmx_group meson_gxl_periphs_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) GPIO_GROUP(GPIOZ_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) GPIO_GROUP(GPIOZ_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) GPIO_GROUP(GPIOZ_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) GPIO_GROUP(GPIOZ_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) GPIO_GROUP(GPIOZ_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) GPIO_GROUP(GPIOZ_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) GPIO_GROUP(GPIOZ_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) GPIO_GROUP(GPIOZ_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) GPIO_GROUP(GPIOZ_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) GPIO_GROUP(GPIOZ_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) GPIO_GROUP(GPIOZ_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) GPIO_GROUP(GPIOZ_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) GPIO_GROUP(GPIOZ_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) GPIO_GROUP(GPIOZ_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) GPIO_GROUP(GPIOZ_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) GPIO_GROUP(GPIOZ_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) GPIO_GROUP(GPIOH_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) GPIO_GROUP(GPIOH_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) GPIO_GROUP(GPIOH_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) GPIO_GROUP(GPIOH_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) GPIO_GROUP(GPIOH_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) GPIO_GROUP(GPIOH_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) GPIO_GROUP(GPIOH_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) GPIO_GROUP(GPIOH_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) GPIO_GROUP(GPIOH_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) GPIO_GROUP(GPIOH_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) GPIO_GROUP(BOOT_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) GPIO_GROUP(BOOT_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) GPIO_GROUP(BOOT_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) GPIO_GROUP(BOOT_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) GPIO_GROUP(BOOT_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) GPIO_GROUP(BOOT_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) GPIO_GROUP(BOOT_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) GPIO_GROUP(BOOT_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) GPIO_GROUP(BOOT_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) GPIO_GROUP(BOOT_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) GPIO_GROUP(BOOT_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) GPIO_GROUP(BOOT_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) GPIO_GROUP(BOOT_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) GPIO_GROUP(BOOT_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) GPIO_GROUP(BOOT_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) GPIO_GROUP(BOOT_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) GPIO_GROUP(CARD_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) GPIO_GROUP(CARD_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) GPIO_GROUP(CARD_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) GPIO_GROUP(CARD_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) GPIO_GROUP(CARD_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) GPIO_GROUP(CARD_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) GPIO_GROUP(CARD_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) GPIO_GROUP(GPIODV_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) GPIO_GROUP(GPIODV_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) GPIO_GROUP(GPIODV_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) GPIO_GROUP(GPIODV_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) GPIO_GROUP(GPIODV_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) GPIO_GROUP(GPIODV_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) GPIO_GROUP(GPIODV_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) GPIO_GROUP(GPIODV_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) GPIO_GROUP(GPIODV_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) GPIO_GROUP(GPIODV_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) GPIO_GROUP(GPIODV_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) GPIO_GROUP(GPIODV_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) GPIO_GROUP(GPIODV_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) GPIO_GROUP(GPIODV_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) GPIO_GROUP(GPIODV_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) GPIO_GROUP(GPIODV_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) GPIO_GROUP(GPIODV_16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) GPIO_GROUP(GPIODV_17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) GPIO_GROUP(GPIODV_19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) GPIO_GROUP(GPIODV_20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) GPIO_GROUP(GPIODV_21),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) GPIO_GROUP(GPIODV_22),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) GPIO_GROUP(GPIODV_23),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) GPIO_GROUP(GPIODV_24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) GPIO_GROUP(GPIODV_25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) GPIO_GROUP(GPIODV_26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) GPIO_GROUP(GPIODV_27),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) GPIO_GROUP(GPIODV_28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) GPIO_GROUP(GPIODV_29),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) GPIO_GROUP(GPIOX_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) GPIO_GROUP(GPIOX_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) GPIO_GROUP(GPIOX_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) GPIO_GROUP(GPIOX_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) GPIO_GROUP(GPIOX_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) GPIO_GROUP(GPIOX_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) GPIO_GROUP(GPIOX_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) GPIO_GROUP(GPIOX_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) GPIO_GROUP(GPIOX_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) GPIO_GROUP(GPIOX_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) GPIO_GROUP(GPIOX_10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) GPIO_GROUP(GPIOX_11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) GPIO_GROUP(GPIOX_12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) GPIO_GROUP(GPIOX_13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) GPIO_GROUP(GPIOX_14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) GPIO_GROUP(GPIOX_15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) GPIO_GROUP(GPIOX_16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) GPIO_GROUP(GPIOX_17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) GPIO_GROUP(GPIOX_18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) GPIO_GROUP(GPIOCLK_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) GPIO_GROUP(GPIOCLK_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) GPIO_GROUP(GPIO_TEST_N),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) /* Bank X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) GROUP(sdio_d0, 5, 31),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) GROUP(sdio_d1, 5, 30),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) GROUP(sdio_d2, 5, 29),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) GROUP(sdio_d3, 5, 28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) GROUP(sdio_clk, 5, 27),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) GROUP(sdio_cmd, 5, 26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) GROUP(sdio_irq, 5, 24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) GROUP(uart_tx_a, 5, 19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) GROUP(uart_rx_a, 5, 18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) GROUP(uart_cts_a, 5, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) GROUP(uart_rts_a, 5, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) GROUP(uart_tx_c, 5, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) GROUP(uart_rx_c, 5, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) GROUP(uart_cts_c, 5, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) GROUP(uart_rts_c, 5, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) GROUP(pwm_a, 5, 25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) GROUP(pwm_e, 5, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) GROUP(pwm_f_x, 5, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) GROUP(spi_mosi, 5, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) GROUP(spi_miso, 5, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) GROUP(spi_ss0, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) GROUP(spi_sclk, 5, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) /* Bank Z */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) GROUP(eth_mdio, 4, 23),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) GROUP(eth_mdc, 4, 22),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) GROUP(eth_clk_rx_clk, 4, 21),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) GROUP(eth_rx_dv, 4, 20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) GROUP(eth_rxd0, 4, 19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) GROUP(eth_rxd1, 4, 18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) GROUP(eth_rxd2, 4, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) GROUP(eth_rxd3, 4, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) GROUP(eth_rgmii_tx_clk, 4, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) GROUP(eth_tx_en, 4, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) GROUP(eth_txd0, 4, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) GROUP(eth_txd1, 4, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) GROUP(eth_txd2, 4, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) GROUP(eth_txd3, 4, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) GROUP(tsin_b_fail_z4, 3, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) GROUP(tsin_b_clk_z3, 3, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) GROUP(tsin_b_d0_z2, 3, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) GROUP(tsin_b_sop_z1, 3, 18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) GROUP(tsin_b_d_valid_z0, 3, 19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) GROUP(pwm_c, 3, 20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) GROUP(i2s_out_ch23_z, 3, 26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) GROUP(i2s_out_ch45_z, 3, 25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) GROUP(i2s_out_ch67_z, 3, 24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) GROUP(eth_link_led, 4, 25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) GROUP(eth_act_led, 4, 24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) /* Bank H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) GROUP(hdmi_hpd, 6, 31),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) GROUP(hdmi_sda, 6, 30),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) GROUP(hdmi_scl, 6, 29),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) GROUP(i2s_am_clk, 6, 26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) GROUP(i2s_out_ao_clk, 6, 25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) GROUP(i2s_out_lr_clk, 6, 24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) GROUP(i2s_out_ch01, 6, 23),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) GROUP(spdif_out_h, 6, 28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) GROUP(tsin_b_d0, 6, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) GROUP(tsin_b_sop, 6, 18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) GROUP(tsin_b_d_valid, 6, 19),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) GROUP(tsin_b_clk, 6, 20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) /* Bank DV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) GROUP(uart_tx_b, 2, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) GROUP(uart_rx_b, 2, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) GROUP(uart_cts_b, 2, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) GROUP(uart_rts_b, 2, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) GROUP(i2c_sda_c_dv18, 1, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) GROUP(i2c_sck_c_dv19, 1, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) GROUP(i2c_sda_a, 1, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) GROUP(i2c_sck_a, 1, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) GROUP(i2c_sda_b, 1, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) GROUP(i2c_sck_b, 1, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) GROUP(i2c_sda_c, 1, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) GROUP(i2c_sck_c, 1, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) GROUP(pwm_b, 2, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) GROUP(pwm_d, 2, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) GROUP(tsin_a_d0, 2, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) GROUP(tsin_a_dp, 2, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) GROUP(tsin_a_clk, 2, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) GROUP(tsin_a_sop, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) GROUP(tsin_a_d_valid, 2, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) GROUP(tsin_a_fail, 1, 31),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) /* Bank BOOT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) GROUP(emmc_nand_d07, 7, 31),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) GROUP(emmc_clk, 7, 30),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) GROUP(emmc_cmd, 7, 29),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) GROUP(emmc_ds, 7, 28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) GROUP(nor_d, 7, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) GROUP(nor_q, 7, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) GROUP(nor_c, 7, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) GROUP(nor_cs, 7, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) GROUP(nand_ce0, 7, 7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) GROUP(nand_ce1, 7, 6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) GROUP(nand_rb0, 7, 5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) GROUP(nand_ale, 7, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) GROUP(nand_cle, 7, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) GROUP(nand_wen_clk, 7, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) GROUP(nand_ren_wr, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) GROUP(nand_dqs, 7, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) /* Bank CARD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) GROUP(sdcard_d1, 6, 5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) GROUP(sdcard_d0, 6, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) GROUP(sdcard_d3, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) GROUP(sdcard_d2, 6, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) GROUP(sdcard_cmd, 6, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) GROUP(sdcard_clk, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) /* Bank CLK */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) GROUP(pwm_f_clk, 8, 30),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) static struct meson_pmx_group meson_gxl_aobus_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) GPIO_GROUP(GPIOAO_0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) GPIO_GROUP(GPIOAO_1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) GPIO_GROUP(GPIOAO_2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) GPIO_GROUP(GPIOAO_3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) GPIO_GROUP(GPIOAO_4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) GPIO_GROUP(GPIOAO_5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) GPIO_GROUP(GPIOAO_6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) GPIO_GROUP(GPIOAO_7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) GPIO_GROUP(GPIOAO_8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) GPIO_GROUP(GPIOAO_9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) /* bank AO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) GROUP(uart_tx_ao_b_0, 0, 26),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) GROUP(uart_rx_ao_b_1, 0, 25),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) GROUP(uart_tx_ao_b, 0, 24),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) GROUP(uart_rx_ao_b, 0, 23),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) GROUP(uart_tx_ao_a, 0, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) GROUP(uart_rx_ao_a, 0, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) GROUP(uart_cts_ao_a, 0, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) GROUP(uart_rts_ao_a, 0, 9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) GROUP(uart_cts_ao_b, 0, 8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) GROUP(uart_rts_ao_b, 0, 7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) GROUP(i2c_sck_ao, 0, 6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) GROUP(i2c_sda_ao, 0, 5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) GROUP(i2c_slave_sck_ao, 0, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) GROUP(i2c_slave_sda_ao, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) GROUP(remote_input_ao, 0, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) GROUP(pwm_ao_a_3, 0, 22),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) GROUP(pwm_ao_b_6, 0, 18),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) GROUP(pwm_ao_a_8, 0, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) GROUP(pwm_ao_b, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) GROUP(i2s_out_ch23_ao, 1, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) GROUP(i2s_out_ch45_ao, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) GROUP(spdif_out_ao_6, 0, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) GROUP(spdif_out_ao_9, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) GROUP(ao_cec, 0, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) GROUP(ee_cec, 0, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) /* test n pin */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) GROUP(i2s_out_ch67_ao, 1, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) static const char * const gpio_periphs_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) "GPIOZ_0", "GPIOZ_1", "GPIOZ_2", "GPIOZ_3", "GPIOZ_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) "GPIOZ_5", "GPIOZ_6", "GPIOZ_7", "GPIOZ_8", "GPIOZ_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) "GPIOZ_10", "GPIOZ_11", "GPIOZ_12", "GPIOZ_13", "GPIOZ_14",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) "GPIOZ_15",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) "GPIOH_0", "GPIOH_1", "GPIOH_2", "GPIOH_3", "GPIOH_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) "GPIOH_5", "GPIOH_6", "GPIOH_7", "GPIOH_8", "GPIOH_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) "BOOT_15",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) "CARD_0", "CARD_1", "CARD_2", "CARD_3", "CARD_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) "CARD_5", "CARD_6",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) "GPIODV_0", "GPIODV_1", "GPIODV_2", "GPIODV_3", "GPIODV_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) "GPIODV_5", "GPIODV_6", "GPIODV_7", "GPIODV_8", "GPIODV_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) "GPIODV_10", "GPIODV_11", "GPIODV_12", "GPIODV_13", "GPIODV_14",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) "GPIODV_15", "GPIODV_16", "GPIODV_17", "GPIODV_18", "GPIODV_19",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) "GPIODV_20", "GPIODV_21", "GPIODV_22", "GPIODV_23", "GPIODV_24",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) "GPIODV_25", "GPIODV_26", "GPIODV_27", "GPIODV_28", "GPIODV_29",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) "GPIOX_15", "GPIOX_16", "GPIOX_17", "GPIOX_18",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) static const char * const emmc_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) "emmc_nand_d07", "emmc_clk", "emmc_cmd", "emmc_ds",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) static const char * const nor_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) "nor_d", "nor_q", "nor_c", "nor_cs",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) static const char * const spi_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) "spi_mosi", "spi_miso", "spi_ss0", "spi_sclk",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) static const char * const sdcard_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) "sdcard_d0", "sdcard_d1", "sdcard_d2", "sdcard_d3",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) "sdcard_cmd", "sdcard_clk",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) static const char * const sdio_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) "sdio_d0", "sdio_d1", "sdio_d2", "sdio_d3",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) "sdio_cmd", "sdio_clk", "sdio_irq",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) static const char * const nand_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) "emmc_nand_d07", "nand_ce0", "nand_ce1", "nand_rb0", "nand_ale",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) "nand_cle", "nand_wen_clk", "nand_ren_wr", "nand_dqs",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) static const char * const uart_a_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) "uart_tx_a", "uart_rx_a", "uart_cts_a", "uart_rts_a",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) static const char * const uart_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) "uart_tx_b", "uart_rx_b", "uart_cts_b", "uart_rts_b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) static const char * const uart_c_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) "uart_tx_c", "uart_rx_c", "uart_cts_c", "uart_rts_c",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) static const char * const i2c_a_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) "i2c_sck_a", "i2c_sda_a",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) static const char * const i2c_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) "i2c_sck_b", "i2c_sda_b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) static const char * const i2c_c_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) "i2c_sck_c", "i2c_sda_c", "i2c_sda_c_dv18", "i2c_sck_c_dv19",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) static const char * const eth_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) "eth_mdio", "eth_mdc", "eth_clk_rx_clk", "eth_rx_dv",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) "eth_rxd0", "eth_rxd1", "eth_rxd2", "eth_rxd3",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) "eth_rgmii_tx_clk", "eth_tx_en",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) "eth_txd0", "eth_txd1", "eth_txd2", "eth_txd3",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) static const char * const pwm_a_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) "pwm_a",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) static const char * const pwm_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) "pwm_b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) static const char * const pwm_c_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) "pwm_c",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) static const char * const pwm_d_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) "pwm_d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) static const char * const pwm_e_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) "pwm_e",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) static const char * const pwm_f_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) "pwm_f_clk", "pwm_f_x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) static const char * const hdmi_hpd_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) "hdmi_hpd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) static const char * const hdmi_i2c_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) "hdmi_sda", "hdmi_scl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) static const char * const i2s_out_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) "i2s_am_clk", "i2s_out_ao_clk", "i2s_out_lr_clk",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) "i2s_out_ch01", "i2s_out_ch23_z", "i2s_out_ch45_z", "i2s_out_ch67_z",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) static const char * const spdif_out_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) "spdif_out_h",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) static const char * const eth_led_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) "eth_link_led", "eth_act_led",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) static const char * const tsin_a_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) "tsin_a_clk", "tsin_a_sop",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) "tsin_a_d_valid", "tsin_a_d0",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) "tsin_a_dp", "tsin_a_fail",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) static const char * const tsin_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) "tsin_b_clk", "tsin_b_sop", "tsin_b_d_valid", "tsin_b_d0",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) "tsin_b_clk_z3", "tsin_b_sop_z1", "tsin_b_d_valid_z0", "tsin_b_d0_z2",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) "tsin_b_fail_z4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) static const char * const gpio_aobus_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) "GPIO_TEST_N",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) static const char * const uart_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) "uart_tx_ao_a", "uart_rx_ao_a", "uart_cts_ao_a", "uart_rts_ao_a",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) static const char * const uart_ao_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) "uart_tx_ao_b", "uart_rx_ao_b", "uart_cts_ao_b", "uart_rts_ao_b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) "uart_tx_ao_b_0", "uart_rx_ao_b_1",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) static const char * const i2c_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) "i2c_sck_ao", "i2c_sda_ao",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) static const char * const i2c_slave_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) "i2c_slave_sck_ao", "i2c_slave_sda_ao",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) static const char * const remote_input_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) "remote_input_ao",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) static const char * const pwm_ao_a_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) "pwm_ao_a_3", "pwm_ao_a_8",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) static const char * const pwm_ao_b_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) "pwm_ao_b", "pwm_ao_b_6",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) static const char * const i2s_out_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) "i2s_out_ch23_ao", "i2s_out_ch45_ao", "i2s_out_ch67_ao",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) static const char * const spdif_out_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) "spdif_out_ao_6", "spdif_out_ao_9",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) static const char * const cec_ao_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) "ao_cec", "ee_cec",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) static struct meson_pmx_func meson_gxl_periphs_functions[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) FUNCTION(gpio_periphs),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) FUNCTION(emmc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) FUNCTION(nor),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) FUNCTION(spi),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) FUNCTION(sdcard),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) FUNCTION(sdio),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) FUNCTION(nand),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) FUNCTION(uart_a),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) FUNCTION(uart_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) FUNCTION(uart_c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) FUNCTION(i2c_a),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) FUNCTION(i2c_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) FUNCTION(i2c_c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) FUNCTION(eth),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) FUNCTION(pwm_a),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) FUNCTION(pwm_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) FUNCTION(pwm_c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) FUNCTION(pwm_d),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) FUNCTION(pwm_e),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) FUNCTION(pwm_f),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) FUNCTION(hdmi_hpd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) FUNCTION(hdmi_i2c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) FUNCTION(i2s_out),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) FUNCTION(spdif_out),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) FUNCTION(eth_led),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) FUNCTION(tsin_a),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) FUNCTION(tsin_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) static struct meson_pmx_func meson_gxl_aobus_functions[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) FUNCTION(gpio_aobus),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) FUNCTION(uart_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) FUNCTION(uart_ao_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) FUNCTION(i2c_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) FUNCTION(i2c_slave_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) FUNCTION(remote_input_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) FUNCTION(pwm_ao_a),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) FUNCTION(pwm_ao_b),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) FUNCTION(i2s_out_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) FUNCTION(spdif_out_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) FUNCTION(cec_ao),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) static struct meson_bank meson_gxl_periphs_banks[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) /* name first last irq pullen pull dir out in */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) BANK("X", GPIOX_0, GPIOX_18, 89, 107, 4, 0, 4, 0, 12, 0, 13, 0, 14, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) BANK("DV", GPIODV_0, GPIODV_29, 83, 88, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) BANK("H", GPIOH_0, GPIOH_9, 26, 35, 1, 20, 1, 20, 3, 20, 4, 20, 5, 20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) BANK("Z", GPIOZ_0, GPIOZ_15, 10, 25, 3, 0, 3, 0, 9, 0, 10, 0, 11, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) BANK("CARD", CARD_0, CARD_6, 52, 58, 2, 20, 2, 20, 6, 20, 7, 20, 8, 20),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) BANK("BOOT", BOOT_0, BOOT_15, 36, 51, 2, 0, 2, 0, 6, 0, 7, 0, 8, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) BANK("CLK", GPIOCLK_0, GPIOCLK_1, 108, 109, 3, 28, 3, 28, 9, 28, 10, 28, 11, 28),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) static struct meson_bank meson_gxl_aobus_banks[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) /* name first last irq pullen pull dir out in */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) BANK("AO", GPIOAO_0, GPIOAO_9, 0, 9, 0, 16, 0, 0, 0, 0, 0, 16, 1, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) static struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) .name = "periphs-banks",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) .pins = meson_gxl_periphs_pins,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) .groups = meson_gxl_periphs_groups,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) .funcs = meson_gxl_periphs_functions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) .banks = meson_gxl_periphs_banks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) .num_pins = ARRAY_SIZE(meson_gxl_periphs_pins),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) .num_groups = ARRAY_SIZE(meson_gxl_periphs_groups),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) .num_funcs = ARRAY_SIZE(meson_gxl_periphs_functions),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) .num_banks = ARRAY_SIZE(meson_gxl_periphs_banks),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) .pmx_ops = &meson8_pmx_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) static struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) .name = "aobus-banks",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) .pins = meson_gxl_aobus_pins,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) .groups = meson_gxl_aobus_groups,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) .funcs = meson_gxl_aobus_functions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) .banks = meson_gxl_aobus_banks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) .num_pins = ARRAY_SIZE(meson_gxl_aobus_pins),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) .num_groups = ARRAY_SIZE(meson_gxl_aobus_groups),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) .num_funcs = ARRAY_SIZE(meson_gxl_aobus_functions),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) .num_banks = ARRAY_SIZE(meson_gxl_aobus_banks),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) .pmx_ops = &meson8_pmx_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) .parse_dt = meson8_aobus_parse_dt_extra,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) static const struct of_device_id meson_gxl_pinctrl_dt_match[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) .compatible = "amlogic,meson-gxl-periphs-pinctrl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) .data = &meson_gxl_periphs_pinctrl_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) .compatible = "amlogic,meson-gxl-aobus-pinctrl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) .data = &meson_gxl_aobus_pinctrl_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) { },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) MODULE_DEVICE_TABLE(of, meson_gxl_pinctrl_dt_match);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) static struct platform_driver meson_gxl_pinctrl_driver = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) .probe = meson_pinctrl_probe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) .driver = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) .name = "meson-gxl-pinctrl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) .of_match_table = meson_gxl_pinctrl_dt_match,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) module_platform_driver(meson_gxl_pinctrl_driver);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) MODULE_LICENSE("GPL v2");