1aa399e6cSTzuyi Chang // SPDX-License-Identifier: GPL-2.0-or-later 2aa399e6cSTzuyi Chang /* 3aa399e6cSTzuyi Chang * Realtek DHC 1315E pin controller driver 4aa399e6cSTzuyi Chang * 5aa399e6cSTzuyi Chang * Copyright (c) 2023 Realtek Semiconductor Corp. 6aa399e6cSTzuyi Chang * 7aa399e6cSTzuyi Chang */ 8aa399e6cSTzuyi Chang 9aa399e6cSTzuyi Chang #include <linux/module.h> 10aa399e6cSTzuyi Chang #include <linux/of.h> 11aa399e6cSTzuyi Chang #include <linux/platform_device.h> 12aa399e6cSTzuyi Chang #include <linux/pinctrl/pinctrl.h> 13aa399e6cSTzuyi Chang 14aa399e6cSTzuyi Chang #include "pinctrl-rtd.h" 15aa399e6cSTzuyi Chang 16aa399e6cSTzuyi Chang enum rtd13xxe_iso_pins { 17aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_0 = 0, 18aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_1, 19aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_RST_N, 20aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DD_SB, 21aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_CLK, 22aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_CMD, 23aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_6, 24aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_7, 25aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_8, 26aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_9, 27aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_10, 28aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_11, 29aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_12, 30aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_13, 31aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_14, 32aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_15, 33aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_16, 34aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_17, 35aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_18, 36aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_19, 37aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_20, 38aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_0, 39aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_1, 40aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_2, 41aa399e6cSTzuyi Chang RTD1315E_ISO_USB_CC2, 42aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_25, 43aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_26, 44aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_27, 45aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_28, 46aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_29, 47aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_30, 48aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_31, 49aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_32, 50aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_33, 51aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_34, 52aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_35, 53aa399e6cSTzuyi Chang RTD1315E_ISO_HIF_DATA, 54aa399e6cSTzuyi Chang RTD1315E_ISO_HIF_EN, 55aa399e6cSTzuyi Chang RTD1315E_ISO_HIF_RDY, 56aa399e6cSTzuyi Chang RTD1315E_ISO_HIF_CLK, 57aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_40, 58aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_41, 59aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_42, 60aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_43, 61aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_44, 62aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_45, 63aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_46, 64aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_47, 65aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_48, 66aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_49, 67aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_50, 68aa399e6cSTzuyi Chang RTD1315E_ISO_USB_CC1, 69aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_3, 70aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_4, 71aa399e6cSTzuyi Chang RTD1315E_ISO_IR_RX, 72aa399e6cSTzuyi Chang RTD1315E_ISO_UR0_RX, 73aa399e6cSTzuyi Chang RTD1315E_ISO_UR0_TX, 74aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_57, 75aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_58, 76aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_59, 77aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_60, 78aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_61, 79aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_62, 80aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_63, 81aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_64, 82aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_65, 83aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_66, 84aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_67, 85aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_68, 86aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_69, 87aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_70, 88aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_71, 89aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_72, 90aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_73, 91aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_5, 92aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_6, 93aa399e6cSTzuyi Chang RTD1315E_ISO_EMMC_DATA_7, 94aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_DUMMY_77, 95aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_78, 96aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_79, 97aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_80, 98aa399e6cSTzuyi Chang RTD1315E_ISO_GPIO_81, 99aa399e6cSTzuyi Chang RTD1315E_ISO_UR2_LOC, 100aa399e6cSTzuyi Chang RTD1315E_ISO_GSPI_LOC, 101aa399e6cSTzuyi Chang RTD1315E_ISO_HI_WIDTH, 102aa399e6cSTzuyi Chang RTD1315E_ISO_SF_EN, 103aa399e6cSTzuyi Chang RTD1315E_ISO_ARM_TRACE_DBG_EN, 104aa399e6cSTzuyi Chang RTD1315E_ISO_EJTAG_AUCPU_LOC, 105aa399e6cSTzuyi Chang RTD1315E_ISO_EJTAG_ACPU_LOC, 106aa399e6cSTzuyi Chang RTD1315E_ISO_EJTAG_VCPU_LOC, 107aa399e6cSTzuyi Chang RTD1315E_ISO_EJTAG_SCPU_LOC, 108aa399e6cSTzuyi Chang RTD1315E_ISO_DMIC_LOC, 109aa399e6cSTzuyi Chang RTD1315E_ISO_VTC_DMIC_LOC, 110aa399e6cSTzuyi Chang RTD1315E_ISO_VTC_TDM_LOC, 111aa399e6cSTzuyi Chang RTD1315E_ISO_VTC_I2SI_LOC, 112aa399e6cSTzuyi Chang RTD1315E_ISO_TDM_AI_LOC, 113aa399e6cSTzuyi Chang RTD1315E_ISO_AI_LOC, 114aa399e6cSTzuyi Chang RTD1315E_ISO_SPDIF_LOC, 115aa399e6cSTzuyi Chang RTD1315E_ISO_HIF_EN_LOC, 116aa399e6cSTzuyi Chang RTD1315E_ISO_SCAN_SWITCH, 117aa399e6cSTzuyi Chang RTD1315E_ISO_WD_RSET, 118aa399e6cSTzuyi Chang RTD1315E_ISO_BOOT_SEL, 119aa399e6cSTzuyi Chang RTD1315E_ISO_RESET_N, 120aa399e6cSTzuyi Chang RTD1315E_ISO_TESTMODE, 121aa399e6cSTzuyi Chang }; 122aa399e6cSTzuyi Chang 123aa399e6cSTzuyi Chang static const struct pinctrl_pin_desc rtd1315e_iso_pins[] = { 124aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_0, "gpio_0"), 125aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_1, "gpio_1"), 126aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_RST_N, "emmc_rst_n"), 127aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DD_SB, "emmc_dd_sb"), 128aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_CLK, "emmc_clk"), 129aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_CMD, "emmc_cmd"), 130aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_6, "gpio_6"), 131aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_7, "gpio_7"), 132aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_8, "gpio_8"), 133aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_9, "gpio_9"), 134aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_10, "gpio_10"), 135aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_11, "gpio_11"), 136aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_12, "gpio_12"), 137aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_13, "gpio_13"), 138aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_14, "gpio_14"), 139aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_15, "gpio_15"), 140aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_16, "gpio_16"), 141aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_17, "gpio_17"), 142aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_18, "gpio_18"), 143aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_19, "gpio_19"), 144aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_20, "gpio_20"), 145aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_0, "emmc_data_0"), 146aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_1, "emmc_data_1"), 147aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_2, "emmc_data_2"), 148aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_USB_CC2, "usb_cc2"), 149aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_25, "gpio_25"), 150aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_26, "gpio_26"), 151aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_27, "gpio_27"), 152aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_28, "gpio_28"), 153aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_29, "gpio_29"), 154aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_30, "gpio_30"), 155aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_31, "gpio_31"), 156aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_32, "gpio_32"), 157aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_33, "gpio_33"), 158aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_34, "gpio_34"), 159aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_35, "gpio_35"), 160aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HIF_DATA, "hif_data"), 161aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HIF_EN, "hif_en"), 162aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HIF_RDY, "hif_rdy"), 163aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HIF_CLK, "hif_clk"), 164aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_40, "gpio_dummy_40"), 165aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_41, "gpio_dummy_41"), 166aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_42, "gpio_dummy_42"), 167aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_43, "gpio_dummy_43"), 168aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_44, "gpio_dummy_44"), 169aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_45, "gpio_dummy_45"), 170aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_46, "gpio_46"), 171aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_47, "gpio_47"), 172aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_48, "gpio_48"), 173aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_49, "gpio_49"), 174aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_50, "gpio_50"), 175aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_USB_CC1, "usb_cc1"), 176aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_3, "emmc_data_3"), 177aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_4, "emmc_data_4"), 178aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_IR_RX, "ir_rx"), 179aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_UR0_RX, "ur0_rx"), 180aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_UR0_TX, "ur0_tx"), 181aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_57, "gpio_57"), 182aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_58, "gpio_58"), 183aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_59, "gpio_59"), 184aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_60, "gpio_60"), 185aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_61, "gpio_61"), 186aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_62, "gpio_62"), 187aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_63, "gpio_dummy_63"), 188aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_64, "gpio_dummy_64"), 189aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_65, "gpio_dummy_65"), 190aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_66, "gpio_66"), 191aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_67, "gpio_67"), 192aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_68, "gpio_68"), 193aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_69, "gpio_69"), 194aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_70, "gpio_70"), 195aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_71, "gpio_71"), 196aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_72, "gpio_72"), 197aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_73, "gpio_dummy_73"), 198aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_5, "emmc_data_5"), 199aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_6, "emmc_data_6"), 200aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_7, "emmc_data_7"), 201aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_77, "gpio_dummy_77"), 202aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_78, "gpio_78"), 203aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_79, "gpio_79"), 204aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_80, "gpio_80"), 205aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GPIO_81, "gpio_81"), 206aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_UR2_LOC, "ur2_loc"), 207aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_GSPI_LOC, "gspi_loc"), 208aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HI_WIDTH, "hi_width"), 209aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_SF_EN, "sf_en"), 210aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_ARM_TRACE_DBG_EN, "arm_trace_dbg_en"), 211aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EJTAG_AUCPU_LOC, "ejtag_aucpu_loc"), 212aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EJTAG_ACPU_LOC, "ejtag_acpu_loc"), 213aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EJTAG_VCPU_LOC, "ejtag_vcpu_loc"), 214aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_EJTAG_SCPU_LOC, "ejtag_scpu_loc"), 215aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_DMIC_LOC, "dmic_loc"), 216aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_VTC_DMIC_LOC, "vtc_dmic_loc"), 217aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_VTC_TDM_LOC, "vtc_tdm_loc"), 218aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_VTC_I2SI_LOC, "vtc_i2si_loc"), 219aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_TDM_AI_LOC, "tdm_ai_loc"), 220aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_AI_LOC, "ai_loc"), 221aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_SPDIF_LOC, "spdif_loc"), 222aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_HIF_EN_LOC, "hif_en_loc"), 223aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_SCAN_SWITCH, "scan_switch"), 224aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_WD_RSET, "wd_rset"), 225aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_BOOT_SEL, "boot_sel"), 226aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_RESET_N, "reset_n"), 227aa399e6cSTzuyi Chang PINCTRL_PIN(RTD1315E_ISO_TESTMODE, "testmode"), 228aa399e6cSTzuyi Chang }; 229aa399e6cSTzuyi Chang 230d48f8a6fSLinus Walleij /* Tagged as __maybe_unused since there are pins we may use in the future */ 231aa399e6cSTzuyi Chang #define DECLARE_RTD1315E_PIN(_pin, _name) \ 232d48f8a6fSLinus Walleij static const unsigned int rtd1315e_## _name ##_pins[] __maybe_unused = { _pin } 233aa399e6cSTzuyi Chang 234aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_0, gpio_0); 235aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_1, gpio_1); 236aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_RST_N, emmc_rst_n); 237aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DD_SB, emmc_dd_sb); 238aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_CLK, emmc_clk); 239aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_CMD, emmc_cmd); 240aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_6, gpio_6); 241aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_7, gpio_7); 242aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_8, gpio_8); 243aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_9, gpio_9); 244aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_10, gpio_10); 245aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_11, gpio_11); 246aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_12, gpio_12); 247aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_13, gpio_13); 248aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_14, gpio_14); 249aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_15, gpio_15); 250aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_16, gpio_16); 251aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_17, gpio_17); 252aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_18, gpio_18); 253aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_19, gpio_19); 254aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_20, gpio_20); 255aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_0, emmc_data_0); 256aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_1, emmc_data_1); 257aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_2, emmc_data_2); 258aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_USB_CC2, usb_cc2); 259aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_25, gpio_25); 260aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_26, gpio_26); 261aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_27, gpio_27); 262aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_28, gpio_28); 263aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_29, gpio_29); 264aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_30, gpio_30); 265aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_31, gpio_31); 266aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_32, gpio_32); 267aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_33, gpio_33); 268aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_34, gpio_34); 269aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_35, gpio_35); 270aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_DATA, hif_data); 271aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_EN, hif_en); 272aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_RDY, hif_rdy); 273aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_CLK, hif_clk); 274aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_40, gpio_dummy_40); 275aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_41, gpio_dummy_41); 276aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_42, gpio_dummy_42); 277aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_43, gpio_dummy_43); 278aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_44, gpio_dummy_44); 279aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_45, gpio_dummy_45); 280aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_46, gpio_46); 281aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_47, gpio_47); 282aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_48, gpio_48); 283aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_49, gpio_49); 284aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_50, gpio_50); 285aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_USB_CC1, usb_cc1); 286aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_3, emmc_data_3); 287aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_4, emmc_data_4); 288aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_IR_RX, ir_rx); 289aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR0_RX, ur0_rx); 290aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR0_TX, ur0_tx); 291aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_57, gpio_57); 292aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_58, gpio_58); 293aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_59, gpio_59); 294aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_60, gpio_60); 295aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_61, gpio_61); 296aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_62, gpio_62); 297aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_63, gpio_dummy_63); 298aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_64, gpio_dummy_64); 299aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_65, gpio_dummy_65); 300aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_66, gpio_66); 301aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_67, gpio_67); 302aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_68, gpio_68); 303aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_69, gpio_69); 304aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_70, gpio_70); 305aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_71, gpio_71); 306aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_72, gpio_72); 307aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_73, gpio_dummy_73); 308aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_5, emmc_data_5); 309aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_6, emmc_data_6); 310aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_7, emmc_data_7); 311aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_77, gpio_dummy_77); 312aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_78, gpio_78); 313aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_79, gpio_79); 314aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_80, gpio_80); 315aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_81, gpio_81); 316aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR2_LOC, ur2_loc); 317aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_GSPI_LOC, gspi_loc); 318aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HI_WIDTH, hi_width); 319aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_SF_EN, sf_en); 320aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_ARM_TRACE_DBG_EN, arm_trace_dbg_en); 321aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_AUCPU_LOC, ejtag_aucpu_loc); 322aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_ACPU_LOC, ejtag_acpu_loc); 323aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_VCPU_LOC, ejtag_vcpu_loc); 324aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_SCPU_LOC, ejtag_scpu_loc); 325aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_DMIC_LOC, dmic_loc); 326aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_DMIC_LOC, vtc_dmic_loc); 327aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_TDM_LOC, vtc_tdm_loc); 328aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_I2SI_LOC, vtc_i2si_loc); 329aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_TDM_AI_LOC, tdm_ai_loc); 330aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_AI_LOC, ai_loc); 331aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_SPDIF_LOC, spdif_loc); 332aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_EN_LOC, hif_en_loc); 333aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_SCAN_SWITCH, scan_switch); 334aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_WD_RSET, wd_rset); 335aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_BOOT_SEL, boot_sel); 336aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_RESET_N, reset_n); 337aa399e6cSTzuyi Chang DECLARE_RTD1315E_PIN(RTD1315E_ISO_TESTMODE, testmode); 338aa399e6cSTzuyi Chang 339aa399e6cSTzuyi Chang #define RTD1315E_GROUP(_name) \ 340aa399e6cSTzuyi Chang { \ 341aa399e6cSTzuyi Chang .name = # _name, \ 342aa399e6cSTzuyi Chang .pins = rtd1315e_ ## _name ## _pins, \ 343aa399e6cSTzuyi Chang .num_pins = ARRAY_SIZE(rtd1315e_ ## _name ## _pins), \ 344aa399e6cSTzuyi Chang } 345aa399e6cSTzuyi Chang 346aa399e6cSTzuyi Chang static const struct rtd_pin_group_desc rtd1315e_pin_groups[] = { 347aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_0), 348aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_1), 349aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_rst_n), 350aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_dd_sb), 351aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_clk), 352aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_cmd), 353aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_6), 354aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_7), 355aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_8), 356aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_9), 357aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_10), 358aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_11), 359aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_12), 360aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_13), 361aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_14), 362aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_15), 363aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_16), 364aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_17), 365aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_18), 366aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_19), 367aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_20), 368aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_0), 369aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_1), 370aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_2), 371aa399e6cSTzuyi Chang RTD1315E_GROUP(usb_cc2), 372aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_25), 373aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_26), 374aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_27), 375aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_28), 376aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_29), 377aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_30), 378aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_31), 379aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_32), 380aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_33), 381aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_34), 382aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_35), 383aa399e6cSTzuyi Chang RTD1315E_GROUP(hif_data), 384aa399e6cSTzuyi Chang RTD1315E_GROUP(hif_en), 385aa399e6cSTzuyi Chang RTD1315E_GROUP(hif_rdy), 386aa399e6cSTzuyi Chang RTD1315E_GROUP(hif_clk), 387aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_40), 388aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_41), 389aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_42), 390aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_43), 391aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_44), 392aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_45), 393aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_46), 394aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_47), 395aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_48), 396aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_49), 397aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_50), 398aa399e6cSTzuyi Chang RTD1315E_GROUP(usb_cc1), 399aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_3), 400aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_4), 401aa399e6cSTzuyi Chang RTD1315E_GROUP(ir_rx), 402aa399e6cSTzuyi Chang RTD1315E_GROUP(ur0_rx), 403aa399e6cSTzuyi Chang RTD1315E_GROUP(ur0_tx), 404aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_57), 405aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_58), 406aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_59), 407aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_60), 408aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_61), 409aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_62), 410aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_63), 411aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_64), 412aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_65), 413aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_66), 414aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_67), 415aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_68), 416aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_69), 417aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_70), 418aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_71), 419aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_72), 420aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_73), 421aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_5), 422aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_6), 423aa399e6cSTzuyi Chang RTD1315E_GROUP(emmc_data_7), 424aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_dummy_77), 425aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_78), 426aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_79), 427aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_80), 428aa399e6cSTzuyi Chang RTD1315E_GROUP(gpio_81), 429aa399e6cSTzuyi Chang RTD1315E_GROUP(ur2_loc), 430aa399e6cSTzuyi Chang RTD1315E_GROUP(gspi_loc), 431aa399e6cSTzuyi Chang RTD1315E_GROUP(hi_width), 432aa399e6cSTzuyi Chang RTD1315E_GROUP(sf_en), 433aa399e6cSTzuyi Chang RTD1315E_GROUP(arm_trace_dbg_en), 434aa399e6cSTzuyi Chang RTD1315E_GROUP(ejtag_aucpu_loc), 435aa399e6cSTzuyi Chang RTD1315E_GROUP(ejtag_acpu_loc), 436aa399e6cSTzuyi Chang RTD1315E_GROUP(ejtag_vcpu_loc), 437aa399e6cSTzuyi Chang RTD1315E_GROUP(ejtag_scpu_loc), 438aa399e6cSTzuyi Chang RTD1315E_GROUP(dmic_loc), 439aa399e6cSTzuyi Chang RTD1315E_GROUP(vtc_dmic_loc), 440aa399e6cSTzuyi Chang RTD1315E_GROUP(vtc_tdm_loc), 441aa399e6cSTzuyi Chang RTD1315E_GROUP(vtc_i2si_loc), 442aa399e6cSTzuyi Chang RTD1315E_GROUP(tdm_ai_loc), 443aa399e6cSTzuyi Chang RTD1315E_GROUP(ai_loc), 444aa399e6cSTzuyi Chang RTD1315E_GROUP(spdif_loc), 445aa399e6cSTzuyi Chang RTD1315E_GROUP(hif_en_loc), 446aa399e6cSTzuyi Chang 447aa399e6cSTzuyi Chang }; 448aa399e6cSTzuyi Chang 449aa399e6cSTzuyi Chang static const char * const rtd1315e_gpio_groups[] = { 450aa399e6cSTzuyi Chang "gpio_0", "gpio_1", "emmc_rst_n", "emmc_dd_sb", "emmc_clk", 451aa399e6cSTzuyi Chang "emmc_cmd", "gpio_6", "gpio_7", "gpio_8", "gpio_9", 452aa399e6cSTzuyi Chang "gpio_10", "gpio_11", "gpio_12", "gpio_13", "gpio_14", 453aa399e6cSTzuyi Chang "gpio_15", "gpio_16", "gpio_17", "gpio_18", "gpio_19", 454aa399e6cSTzuyi Chang "gpio_20", "emmc_data_0", "emmc_data_1", "emmc_data_2", "usb_cc2", 455aa399e6cSTzuyi Chang "gpio_25", "gpio_26", "gpio_27", "gpio_28", "gpio_29", 456aa399e6cSTzuyi Chang "gpio_30", "gpio_31", "gpio_32", "gpio_33", "gpio_34", 457aa399e6cSTzuyi Chang "gpio_35", "hif_data", "hif_en", "hif_rdy", "hif_clk", 458aa399e6cSTzuyi Chang "gpio_46", "gpio_47", "gpio_48", "gpio_49", 459aa399e6cSTzuyi Chang "gpio_50", "usb_cc1", "emmc_data_3", "emmc_data_4", "ir_rx", 460aa399e6cSTzuyi Chang "ur0_rx", "ur0_tx", "gpio_57", "gpio_58", "gpio_59", 461aa399e6cSTzuyi Chang "gpio_60", "gpio_61", "gpio_62", "gpio_66", "gpio_67", 462aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72", 463aa399e6cSTzuyi Chang "emmc_data_5", "emmc_data_6", "emmc_data_7", 464aa399e6cSTzuyi Chang "gpio_78", "gpio_79", "gpio_80", "gpio_81" }; 465aa399e6cSTzuyi Chang static const char * const rtd1315e_nf_groups[] = { 466aa399e6cSTzuyi Chang "emmc_rst_n", "emmc_clk", "emmc_cmd", "emmc_data_0", 467aa399e6cSTzuyi Chang "emmc_data_1", "emmc_data_2", "emmc_data_3", "emmc_data_4", 468aa399e6cSTzuyi Chang "emmc_data_5", "emmc_data_6", "emmc_data_7", 469aa399e6cSTzuyi Chang "gpio_78", "gpio_79", "gpio_80", "gpio_81" }; 470aa399e6cSTzuyi Chang static const char * const rtd1315e_emmc_groups[] = { 471aa399e6cSTzuyi Chang "emmc_rst_n", "emmc_dd_sb", "emmc_clk", "emmc_cmd", 472aa399e6cSTzuyi Chang "emmc_data_0", "emmc_data_1", "emmc_data_2", "emmc_data_3", 473aa399e6cSTzuyi Chang "emmc_data_4", "emmc_data_5", "emmc_data_6", "emmc_data_7" }; 474aa399e6cSTzuyi Chang 475aa399e6cSTzuyi Chang static const char * const rtd1315e_ao_groups[] = { 476aa399e6cSTzuyi Chang "gpio_66", "gpio_67", "gpio_68", "gpio_69", "gpio_70", 477aa399e6cSTzuyi Chang "gpio_71", "gpio_72" }; 478aa399e6cSTzuyi Chang static const char * const rtd1315e_gspi_loc0_groups[] = { 479aa399e6cSTzuyi Chang "gpio_18", "gpio_19", "gpio_20", "gpio_31", "gspi_loc" }; 480aa399e6cSTzuyi Chang static const char * const rtd1315e_gspi_loc1_groups[] = { 481aa399e6cSTzuyi Chang "gpio_8", "gpio_9", "gpio_10", "gpio_11", "gspi_loc" }; 482aa399e6cSTzuyi Chang static const char * const rtd1315e_uart0_groups[] = { "ur0_rx", "ur0_tx"}; 483aa399e6cSTzuyi Chang static const char * const rtd1315e_uart1_groups[] = { 484aa399e6cSTzuyi Chang "gpio_8", "gpio_9", "gpio_10", "gpio_11" }; 485aa399e6cSTzuyi Chang static const char * const rtd1315e_uart2_loc0_groups[] = { 486aa399e6cSTzuyi Chang "gpio_18", "gpio_19", "gpio_20", "gpio_31", "ur2_loc" }; 487aa399e6cSTzuyi Chang static const char * const rtd1315e_uart2_loc1_groups[] = { 488aa399e6cSTzuyi Chang "gpio_25", "gpio_26", "gpio_27", "gpio_28", "ur2_loc" }; 489aa399e6cSTzuyi Chang static const char * const rtd1315e_i2c0_groups[] = { "gpio_12", "gpio_13" }; 490aa399e6cSTzuyi Chang static const char * const rtd1315e_i2c1_groups[] = { "gpio_16", "gpio_17" }; 491aa399e6cSTzuyi Chang static const char * const rtd1315e_i2c4_groups[] = { "gpio_34", "gpio_35" }; 492aa399e6cSTzuyi Chang static const char * const rtd1315e_i2c5_groups[] = { "gpio_29", "gpio_46" }; 493aa399e6cSTzuyi Chang static const char * const rtd1315e_pcie1_groups[] = { "gpio_25" }; 494aa399e6cSTzuyi Chang static const char * const rtd1315e_etn_led_groups[] = { "gpio_14", "gpio_15" }; 495aa399e6cSTzuyi Chang static const char * const rtd1315e_etn_phy_groups[] = { "gpio_14", "gpio_15" }; 496aa399e6cSTzuyi Chang static const char * const rtd1315e_spi_groups[] = { 497aa399e6cSTzuyi Chang "gpio_78", "gpio_79", "gpio_80", "gpio_81" }; 498aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm0_loc0_groups[] = { "gpio_26" }; 499aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm0_loc1_groups[] = { "gpio_20" }; 500aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm1_loc0_groups[] = { "gpio_27" }; 501aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm1_loc1_groups[] = { "gpio_29" }; 502aa399e6cSTzuyi Chang 503aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm2_loc0_groups[] = { "gpio_28" }; 504aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm2_loc1_groups[] = { "gpio_30" }; 505aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm3_loc0_groups[] = { "gpio_47" }; 506aa399e6cSTzuyi Chang static const char * const rtd1315e_pwm3_loc1_groups[] = { "gpio_31" }; 507aa399e6cSTzuyi Chang static const char * const rtd1315e_spdif_optical_loc0_groups[] = { "gpio_20", "spdif_loc" }; 508aa399e6cSTzuyi Chang static const char * const rtd1315e_spdif_optical_loc1_groups[] = { "gpio_6", "spdif_loc" }; 509aa399e6cSTzuyi Chang static const char * const rtd1315e_usb_cc1_groups[] = { "usb_cc1" }; 510aa399e6cSTzuyi Chang static const char * const rtd1315e_usb_cc2_groups[] = { "usb_cc2" }; 511aa399e6cSTzuyi Chang 512aa399e6cSTzuyi Chang static const char * const rtd1315e_sd_groups[] = { 513aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "gpio_34", "gpio_35", 514aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk" }; 515aa399e6cSTzuyi Chang static const char * const rtd1315e_dmic_loc0_groups[] = { 516aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 517aa399e6cSTzuyi Chang "gpio_62", "gpio_1", "gpio_6", "dmic_loc" }; 518aa399e6cSTzuyi Chang static const char * const rtd1315e_dmic_loc1_groups[] = { 519aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "gpio_34", "gpio_35", 520aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk", 521aa399e6cSTzuyi Chang "dmic_loc" }; 522aa399e6cSTzuyi Chang static const char * const rtd1315e_ai_loc0_groups[] = { 523aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 524aa399e6cSTzuyi Chang "gpio_62", "gpio_1", "ai_loc" }; 525aa399e6cSTzuyi Chang static const char * const rtd1315e_ai_loc1_groups[] = { 526aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "gpio_34", "hif_data", 527aa399e6cSTzuyi Chang "hif_en", "hif_rdy", "hif_clk", "ai_loc" }; 528aa399e6cSTzuyi Chang static const char * const rtd1315e_tdm_ai_loc0_groups[] = { 529aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", 530aa399e6cSTzuyi Chang "gpio_60", "tdm_ai_loc" }; 531aa399e6cSTzuyi Chang static const char * const rtd1315e_tdm_ai_loc1_groups[] = { 532aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk", "tdm_ai_loc" }; 533aa399e6cSTzuyi Chang static const char * const rtd1315e_hi_loc0_groups[] = { 534aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk" }; 535aa399e6cSTzuyi Chang static const char * const rtd1315e_hi_m_groups[] = { 536aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk" }; 537aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_i2so_groups[] = { 538aa399e6cSTzuyi Chang "gpio_67", "gpio_68", "gpio_69", "gpio_70"}; 539aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_i2si_loc0_groups[] = { 540aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 541aa399e6cSTzuyi Chang "vtc_i2si_loc" }; 542aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_i2si_loc1_groups[] = { 543aa399e6cSTzuyi Chang "gpio_32", "hif_data", "hif_en", "hif_rdy", "hif_clk", 544aa399e6cSTzuyi Chang "vtc_i2si_loc" }; 545aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_dmic_loc0_groups[] = { 546aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", 547aa399e6cSTzuyi Chang "vtc_dmic_loc" }; 548aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_dmic_loc1_groups[] = { 549aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk", 550aa399e6cSTzuyi Chang "vtc_dmic_loc" }; 551aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_tdm_loc0_groups[] = { 552aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", 553aa399e6cSTzuyi Chang "vtc_tdm_loc" }; 554aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_tdm_loc1_groups[] = { 555aa399e6cSTzuyi Chang "hif_data", "hif_en", "hif_rdy", "hif_clk", 556aa399e6cSTzuyi Chang "vtc_tdm_loc" }; 557aa399e6cSTzuyi Chang static const char * const rtd1315e_dc_fan_groups[] = { "gpio_47" }; 558aa399e6cSTzuyi Chang static const char * const rtd1315e_pll_test_loc0_groups[] = { "gpio_0", "gpio_1" }; 559aa399e6cSTzuyi Chang static const char * const rtd1315e_pll_test_loc1_groups[] = { "gpio_48", "gpio_49" }; 560aa399e6cSTzuyi Chang static const char * const rtd1315e_spdif_groups[] = { "gpio_50" }; 561aa399e6cSTzuyi Chang static const char * const rtd1315e_ir_rx_groups[] = { "ir_rx" }; 562aa399e6cSTzuyi Chang static const char * const rtd1315e_uart2_disable_groups[] = { "ur2_loc" }; 563aa399e6cSTzuyi Chang static const char * const rtd1315e_gspi_disable_groups[] = { "gspi_loc" }; 564aa399e6cSTzuyi Chang static const char * const rtd1315e_hi_width_disable_groups[] = { "hi_width" }; 565aa399e6cSTzuyi Chang static const char * const rtd1315e_hi_width_1bit_groups[] = { "hi_width" }; 566aa399e6cSTzuyi Chang static const char * const rtd1315e_sf_disable_groups[] = { "sf_en" }; 567aa399e6cSTzuyi Chang static const char * const rtd1315e_sf_enable_groups[] = { "sf_en" }; 568aa399e6cSTzuyi Chang static const char * const rtd1315e_scpu_ejtag_loc0_groups[] = { 569aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72", 570aa399e6cSTzuyi Chang "ejtag_scpu_loc" }; 571aa399e6cSTzuyi Chang static const char * const rtd1315e_scpu_ejtag_loc1_groups[] = { 572aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk", 573aa399e6cSTzuyi Chang "ejtag_scpu_loc" }; 574aa399e6cSTzuyi Chang static const char * const rtd1315e_scpu_ejtag_loc2_groups[] = { 575aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 576aa399e6cSTzuyi Chang "ejtag_scpu_loc" }; 577aa399e6cSTzuyi Chang static const char * const rtd1315e_scpu_ejtag_loc3_groups[] = { 578aa399e6cSTzuyi Chang "hif_data" }; 579aa399e6cSTzuyi Chang static const char * const rtd1315e_acpu_ejtag_loc0_groups[] = { 580aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72", 581aa399e6cSTzuyi Chang "ejtag_acpu_loc" }; 582aa399e6cSTzuyi Chang static const char * const rtd1315e_acpu_ejtag_loc1_groups[] = { 583aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk", 584aa399e6cSTzuyi Chang "ejtag_acpu_loc" }; 585aa399e6cSTzuyi Chang static const char * const rtd1315e_acpu_ejtag_loc2_groups[] = { 586aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 587aa399e6cSTzuyi Chang "ejtag_acpu_loc" }; 588aa399e6cSTzuyi Chang static const char * const rtd1315e_vcpu_ejtag_loc0_groups[] = { 589aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72", 590aa399e6cSTzuyi Chang "ejtag_vcpu_loc" }; 591aa399e6cSTzuyi Chang static const char * const rtd1315e_vcpu_ejtag_loc1_groups[] = { 592aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk", 593aa399e6cSTzuyi Chang "ejtag_vcpu_loc" }; 594aa399e6cSTzuyi Chang static const char * const rtd1315e_vcpu_ejtag_loc2_groups[] = { 595aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 596aa399e6cSTzuyi Chang "ejtag_vcpu_loc" }; 597aa399e6cSTzuyi Chang static const char * const rtd1315e_aucpu_ejtag_loc0_groups[] = { 598aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72", 599aa399e6cSTzuyi Chang "ejtag_aucpu_loc" }; 600aa399e6cSTzuyi Chang static const char * const rtd1315e_aucpu_ejtag_loc1_groups[] = { 601aa399e6cSTzuyi Chang "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk", 602aa399e6cSTzuyi Chang "ejtag_aucpu_loc" }; 603aa399e6cSTzuyi Chang static const char * const rtd1315e_aucpu_ejtag_loc2_groups[] = { 604aa399e6cSTzuyi Chang "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61", 605aa399e6cSTzuyi Chang "ejtag_aucpu_loc" }; 606aa399e6cSTzuyi Chang static const char * const rtd1315e_gpu_ejtag_groups[] = { 607aa399e6cSTzuyi Chang "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72" }; 608aa399e6cSTzuyi Chang 609aa399e6cSTzuyi Chang static const char * const rtd1315e_iso_tristate_groups[] = { 610aa399e6cSTzuyi Chang "emmc_rst_n", "emmc_dd_sb", "emmc_clk", "emmc_cmd", 611aa399e6cSTzuyi Chang "emmc_data_0", "emmc_data_1", "emmc_data_2", "emmc_data_3", 612aa399e6cSTzuyi Chang "emmc_data_4", "emmc_data_5", "emmc_data_6", "emmc_data_7", 613aa399e6cSTzuyi Chang "gpio_1", "gpio_7", "gpio_8", "gpio_9", "gpio_10", 614aa399e6cSTzuyi Chang "gpio_11", "usb_cc2", "gpio_32", "gpio_33", "hif_data", 615aa399e6cSTzuyi Chang "hif_en", "hif_rdy", "hif_clk", "ir_rx", "ur0_rx", 616aa399e6cSTzuyi Chang "ur0_tx", "gpio_66", "gpio_67", "gpio_68", "gpio_69", "gpio_70", 617aa399e6cSTzuyi Chang "gpio_71", "gpio_72", "gpio_78", "gpio_79", "gpio_80", "gpio_81" }; 618aa399e6cSTzuyi Chang static const char * const rtd1315e_dbg_out0_groups[] = { 619aa399e6cSTzuyi Chang "gpio_0", "gpio_12", "gpio_13", "gpio_16", "gpio_17", "gpio_26", 620aa399e6cSTzuyi Chang "gpio_27", "gpio_28", "gpio_29", "gpio_30", "gpio_34", "gpio_35", 621aa399e6cSTzuyi Chang "gpio_46", "gpio_48", "gpio_49", "usb_cc1", "gpio_57", "gpio_58", "gpio_59", "gpio_60" }; 622aa399e6cSTzuyi Chang static const char * const rtd1315e_dbg_out1_groups[] = { 623aa399e6cSTzuyi Chang "gpio_6", "gpio_14", "gpio_15", "gpio_18", "gpio_19", "gpio_20", 624aa399e6cSTzuyi Chang "gpio_25", "gpio_31", "gpio_47", "gpio_50", "gpio_59", "gpio_61", 625aa399e6cSTzuyi Chang "gpio_62" }; 626aa399e6cSTzuyi Chang static const char * const rtd1315e_standby_dbg_groups[] = { 627aa399e6cSTzuyi Chang "gpio_1", "gpio_6", "ir_rx" }; 628aa399e6cSTzuyi Chang static const char * const rtd1315e_arm_trace_debug_disable_groups[] = { "arm_trace_dbg_en" }; 629aa399e6cSTzuyi Chang static const char * const rtd1315e_arm_trace_debug_enable_groups[] = { "arm_trace_dbg_en" }; 630aa399e6cSTzuyi Chang static const char * const rtd1315e_aucpu_ejtag_disable_groups[] = { "ejtag_aucpu_loc" }; 631aa399e6cSTzuyi Chang static const char * const rtd1315e_acpu_ejtag_disable_groups[] = { "ejtag_acpu_loc" }; 632aa399e6cSTzuyi Chang static const char * const rtd1315e_vcpu_ejtag_disable_groups[] = { "ejtag_vcpu_loc" }; 633aa399e6cSTzuyi Chang static const char * const rtd1315e_scpu_ejtag_disable_groups[] = { "ejtag_scpu_loc" }; 634aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_dmic_loc_disable_groups[] = { "vtc_dmic_loc" }; 635aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_tdm_disable_groups[] = { "vtc_tdm_loc" }; 636aa399e6cSTzuyi Chang static const char * const rtd1315e_vtc_i2si_disable_groups[] = { "vtc_i2si_loc" }; 637aa399e6cSTzuyi Chang static const char * const rtd1315e_tdm_ai_disable_groups[] = { "tdm_ai_loc" }; 638aa399e6cSTzuyi Chang static const char * const rtd1315e_ai_disable_groups[] = { "ai_loc" }; 639aa399e6cSTzuyi Chang static const char * const rtd1315e_spdif_disable_groups[] = { "spdif_loc" }; 640aa399e6cSTzuyi Chang static const char * const rtd1315e_hif_disable_groups[] = { "hif_en_loc" }; 641aa399e6cSTzuyi Chang static const char * const rtd1315e_hif_enable_groups[] = { "hif_en_loc" }; 642aa399e6cSTzuyi Chang static const char * const rtd1315e_test_loop_groups[] = { "gpio_50" }; 643aa399e6cSTzuyi Chang static const char * const rtd1315e_pmic_pwrup_groups[] = { "gpio_78" }; 644aa399e6cSTzuyi Chang 645aa399e6cSTzuyi Chang #define RTD1315E_FUNC(_name) \ 646aa399e6cSTzuyi Chang { \ 647aa399e6cSTzuyi Chang .name = # _name, \ 648aa399e6cSTzuyi Chang .groups = rtd1315e_ ## _name ## _groups, \ 649aa399e6cSTzuyi Chang .num_groups = ARRAY_SIZE(rtd1315e_ ## _name ## _groups), \ 650aa399e6cSTzuyi Chang } 651aa399e6cSTzuyi Chang 652aa399e6cSTzuyi Chang static const struct rtd_pin_func_desc rtd1315e_pin_functions[] = { 653aa399e6cSTzuyi Chang RTD1315E_FUNC(gpio), 654aa399e6cSTzuyi Chang RTD1315E_FUNC(nf), 655aa399e6cSTzuyi Chang RTD1315E_FUNC(emmc), 656aa399e6cSTzuyi Chang RTD1315E_FUNC(ao), 657aa399e6cSTzuyi Chang RTD1315E_FUNC(gspi_loc0), 658aa399e6cSTzuyi Chang RTD1315E_FUNC(gspi_loc1), 659aa399e6cSTzuyi Chang RTD1315E_FUNC(uart0), 660aa399e6cSTzuyi Chang RTD1315E_FUNC(uart1), 661aa399e6cSTzuyi Chang RTD1315E_FUNC(uart2_loc0), 662aa399e6cSTzuyi Chang RTD1315E_FUNC(uart2_loc1), 663aa399e6cSTzuyi Chang RTD1315E_FUNC(i2c0), 664aa399e6cSTzuyi Chang RTD1315E_FUNC(i2c1), 665aa399e6cSTzuyi Chang RTD1315E_FUNC(i2c4), 666aa399e6cSTzuyi Chang RTD1315E_FUNC(i2c5), 667aa399e6cSTzuyi Chang RTD1315E_FUNC(pcie1), 668aa399e6cSTzuyi Chang RTD1315E_FUNC(etn_led), 669aa399e6cSTzuyi Chang RTD1315E_FUNC(etn_phy), 670aa399e6cSTzuyi Chang RTD1315E_FUNC(spi), 671aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm0_loc0), 672aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm0_loc1), 673aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm1_loc0), 674aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm1_loc1), 675aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm2_loc0), 676aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm2_loc1), 677aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm3_loc0), 678aa399e6cSTzuyi Chang RTD1315E_FUNC(pwm3_loc1), 679aa399e6cSTzuyi Chang RTD1315E_FUNC(spdif_optical_loc0), 680aa399e6cSTzuyi Chang RTD1315E_FUNC(spdif_optical_loc1), 681aa399e6cSTzuyi Chang RTD1315E_FUNC(usb_cc1), 682aa399e6cSTzuyi Chang RTD1315E_FUNC(usb_cc2), 683aa399e6cSTzuyi Chang RTD1315E_FUNC(sd), 684aa399e6cSTzuyi Chang RTD1315E_FUNC(dmic_loc0), 685aa399e6cSTzuyi Chang RTD1315E_FUNC(dmic_loc1), 686aa399e6cSTzuyi Chang RTD1315E_FUNC(ai_loc0), 687aa399e6cSTzuyi Chang RTD1315E_FUNC(ai_loc1), 688aa399e6cSTzuyi Chang RTD1315E_FUNC(tdm_ai_loc0), 689aa399e6cSTzuyi Chang RTD1315E_FUNC(tdm_ai_loc1), 690aa399e6cSTzuyi Chang RTD1315E_FUNC(hi_loc0), 691aa399e6cSTzuyi Chang RTD1315E_FUNC(hi_m), 692aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_i2so), 693aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_i2si_loc0), 694aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_i2si_loc1), 695aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_dmic_loc0), 696aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_dmic_loc1), 697aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_tdm_loc0), 698aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_tdm_loc1), 699aa399e6cSTzuyi Chang RTD1315E_FUNC(dc_fan), 700aa399e6cSTzuyi Chang RTD1315E_FUNC(pll_test_loc0), 701aa399e6cSTzuyi Chang RTD1315E_FUNC(pll_test_loc1), 702aa399e6cSTzuyi Chang RTD1315E_FUNC(ir_rx), 703aa399e6cSTzuyi Chang RTD1315E_FUNC(uart2_disable), 704aa399e6cSTzuyi Chang RTD1315E_FUNC(gspi_disable), 705aa399e6cSTzuyi Chang RTD1315E_FUNC(hi_width_disable), 706aa399e6cSTzuyi Chang RTD1315E_FUNC(hi_width_1bit), 707aa399e6cSTzuyi Chang RTD1315E_FUNC(sf_disable), 708aa399e6cSTzuyi Chang RTD1315E_FUNC(sf_enable), 709aa399e6cSTzuyi Chang RTD1315E_FUNC(scpu_ejtag_loc0), 710aa399e6cSTzuyi Chang RTD1315E_FUNC(scpu_ejtag_loc1), 711aa399e6cSTzuyi Chang RTD1315E_FUNC(scpu_ejtag_loc2), 712aa399e6cSTzuyi Chang RTD1315E_FUNC(scpu_ejtag_loc3), 713aa399e6cSTzuyi Chang RTD1315E_FUNC(acpu_ejtag_loc0), 714aa399e6cSTzuyi Chang RTD1315E_FUNC(acpu_ejtag_loc1), 715aa399e6cSTzuyi Chang RTD1315E_FUNC(acpu_ejtag_loc2), 716aa399e6cSTzuyi Chang RTD1315E_FUNC(vcpu_ejtag_loc0), 717aa399e6cSTzuyi Chang RTD1315E_FUNC(vcpu_ejtag_loc1), 718aa399e6cSTzuyi Chang RTD1315E_FUNC(vcpu_ejtag_loc2), 719aa399e6cSTzuyi Chang RTD1315E_FUNC(aucpu_ejtag_loc0), 720aa399e6cSTzuyi Chang RTD1315E_FUNC(aucpu_ejtag_loc1), 721aa399e6cSTzuyi Chang RTD1315E_FUNC(aucpu_ejtag_loc2), 722aa399e6cSTzuyi Chang RTD1315E_FUNC(gpu_ejtag), 723aa399e6cSTzuyi Chang RTD1315E_FUNC(iso_tristate), 724aa399e6cSTzuyi Chang RTD1315E_FUNC(dbg_out0), 725aa399e6cSTzuyi Chang RTD1315E_FUNC(dbg_out1), 726aa399e6cSTzuyi Chang RTD1315E_FUNC(standby_dbg), 727aa399e6cSTzuyi Chang RTD1315E_FUNC(spdif), 728aa399e6cSTzuyi Chang RTD1315E_FUNC(arm_trace_debug_disable), 729aa399e6cSTzuyi Chang RTD1315E_FUNC(arm_trace_debug_enable), 730aa399e6cSTzuyi Chang RTD1315E_FUNC(aucpu_ejtag_disable), 731aa399e6cSTzuyi Chang RTD1315E_FUNC(acpu_ejtag_disable), 732aa399e6cSTzuyi Chang RTD1315E_FUNC(vcpu_ejtag_disable), 733aa399e6cSTzuyi Chang RTD1315E_FUNC(scpu_ejtag_disable), 734aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_dmic_loc_disable), 735aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_tdm_disable), 736aa399e6cSTzuyi Chang RTD1315E_FUNC(vtc_i2si_disable), 737aa399e6cSTzuyi Chang RTD1315E_FUNC(tdm_ai_disable), 738aa399e6cSTzuyi Chang RTD1315E_FUNC(ai_disable), 739aa399e6cSTzuyi Chang RTD1315E_FUNC(spdif_disable), 740aa399e6cSTzuyi Chang RTD1315E_FUNC(hif_disable), 741aa399e6cSTzuyi Chang RTD1315E_FUNC(hif_enable), 742aa399e6cSTzuyi Chang RTD1315E_FUNC(test_loop), 743aa399e6cSTzuyi Chang RTD1315E_FUNC(pmic_pwrup), 744aa399e6cSTzuyi Chang }; 745aa399e6cSTzuyi Chang 746aa399e6cSTzuyi Chang #undef RTD1315E_FUNC 747aa399e6cSTzuyi Chang 748aa399e6cSTzuyi Chang static const struct rtd_pin_desc rtd1315e_iso_muxes[ARRAY_SIZE(rtd1315e_iso_pins)] = { 749aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_RST_N] = RTK_PIN_MUX(emmc_rst_n, 0x0, GENMASK(3, 0), 750aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 751aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "nf"), 752aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "emmc"), 753aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")), 754aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DD_SB] = RTK_PIN_MUX(emmc_dd_sb, 0x0, GENMASK(7, 4), 755aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 756aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "emmc"), 757aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")), 758aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_CLK] = RTK_PIN_MUX(emmc_clk, 0x0, GENMASK(11, 8), 759aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 760aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "nf"), 761aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "emmc"), 762aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")), 763aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_CMD] = RTK_PIN_MUX(emmc_cmd, 0x0, GENMASK(15, 12), 764aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 765aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"), 766aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "emmc"), 767aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 768aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_0] = RTK_PIN_MUX(emmc_data_0, 0x0, GENMASK(19, 16), 769aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 770aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "nf"), 771aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "emmc"), 772aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")), 773aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_1] = RTK_PIN_MUX(emmc_data_1, 0x0, GENMASK(23, 20), 774aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 775aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "nf"), 776aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "emmc"), 777aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 778aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_2] = RTK_PIN_MUX(emmc_data_2, 0x0, GENMASK(27, 24), 779aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 780aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "nf"), 781aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "emmc"), 782aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")), 783aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_3] = RTK_PIN_MUX(emmc_data_3, 0x0, GENMASK(31, 28), 784aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 785aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "nf"), 786aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "emmc"), 787aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")), 788aa399e6cSTzuyi Chang 789aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_4] = RTK_PIN_MUX(emmc_data_4, 0x4, GENMASK(3, 0), 790aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 791aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "nf"), 792aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "emmc"), 793aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")), 794aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_5] = RTK_PIN_MUX(emmc_data_5, 0x4, GENMASK(7, 4), 795aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 796aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "nf"), 797aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "emmc"), 798aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")), 799aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_6] = RTK_PIN_MUX(emmc_data_6, 0x4, GENMASK(11, 8), 800aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 801aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "nf"), 802aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "emmc"), 803aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")), 804aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_7] = RTK_PIN_MUX(emmc_data_7, 0x4, GENMASK(15, 12), 805aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 806aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"), 807aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "emmc"), 808aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 809aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_0] = RTK_PIN_MUX(gpio_0, 0x4, GENMASK(19, 16), 810aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 811aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pll_test_loc0"), 812aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out0")), 813aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_1] = RTK_PIN_MUX(gpio_1, 0x4, GENMASK(23, 20), 814aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 815aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "standby_dbg"), 816aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "pll_test_loc0"), 817aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 20), "dmic_loc0"), 818aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "ai_loc0"), 819aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 820aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_6] = RTK_PIN_MUX(gpio_6, 0x4, GENMASK(27, 24), 821aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 822aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "standby_dbg"), 823aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc0"), 824aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "spdif_optical_loc1"), 825aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")), 826aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_7] = RTK_PIN_MUX(gpio_7, 0x4, GENMASK(31, 28), 827aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 828aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")), 829aa399e6cSTzuyi Chang 830aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_8] = RTK_PIN_MUX(gpio_8, 0x8, GENMASK(3, 0), 831aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 832aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart1"), 833aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "gspi_loc1"), 834aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")), 835aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_9] = RTK_PIN_MUX(gpio_9, 0x8, GENMASK(7, 4), 836aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 837aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "uart1"), 838aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "gspi_loc1"), 839aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")), 840aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_10] = RTK_PIN_MUX(gpio_10, 0x8, GENMASK(11, 8), 841aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 842aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "uart1"), 843aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "gspi_loc1"), 844aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")), 845aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_11] = RTK_PIN_MUX(gpio_11, 0x8, GENMASK(15, 12), 846aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 847aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "uart1"), 848aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "gspi_loc1"), 849aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 850aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_12] = RTK_PIN_MUX(gpio_12, 0x8, GENMASK(19, 16), 851aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 852aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "i2c0"), 853aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out0")), 854aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_13] = RTK_PIN_MUX(gpio_13, 0x8, GENMASK(23, 20), 855aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 856aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "i2c0"), 857aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "dbg_out0")), 858aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_14] = RTK_PIN_MUX(gpio_14, 0x8, GENMASK(27, 24), 859aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 860aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "etn_led"), 861aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "etn_phy"), 862aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")), 863aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_15] = RTK_PIN_MUX(gpio_15, 0x8, GENMASK(31, 28), 864aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 865aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "etn_led"), 866aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "etn_phy"), 867aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out1")), 868aa399e6cSTzuyi Chang 869aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_16] = RTK_PIN_MUX(gpio_16, 0xc, GENMASK(3, 0), 870aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 871aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "i2c1"), 872aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")), 873aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_17] = RTK_PIN_MUX(gpio_17, 0xc, GENMASK(7, 4), 874aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 875aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "i2c1"), 876aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")), 877aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_18] = RTK_PIN_MUX(gpio_18, 0xc, GENMASK(11, 8), 878aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 879aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "uart2_loc0"), 880aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "gspi_loc0"), 881aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out1")), 882aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_19] = RTK_PIN_MUX(gpio_19, 0xc, GENMASK(15, 12), 883aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 884aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "uart2_loc0"), 885aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "gspi_loc0"), 886aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out1")), 887aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_20] = RTK_PIN_MUX(gpio_20, 0xc, GENMASK(19, 16), 888aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 889aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart2_loc0"), 890aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pwm0_loc1"), 891aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "gspi_loc0"), 892aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 16), "spdif_optical_loc0"), 893aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out1")), 894aa399e6cSTzuyi Chang [RTD1315E_ISO_USB_CC2] = RTK_PIN_MUX(usb_cc2, 0xc, GENMASK(23, 20), 895aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 896aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "usb_cc2"), 897aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 898aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_25] = RTK_PIN_MUX(gpio_25, 0xc, GENMASK(27, 24), 899aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 900aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "uart2_loc1"), 901aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "pcie1"), 902aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")), 903aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_26] = RTK_PIN_MUX(gpio_26, 0xc, GENMASK(31, 28), 904aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 905aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "uart2_loc1"), 906aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "pwm0_loc0"), 907aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")), 908aa399e6cSTzuyi Chang 909aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_27] = RTK_PIN_MUX(gpio_27, 0x10, GENMASK(3, 0), 910aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 911aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc1"), 912aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "pwm1_loc0"), 913aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")), 914aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_28] = RTK_PIN_MUX(gpio_28, 0x10, GENMASK(7, 4), 915aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 916aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "uart2_loc1"), 917aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "pwm2_loc0"), 918aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")), 919aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_29] = RTK_PIN_MUX(gpio_29, 0x10, GENMASK(11, 8), 920aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 921aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "i2c5"), 922aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "pwm1_loc1"), 923aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out0")), 924aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_30] = RTK_PIN_MUX(gpio_30, 0x10, GENMASK(15, 12), 925aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 926aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "pwm2_loc1"), 927aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out0")), 928aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_31] = RTK_PIN_MUX(gpio_31, 0x10, GENMASK(19, 16), 929aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 930aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart2_loc0"), 931aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pwm3_loc1"), 932aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "gspi_loc0"), 933aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out1")), 934aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_32] = RTK_PIN_MUX(gpio_32, 0x10, GENMASK(23, 20), 935aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 936aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "sd"), 937aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "aucpu_ejtag_loc1"), 938aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 20), "dmic_loc1"), 939aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 20), "scpu_ejtag_loc1"), 940aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 20), "acpu_ejtag_loc1"), 941aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 20), "vcpu_ejtag_loc1"), 942aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 20), "ai_loc1"), 943aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 20), "vtc_i2si_loc1"), 944aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 945aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_33] = RTK_PIN_MUX(gpio_33, 0x10, GENMASK(27, 24), 946aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 947aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "sd"), 948aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "aucpu_ejtag_loc1"), 949aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc1"), 950aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "scpu_ejtag_loc1"), 951aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc1"), 952aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc1"), 953aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 24), "ai_loc1"), 954aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")), 955aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_34] = RTK_PIN_MUX(gpio_34, 0x10, GENMASK(31, 28), 956aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 957aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "sd"), 958aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "dmic_loc1"), 959aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 28), "i2c4"), 960aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 28), "ai_loc1"), 961aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")), 962aa399e6cSTzuyi Chang 963aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_35] = RTK_PIN_MUX(gpio_35, 0x14, GENMASK(3, 0), 964aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 965aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "sd"), 966aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc1"), 967aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "i2c4"), 968aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")), 969aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_DATA] = RTK_PIN_MUX(hif_data, 0x14, GENMASK(7, 4), 970aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 971aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "sd"), 972aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "aucpu_ejtag_loc1"), 973aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "dmic_loc1"), 974aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 4), "tdm_ai_loc1"), 975aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "scpu_ejtag_loc1"), 976aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc1"), 977aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc1"), 978aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 4), "ai_loc1"), 979aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 4), "hi_loc0"), 980aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xa, 4), "hi_m"), 981aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 4), "vtc_i2si_loc1"), 982aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "vtc_tdm_loc1"), 983aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 4), "vtc_dmic_loc1"), 984aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 4), "scpu_ejtag_loc3"), 985aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")), 986aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_EN] = RTK_PIN_MUX(hif_en, 0x14, GENMASK(11, 8), 987aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 988aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "sd"), 989aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "aucpu_ejtag_loc1"), 990aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "dmic_loc1"), 991aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 8), "tdm_ai_loc1"), 992aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "scpu_ejtag_loc1"), 993aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc1"), 994aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc1"), 995aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 8), "ai_loc1"), 996aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 8), "hi_loc0"), 997aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xa, 8), "hi_m"), 998aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 8), "vtc_i2si_loc1"), 999aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 8), "vtc_tdm_loc1"), 1000aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 8), "vtc_dmic_loc1"), 1001aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")), 1002aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_RDY] = RTK_PIN_MUX(hif_rdy, 0x14, GENMASK(15, 12), 1003aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 1004aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "sd"), 1005aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "dmic_loc1"), 1006aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 12), "tdm_ai_loc1"), 1007aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 12), "ai_loc1"), 1008aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 12), "hi_loc0"), 1009aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xa, 12), "hi_m"), 1010aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 12), "vtc_i2si_loc1"), 1011aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 12), "vtc_tdm_loc1"), 1012aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 12), "vtc_dmic_loc1"), 1013aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 1014aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_CLK] = RTK_PIN_MUX(hif_clk, 0x14, GENMASK(19, 16), 1015aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 1016aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "sd"), 1017aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "aucpu_ejtag_loc1"), 1018aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "dmic_loc1"), 1019aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 16), "tdm_ai_loc1"), 1020aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 16), "scpu_ejtag_loc1"), 1021aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 16), "acpu_ejtag_loc1"), 1022aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 16), "vcpu_ejtag_loc1"), 1023aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x8, 16), "ai_loc1"), 1024aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 16), "hi_loc0"), 1025aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xa, 16), "hi_m"), 1026aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 16), "vtc_i2si_loc1"), 1027aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 16), "vtc_tdm_loc1"), 1028aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 16), "vtc_dmic_loc1"), 1029aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")), 1030aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_46] = RTK_PIN_MUX(gpio_46, 0x14, GENMASK(23, 20), 1031aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 1032aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "i2c5"), 1033aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "dbg_out0")), 1034aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_47] = RTK_PIN_MUX(gpio_47, 0x14, GENMASK(27, 24), 1035aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 1036aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "dc_fan"), 1037aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "pwm3_loc0"), 1038aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")), 1039aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_48] = RTK_PIN_MUX(gpio_48, 0x14, GENMASK(31, 28), 1040aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 1041aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "pll_test_loc1"), 1042aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")), 1043aa399e6cSTzuyi Chang 1044aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_49] = RTK_PIN_MUX(gpio_49, 0x18, GENMASK(3, 0), 1045aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 1046aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "pll_test_loc1"), 1047aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")), 1048aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_50] = RTK_PIN_MUX(gpio_50, 0x18, GENMASK(7, 4), 1049aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 1050aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "spdif"), 1051aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "test_loop"), 1052aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out1")), 1053aa399e6cSTzuyi Chang [RTD1315E_ISO_USB_CC1] = RTK_PIN_MUX(usb_cc1, 0x18, GENMASK(11, 8), 1054aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 1055aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "usb_cc1"), 1056aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out0")), 1057aa399e6cSTzuyi Chang [RTD1315E_ISO_IR_RX] = RTK_PIN_MUX(ir_rx, 0x18, GENMASK(15, 12), 1058aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 1059aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "ir_rx"), 1060aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "standby_dbg"), 1061aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 1062aa399e6cSTzuyi Chang [RTD1315E_ISO_UR0_RX] = RTK_PIN_MUX(ur0_rx, 0x18, GENMASK(19, 16), 1063aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 1064aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart0"), 1065aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")), 1066aa399e6cSTzuyi Chang [RTD1315E_ISO_UR0_TX] = RTK_PIN_MUX(ur0_tx, 0x18, GENMASK(23, 20), 1067aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 1068aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "uart0"), 1069aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 1070aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_57] = RTK_PIN_MUX(gpio_57, 0x18, GENMASK(27, 24), 1071aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 1072aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "tdm_ai_loc0"), 1073aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "ai_loc0"), 1074aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc0"), 1075aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc2"), 1076aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc2"), 1077aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 24), "aucpu_ejtag_loc2"), 1078aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 24), "vtc_i2si_loc0"), 1079aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 24), "vtc_tdm_loc0"), 1080aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 24), "vtc_dmic_loc0"), 1081aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 24), "scpu_ejtag_loc2"), 1082aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out0")), 1083aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_58] = RTK_PIN_MUX(gpio_58, 0x18, GENMASK(31, 28), 1084aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 1085aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "tdm_ai_loc0"), 1086aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "ai_loc0"), 1087aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "dmic_loc0"), 1088aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 28), "acpu_ejtag_loc2"), 1089aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 28), "vcpu_ejtag_loc2"), 1090aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 28), "aucpu_ejtag_loc2"), 1091aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 28), "vtc_i2si_loc0"), 1092aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 28), "vtc_tdm_loc0"), 1093aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 28), "vtc_dmic_loc0"), 1094aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 28), "scpu_ejtag_loc2"), 1095aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")), 1096aa399e6cSTzuyi Chang 1097aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_59] = RTK_PIN_MUX(gpio_59, 0x1c, GENMASK(3, 0), 1098aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 1099aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "tdm_ai_loc0"), 1100aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "ai_loc0"), 1101aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc0"), 1102aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc2"), 1103aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc2"), 1104aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 0), "aucpu_ejtag_loc2"), 1105aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 0), "vtc_i2si_loc0"), 1106aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 0), "vtc_tdm_loc0"), 1107aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 0), "vtc_dmic_loc0"), 1108aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 0), "scpu_ejtag_loc2"), 1109aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out1")), 1110aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_60] = RTK_PIN_MUX(gpio_60, 0x1c, GENMASK(7, 4), 1111aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 1112aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "tdm_ai_loc0"), 1113aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "ai_loc0"), 1114aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "dmic_loc0"), 1115aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc2"), 1116aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc2"), 1117aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 4), "aucpu_ejtag_loc2"), 1118aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 4), "vtc_i2si_loc0"), 1119aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "vtc_tdm_loc0"), 1120aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xd, 4), "vtc_dmic_loc0"), 1121aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 4), "scpu_ejtag_loc2"), 1122aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")), 1123aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_61] = RTK_PIN_MUX(gpio_61, 0x1c, GENMASK(11, 8), 1124aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 1125aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "ai_loc0"), 1126aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "dmic_loc0"), 1127aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc2"), 1128aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc2"), 1129aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x9, 8), "aucpu_ejtag_loc2"), 1130aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 8), "vtc_i2si_loc0"), 1131aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xe, 8), "scpu_ejtag_loc2"), 1132aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out1")), 1133aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_62] = RTK_PIN_MUX(gpio_62, 0x1c, GENMASK(15, 12), 1134aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 1135aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "ai_loc0"), 1136aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "dmic_loc0"), 1137aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out1")), 1138aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_66] = RTK_PIN_MUX(gpio_66, 0x1c, GENMASK(19, 16), 1139aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 1140aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 16), "ao"), 1141aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")), 1142aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_67] = RTK_PIN_MUX(gpio_67, 0x1c, GENMASK(23, 20), 1143aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 1144aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 20), "vtc_i2so"), 1145aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 20), "ao"), 1146aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 1147aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_68] = RTK_PIN_MUX(gpio_68, 0x1c, GENMASK(27, 24), 1148aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 1149aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "aucpu_ejtag_loc0"), 1150aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "gpu_ejtag"), 1151aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "scpu_ejtag_loc0"), 1152aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc0"), 1153aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc0"), 1154aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 24), "vtc_i2so"), 1155aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 24), "ao"), 1156aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")), 1157aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_69] = RTK_PIN_MUX(gpio_69, 0x1c, GENMASK(31, 28), 1158aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"), 1159aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "aucpu_ejtag_loc0"), 1160aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 28), "gpu_ejtag"), 1161aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 28), "scpu_ejtag_loc0"), 1162aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 28), "acpu_ejtag_loc0"), 1163aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 28), "vcpu_ejtag_loc0"), 1164aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 28), "vtc_i2so"), 1165aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 28), "ao"), 1166aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")), 1167aa399e6cSTzuyi Chang 1168aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_70] = RTK_PIN_MUX(gpio_70, 0x20, GENMASK(3, 0), 1169aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"), 1170aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "aucpu_ejtag_loc0"), 1171aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 0), "gpu_ejtag"), 1172aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "scpu_ejtag_loc0"), 1173aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc0"), 1174aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc0"), 1175aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xb, 0), "vtc_i2so"), 1176aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 0), "ao"), 1177aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")), 1178aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_71] = RTK_PIN_MUX(gpio_71, 0x20, GENMASK(7, 4), 1179aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"), 1180aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "aucpu_ejtag_loc0"), 1181aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 4), "gpu_ejtag"), 1182aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "scpu_ejtag_loc0"), 1183aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc0"), 1184aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc0"), 1185aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "ao"), 1186aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")), 1187aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_72] = RTK_PIN_MUX(gpio_72, 0x20, GENMASK(11, 8), 1188aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"), 1189aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "aucpu_ejtag_loc0"), 1190aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 8), "gpu_ejtag"), 1191aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "scpu_ejtag_loc0"), 1192aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc0"), 1193aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc0"), 1194aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xc, 8), "ao"), 1195aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")), 1196aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_78] = RTK_PIN_MUX(gpio_78, 0x20, GENMASK(15, 12), 1197aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"), 1198aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"), 1199aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "pmic_pwrup"), 1200aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 12), "spi"), 1201aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")), 1202aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_79] = RTK_PIN_MUX(gpio_79, 0x20, GENMASK(19, 16), 1203aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"), 1204aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "nf"), 1205aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 16), "spi"), 1206aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")), 1207aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_80] = RTK_PIN_MUX(gpio_80, 0x20, GENMASK(23, 20), 1208aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"), 1209aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "nf"), 1210aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 20), "spi"), 1211aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")), 1212aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_81] = RTK_PIN_MUX(gpio_81, 0x20, GENMASK(27, 24), 1213aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"), 1214aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "nf"), 1215aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "spi"), 1216aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")), 1217aa399e6cSTzuyi Chang 1218aa399e6cSTzuyi Chang [RTD1315E_ISO_UR2_LOC] = RTK_PIN_MUX(ur2_loc, 0x120, GENMASK(1, 0), 1219aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "uart2_disable"), 1220aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc0"), 1221aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "uart2_loc1")), 1222aa399e6cSTzuyi Chang [RTD1315E_ISO_GSPI_LOC] = RTK_PIN_MUX(gspi_loc, 0x120, GENMASK(3, 2), 1223aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "gspi_disable"), 1224aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "gspi_loc0"), 1225aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "gspi_loc1")), 1226aa399e6cSTzuyi Chang [RTD1315E_ISO_HI_WIDTH] = RTK_PIN_MUX(hi_width, 0x120, GENMASK(9, 8), 1227aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "hi_width_disable"), 1228aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "hi_width_1bit")), 1229aa399e6cSTzuyi Chang [RTD1315E_ISO_SF_EN] = RTK_PIN_MUX(sf_en, 0x120, GENMASK(11, 11), 1230aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "sf_disable"), 1231aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 11), "sf_enable")), 1232aa399e6cSTzuyi Chang [RTD1315E_ISO_ARM_TRACE_DBG_EN] = RTK_PIN_MUX(arm_trace_dbg_en, 0x120, GENMASK(12, 12), 1233aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "arm_trace_debug_disable"), 1234aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "arm_trace_debug_enable")), 1235aa399e6cSTzuyi Chang [RTD1315E_ISO_EJTAG_AUCPU_LOC] = RTK_PIN_MUX(ejtag_aucpu_loc, 0x120, GENMASK(16, 14), 1236aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "aucpu_ejtag_disable"), 1237aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "aucpu_ejtag_loc0"), 1238aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 14), "aucpu_ejtag_loc1"), 1239aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 14), "aucpu_ejtag_loc2")), 1240aa399e6cSTzuyi Chang [RTD1315E_ISO_EJTAG_ACPU_LOC] = RTK_PIN_MUX(ejtag_acpu_loc, 0x120, GENMASK(19, 17), 1241aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 17), "acpu_ejtag_disable"), 1242aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 17), "acpu_ejtag_loc0"), 1243aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 17), "acpu_ejtag_loc1"), 1244aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 17), "acpu_ejtag_loc2")), 1245aa399e6cSTzuyi Chang [RTD1315E_ISO_EJTAG_VCPU_LOC] = RTK_PIN_MUX(ejtag_vcpu_loc, 0x120, GENMASK(22, 20), 1246aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "vcpu_ejtag_disable"), 1247aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "vcpu_ejtag_loc0"), 1248aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "vcpu_ejtag_loc1"), 1249aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "vcpu_ejtag_loc2")), 1250aa399e6cSTzuyi Chang [RTD1315E_ISO_EJTAG_SCPU_LOC] = RTK_PIN_MUX(ejtag_scpu_loc, 0x120, GENMASK(25, 23), 1251aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "scpu_ejtag_disable"), 1252aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 23), "scpu_ejtag_loc0"), 1253aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 23), "scpu_ejtag_loc1"), 1254aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x4, 23), "scpu_ejtag_loc2")), 1255aa399e6cSTzuyi Chang [RTD1315E_ISO_DMIC_LOC] = RTK_PIN_MUX(dmic_loc, 0x120, GENMASK(27, 26), 1256aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "dmic_loc0"), 1257aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 26), "dmic_loc1")), 1258aa399e6cSTzuyi Chang 1259aa399e6cSTzuyi Chang [RTD1315E_ISO_VTC_DMIC_LOC] = RTK_PIN_MUX(vtc_dmic_loc, 0x128, GENMASK(1, 0), 1260aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "vtc_dmic_loc_disable"), 1261aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "vtc_dmic_loc0"), 1262aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "vtc_dmic_loc1")), 1263aa399e6cSTzuyi Chang [RTD1315E_ISO_VTC_TDM_LOC] = RTK_PIN_MUX(vtc_tdm_loc, 0x128, GENMASK(3, 2), 1264aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "vtc_tdm_disable"), 1265aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "vtc_tdm_loc0"), 1266aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "vtc_tdm_loc1")), 1267aa399e6cSTzuyi Chang [RTD1315E_ISO_VTC_I2SI_LOC] = RTK_PIN_MUX(vtc_i2si_loc, 0x128, GENMASK(5, 4), 1268aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "vtc_i2si_disable"), 1269aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "vtc_i2si_loc0"), 1270aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "vtc_i2si_loc1")), 1271aa399e6cSTzuyi Chang [RTD1315E_ISO_TDM_AI_LOC] = RTK_PIN_MUX(tdm_ai_loc, 0x128, GENMASK(7, 6), 1272aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "tdm_ai_disable"), 1273aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "tdm_ai_loc0"), 1274aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 6), "tdm_ai_loc1")), 1275aa399e6cSTzuyi Chang [RTD1315E_ISO_AI_LOC] = RTK_PIN_MUX(ai_loc, 0x128, GENMASK(9, 8), 1276aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "ai_disable"), 1277aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "ai_loc0"), 1278aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "ai_loc1")), 1279aa399e6cSTzuyi Chang [RTD1315E_ISO_SPDIF_LOC] = RTK_PIN_MUX(spdif_loc, 0x128, GENMASK(11, 10), 1280aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "spdif_disable"), 1281aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "spdif_optical_loc0"), 1282aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "spdif_optical_loc1")), 1283aa399e6cSTzuyi Chang 1284aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_EN_LOC] = RTK_PIN_MUX(hif_en_loc, 0x12c, GENMASK(2, 0), 1285aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "hif_disable"), 1286aa399e6cSTzuyi Chang RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "hif_enable")), 1287aa399e6cSTzuyi Chang }; 1288aa399e6cSTzuyi Chang 1289aa399e6cSTzuyi Chang static const struct rtd_pin_config_desc rtd1315e_iso_configs[ARRAY_SIZE(rtd1315e_iso_pins)] = { 1290aa399e6cSTzuyi Chang [RTD1315E_ISO_BOOT_SEL] = RTK_PIN_CONFIG(boot_sel, 0x24, 0, 0, 1, NA, 2, 3, NA), 1291aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_CLK] = RTK_PIN_CONFIG(emmc_clk, 0x24, 4, 0, 1, NA, 2, 12, NA), 1292aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_CMD] = RTK_PIN_CONFIG(emmc_cmd, 0x24, 17, 0, 1, NA, 2, 13, NA), 1293aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_0] = RTK_PIN_CONFIG(emmc_data_0, 0x28, 0, 0, 1, NA, 2, 12, NA), 1294aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_1] = RTK_PIN_CONFIG(emmc_data_1, 0x28, 13, 0, 1, NA, 2, 12, NA), 1295aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_2] = RTK_PIN_CONFIG(emmc_data_2, 0x2c, 0, 0, 1, NA, 2, 12, NA), 1296aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_3] = RTK_PIN_CONFIG(emmc_data_3, 0x2c, 13, 0, 1, NA, 2, 12, NA), 1297aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_4] = RTK_PIN_CONFIG(emmc_data_4, 0x30, 0, 0, 1, NA, 2, 12, NA), 1298aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_5] = RTK_PIN_CONFIG(emmc_data_5, 0x30, 13, 0, 1, NA, 2, 12, NA), 1299aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_6] = RTK_PIN_CONFIG(emmc_data_6, 0x34, 0, 0, 1, NA, 2, 12, NA), 1300aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DATA_7] = RTK_PIN_CONFIG(emmc_data_7, 0x34, 13, 0, 1, NA, 2, 12, NA), 1301aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_DD_SB] = RTK_PIN_CONFIG(emmc_dd_sb, 0x38, 0, 0, 1, NA, 2, 12, NA), 1302aa399e6cSTzuyi Chang [RTD1315E_ISO_EMMC_RST_N] = RTK_PIN_CONFIG(emmc_rst_n, 0x38, 13, 0, 1, NA, 2, 12, NA), 1303aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_1] = RTK_PIN_CONFIG(gpio_1, 0x3c, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1304aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_6] = RTK_PIN_CONFIG(gpio_6, 0x3c, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1305aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_7] = RTK_PIN_CONFIG(gpio_7, 0x3c, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1306aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_8] = RTK_PIN_CONFIG(gpio_8, 0x3c, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1307aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_9] = RTK_PIN_CONFIG(gpio_9, 0x3c, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1308aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_10] = RTK_PIN_CONFIG(gpio_10, 0x3c, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1309aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_11] = RTK_PIN_CONFIG(gpio_11, 0x40, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1310aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_12] = RTK_PIN_CONFIG(gpio_12, 0x40, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1311aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_13] = RTK_PIN_CONFIG(gpio_13, 0x40, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1312aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_14] = RTK_PIN_CONFIG(gpio_14, 0x40, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1313aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_15] = RTK_PIN_CONFIG(gpio_15, 0x40, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1314aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_16] = RTK_PIN_CONFIG(gpio_16, 0x40, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1315aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_17] = RTK_PIN_CONFIG(gpio_17, 0x44, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1316aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_18] = RTK_PIN_CONFIG(gpio_18, 0x44, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1317aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_19] = RTK_PIN_CONFIG(gpio_19, 0x44, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1318aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_20] = RTK_PIN_CONFIG(gpio_20, 0x44, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1319aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_25] = RTK_PIN_CONFIG(gpio_25, 0x44, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1320aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_26] = RTK_PIN_CONFIG(gpio_26, 0x44, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1321aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_27] = RTK_PIN_CONFIG(gpio_27, 0x48, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1322aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_28] = RTK_PIN_CONFIG(gpio_28, 0x48, 6, 1, 2, 0, 3, 4, PADDRI_4_8), 1323aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_29] = RTK_PIN_CONFIG(gpio_29, 0x48, 12, 1, 2, 0, 3, 4, PADDRI_4_8), 1324aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_30] = RTK_PIN_CONFIG(gpio_30, 0x48, 17, 1, 2, 0, 3, 4, PADDRI_4_8), 1325aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_31] = RTK_PIN_CONFIG(gpio_31, 0x4c, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1326aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_32] = RTK_PIN_CONFIG(gpio_32, 0x4c, 5, 0, 1, NA, 2, 12, NA), 1327aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_33] = RTK_PIN_CONFIG(gpio_33, 0x4c, 18, 0, 1, NA, 2, 12, NA), 1328aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_34] = RTK_PIN_CONFIG(gpio_34, 0x50, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1329aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_35] = RTK_PIN_CONFIG(gpio_35, 0x50, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1330aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_46] = RTK_PIN_CONFIG(gpio_46, 0x50, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1331aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_47] = RTK_PIN_CONFIG(gpio_47, 0x50, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1332aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_48] = RTK_PIN_CONFIG(gpio_48, 0x50, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1333aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_49] = RTK_PIN_CONFIG(gpio_49, 0x50, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1334aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_50] = RTK_PIN_CONFIG(gpio_50, 0x54, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1335aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_57] = RTK_PIN_CONFIG(gpio_57, 0x54, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1336aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_58] = RTK_PIN_CONFIG(gpio_58, 0x54, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1337aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_59] = RTK_PIN_CONFIG(gpio_59, 0x54, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1338aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_60] = RTK_PIN_CONFIG(gpio_60, 0x54, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1339aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_61] = RTK_PIN_CONFIG(gpio_61, 0x54, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1340aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_62] = RTK_PIN_CONFIG(gpio_62, 0x58, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1341aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_66] = RTK_PIN_CONFIG(gpio_66, 0x58, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1342aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_67] = RTK_PIN_CONFIG(gpio_67, 0x58, 10, 1, 2, 0, 3, 4, PADDRI_4_8), 1343aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_68] = RTK_PIN_CONFIG(gpio_68, 0x58, 15, 1, 2, 0, 3, 4, PADDRI_4_8), 1344aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_69] = RTK_PIN_CONFIG(gpio_69, 0x58, 20, 1, 2, 0, 3, 4, PADDRI_4_8), 1345aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_70] = RTK_PIN_CONFIG(gpio_70, 0x58, 25, 1, 2, 0, 3, 4, PADDRI_4_8), 1346aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_71] = RTK_PIN_CONFIG(gpio_71, 0x5c, 0, 1, 2, 0, 3, 4, PADDRI_4_8), 1347aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_72] = RTK_PIN_CONFIG(gpio_72, 0x5c, 5, 1, 2, 0, 3, 4, PADDRI_4_8), 1348aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_78] = RTK_PIN_CONFIG(gpio_78, 0x5c, 10, 0, 1, NA, 2, 12, NA), 1349aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_79] = RTK_PIN_CONFIG(gpio_79, 0x60, 0, 0, 1, NA, 2, 12, NA), 1350aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_80] = RTK_PIN_CONFIG(gpio_80, 0x60, 13, 0, 1, NA, 2, 12, NA), 1351aa399e6cSTzuyi Chang [RTD1315E_ISO_GPIO_81] = RTK_PIN_CONFIG(gpio_81, 0x64, 0, 0, 1, NA, 2, 12, NA), 1352aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_CLK] = RTK_PIN_CONFIG(hif_clk, 0x64, 13, 0, 1, NA, 2, 12, NA), 1353aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_DATA] = RTK_PIN_CONFIG(hif_data, 0x68, 0, 0, 1, NA, 2, 12, NA), 1354aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_EN] = RTK_PIN_CONFIG(hif_en, 0x68, 13, 0, 1, NA, 2, 12, NA), 1355aa399e6cSTzuyi Chang [RTD1315E_ISO_HIF_RDY] = RTK_PIN_CONFIG(hif_rdy, 0x68, 26, 0, 1, NA, 2, 12, NA), 1356aa399e6cSTzuyi Chang [RTD1315E_ISO_IR_RX] = RTK_PIN_CONFIG(ir_rx, 0x6c, 7, 1, 2, 0, 3, 4, PADDRI_4_8), 1357aa399e6cSTzuyi Chang [RTD1315E_ISO_RESET_N] = RTK_PIN_CONFIG(reset_n, 0x6c, 12, 0, 1, NA, 2, 3, PADDRI_4_8), 1358aa399e6cSTzuyi Chang [RTD1315E_ISO_SCAN_SWITCH] = RTK_PIN_CONFIG(scan_switch, 0x6c, 16, NA, NA, 0, 1, 2, PADDRI_4_8), 1359aa399e6cSTzuyi Chang [RTD1315E_ISO_TESTMODE] = RTK_PIN_CONFIG(testmode, 0x6c, 19, 0, 1, NA, 2, 3, PADDRI_4_8), 1360aa399e6cSTzuyi Chang [RTD1315E_ISO_UR0_RX] = RTK_PIN_CONFIG(ur0_rx, 0x6c, 23, 1, 2, 0, 3, 4, PADDRI_4_8), 1361aa399e6cSTzuyi Chang [RTD1315E_ISO_UR0_TX] = RTK_PIN_CONFIG(ur0_tx, 0x6c, 28, 1, 2, 0, 3, 4, PADDRI_4_8), 1362aa399e6cSTzuyi Chang [RTD1315E_ISO_USB_CC1] = RTK_PIN_CONFIG(usb_cc1, 0x70, 1, NA, NA, 0, 1, 2, PADDRI_4_8), 1363aa399e6cSTzuyi Chang [RTD1315E_ISO_USB_CC2] = RTK_PIN_CONFIG(usb_cc2, 0x70, 4, NA, NA, 0, 1, 2, PADDRI_4_8), 1364aa399e6cSTzuyi Chang [RTD1315E_ISO_WD_RSET] = RTK_PIN_CONFIG(wd_rset, 0x70, 7, 1, 2, 0, 3, 4, PADDRI_4_8), 1365aa399e6cSTzuyi Chang }; 1366aa399e6cSTzuyi Chang 1367aa399e6cSTzuyi Chang static const struct rtd_pin_sconfig_desc rtd1315e_iso_sconfigs[] = { 1368aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_clk, 0x24, 7, 3, 10, 3, 13, 3), 1369aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_cmd, 0x24, 20, 3, 23, 3, 26, 3), 1370aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_0, 0x28, 3, 3, 6, 3, 9, 3), 1371aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_1, 0x28, 16, 3, 19, 3, 22, 3), 1372aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_2, 0x2c, 3, 3, 6, 3, 9, 3), 1373aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_3, 0x2c, 16, 3, 19, 3, 22, 3), 1374aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_4, 0x30, 3, 3, 6, 3, 9, 3), 1375aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_5, 0x30, 16, 3, 19, 3, 22, 3), 1376aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_6, 0x34, 3, 3, 6, 3, 9, 3), 1377aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_data_7, 0x34, 16, 3, 19, 3, 22, 3), 1378aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_dd_sb, 0x38, 3, 3, 6, 3, 9, 3), 1379aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(emmc_rst_n, 0x38, 16, 3, 19, 3, 22, 3), 1380aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_32, 0x4c, 8, 3, 11, 3, 14, 3), 1381aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_33, 0x4c, 21, 3, 24, 3, 27, 3), 1382aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_78, 0x5c, 13, 3, 16, 3, 19, 3), 1383aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_79, 0x60, 3, 3, 6, 3, 9, 3), 1384aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_80, 0x60, 16, 3, 19, 3, 22, 3), 1385aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(gpio_81, 0x64, 3, 3, 6, 3, 9, 3), 1386aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(hif_clk, 0x64, 16, 3, 19, 3, 22, 3), 1387aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(hif_data, 0x68, 3, 3, 6, 3, 9, 3), 1388aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(hif_en, 0x68, 16, 3, 19, 3, 22, 3), 1389aa399e6cSTzuyi Chang RTK_PIN_SCONFIG(hif_rdy, 0x68, 29, 3, 32, 3, 35, 3), 1390aa399e6cSTzuyi Chang 1391aa399e6cSTzuyi Chang }; 1392aa399e6cSTzuyi Chang 1393aa399e6cSTzuyi Chang static const struct rtd_pinctrl_desc rtd1315e_iso_pinctrl_desc = { 1394aa399e6cSTzuyi Chang .pins = rtd1315e_iso_pins, 1395aa399e6cSTzuyi Chang .num_pins = ARRAY_SIZE(rtd1315e_iso_pins), 1396aa399e6cSTzuyi Chang .groups = rtd1315e_pin_groups, 1397aa399e6cSTzuyi Chang .num_groups = ARRAY_SIZE(rtd1315e_pin_groups), 1398aa399e6cSTzuyi Chang .functions = rtd1315e_pin_functions, 1399aa399e6cSTzuyi Chang .num_functions = ARRAY_SIZE(rtd1315e_pin_functions), 1400aa399e6cSTzuyi Chang .muxes = rtd1315e_iso_muxes, 1401aa399e6cSTzuyi Chang .num_muxes = ARRAY_SIZE(rtd1315e_iso_muxes), 1402aa399e6cSTzuyi Chang .configs = rtd1315e_iso_configs, 1403aa399e6cSTzuyi Chang .num_configs = ARRAY_SIZE(rtd1315e_iso_configs), 1404aa399e6cSTzuyi Chang .sconfigs = rtd1315e_iso_sconfigs, 1405aa399e6cSTzuyi Chang .num_sconfigs = ARRAY_SIZE(rtd1315e_iso_sconfigs), 1406aa399e6cSTzuyi Chang }; 1407aa399e6cSTzuyi Chang 1408aa399e6cSTzuyi Chang static int rtd1315e_pinctrl_probe(struct platform_device *pdev) 1409aa399e6cSTzuyi Chang { 1410aa399e6cSTzuyi Chang return rtd_pinctrl_probe(pdev, &rtd1315e_iso_pinctrl_desc); 1411aa399e6cSTzuyi Chang } 1412aa399e6cSTzuyi Chang 1413aa399e6cSTzuyi Chang static const struct of_device_id rtd1315e_pinctrl_of_match[] = { 1414aa399e6cSTzuyi Chang { .compatible = "realtek,rtd1315e-pinctrl", }, 1415aa399e6cSTzuyi Chang {}, 1416aa399e6cSTzuyi Chang }; 1417*9d2df365SKrzysztof Kozlowski MODULE_DEVICE_TABLE(of, rtd1315e_pinctrl_of_match); 1418aa399e6cSTzuyi Chang 1419aa399e6cSTzuyi Chang static struct platform_driver rtd1315e_pinctrl_driver = { 1420aa399e6cSTzuyi Chang .driver = { 1421aa399e6cSTzuyi Chang .name = "rtd1315e-pinctrl", 1422aa399e6cSTzuyi Chang .of_match_table = rtd1315e_pinctrl_of_match, 1423aa399e6cSTzuyi Chang }, 1424aa399e6cSTzuyi Chang .probe = rtd1315e_pinctrl_probe, 1425aa399e6cSTzuyi Chang }; 1426aa399e6cSTzuyi Chang 1427aa399e6cSTzuyi Chang static int __init rtd1315e_pinctrl_init(void) 1428aa399e6cSTzuyi Chang { 1429aa399e6cSTzuyi Chang return platform_driver_register(&rtd1315e_pinctrl_driver); 1430aa399e6cSTzuyi Chang } 1431aa399e6cSTzuyi Chang arch_initcall(rtd1315e_pinctrl_init); 1432aa399e6cSTzuyi Chang 1433aa399e6cSTzuyi Chang static void __exit rtd1315e_pinctrl_exit(void) 1434aa399e6cSTzuyi Chang { 1435aa399e6cSTzuyi Chang platform_driver_unregister(&rtd1315e_pinctrl_driver); 1436aa399e6cSTzuyi Chang } 1437aa399e6cSTzuyi Chang module_exit(rtd1315e_pinctrl_exit); 1438aa399e6cSTzuyi Chang 1439aa399e6cSTzuyi Chang MODULE_LICENSE("GPL"); 1440aa399e6cSTzuyi Chang MODULE_AUTHOR("Realtek Semiconductor Corporation"); 1441aa399e6cSTzuyi Chang MODULE_DESCRIPTION("Realtek DHC SoC RTD1315E pinctrl driver"); 1442