xref: /linux/drivers/pinctrl/realtek/pinctrl-rtd1315e.c (revision 36ec807b627b4c0a0a382f0ae48eac7187d14b2b)
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