File Index
Files and directories
Sign in
FILE

pinctrl-sg2000.c

File preview with syntax highlighting.

linux-6.19.14/drivers/pinctrl/sophgo/pinctrl-sg2000.c C
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Sophgo SG2000 SoC pinctrl driver.
  4 *
  5 * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
  6 *
  7 * This file is generated from vendor pinout definition.
  8 */
  9
 10#include <linux/module.h>
 11#include <linux/platform_device.h>
 12#include <linux/of.h>
 13
 14#include <linux/pinctrl/pinctrl.h>
 15#include <linux/pinctrl/pinmux.h>
 16
 17#include <dt-bindings/pinctrl/pinctrl-sg2000.h>
 18
 19#include "pinctrl-cv18xx.h"
 20
 21enum SG2000_POWER_DOMAIN {
 22	VDD18A_EPHY		= 0,
 23	VDD18A_MIPI		= 1,
 24	VDDIO18_1		= 2,
 25	VDDIO_EMMC		= 3,
 26	VDDIO_RTC		= 4,
 27	VDDIO_SD0		= 5,
 28	VDDIO_SD1		= 6,
 29	VDDIO_VIVO		= 7
 30};
 31
 32static const char *const sg2000_power_domain_desc[] = {
 33	[VDD18A_EPHY]		= "VDD18A_EPHY",
 34	[VDD18A_MIPI]		= "VDD18A_MIPI",
 35	[VDDIO18_1]		= "VDDIO18_1",
 36	[VDDIO_EMMC]		= "VDDIO_EMMC",
 37	[VDDIO_RTC]		= "VDDIO_RTC",
 38	[VDDIO_SD0]		= "VDDIO_SD0",
 39	[VDDIO_SD1]		= "VDDIO_SD1",
 40	[VDDIO_VIVO]		= "VDDIO_VIVO",
 41};
 42
 43static int sg2000_get_pull_up(const struct sophgo_pin *sp, const u32 *psmap)
 44{
 45	const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
 46	u32 pstate = psmap[pin->power_domain];
 47	enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
 48
 49	if (type == IO_TYPE_1V8_ONLY)
 50		return 79000;
 51
 52	if (type == IO_TYPE_1V8_OR_3V3) {
 53		if (pstate == PIN_POWER_STATE_1V8)
 54			return 60000;
 55		if (pstate == PIN_POWER_STATE_3V3)
 56			return 60000;
 57
 58		return -EINVAL;
 59	}
 60
 61	return -ENOTSUPP;
 62}
 63
 64static int sg2000_get_pull_down(const struct sophgo_pin *sp, const u32 *psmap)
 65{
 66	const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
 67	u32 pstate = psmap[pin->power_domain];
 68	enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
 69
 70	if (type == IO_TYPE_1V8_ONLY)
 71		return 87000;
 72
 73	if (type == IO_TYPE_1V8_OR_3V3) {
 74		if (pstate == PIN_POWER_STATE_1V8)
 75			return 61000;
 76		if (pstate == PIN_POWER_STATE_3V3)
 77			return 62000;
 78
 79		return -EINVAL;
 80	}
 81
 82	return -ENOTSUPP;
 83}
 84
 85static const u32 sg2000_1v8_oc_map[] = {
 86	12800,
 87	25300,
 88	37400,
 89	49000
 90};
 91
 92static const u32 sg2000_18od33_1v8_oc_map[] = {
 93	7800,
 94	11700,
 95	15500,
 96	19200,
 97	23000,
 98	26600,
 99	30200,
100	33700
101};
102
103static const u32 sg2000_18od33_3v3_oc_map[] = {
104	5500,
105	8200,
106	10800,
107	13400,
108	16100,
109	18700,
110	21200,
111	23700
112};
113
114static const u32 sg2000_eth_oc_map[] = {
115	15700,
116	17800
117};
118
119static int sg2000_get_oc_map(const struct sophgo_pin *sp, const u32 *psmap,
120			     const u32 **map)
121{
122	const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
123	enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
124	u32 pstate = psmap[pin->power_domain];
125
126	if (type == IO_TYPE_1V8_ONLY) {
127		*map = sg2000_1v8_oc_map;
128		return ARRAY_SIZE(sg2000_1v8_oc_map);
129	}
130
131	if (type == IO_TYPE_1V8_OR_3V3) {
132		if (pstate == PIN_POWER_STATE_1V8) {
133			*map = sg2000_18od33_1v8_oc_map;
134			return ARRAY_SIZE(sg2000_18od33_1v8_oc_map);
135		} else if (pstate == PIN_POWER_STATE_3V3) {
136			*map = sg2000_18od33_3v3_oc_map;
137			return ARRAY_SIZE(sg2000_18od33_3v3_oc_map);
138		}
139	}
140
141	if (type == IO_TYPE_ETH) {
142		*map = sg2000_eth_oc_map;
143		return ARRAY_SIZE(sg2000_eth_oc_map);
144	}
145
146	return -ENOTSUPP;
147}
148
149static const u32 sg2000_1v8_schmitt_map[] = {
150	0,
151	970000,
152	1040000
153};
154
155static const u32 sg2000_18od33_1v8_schmitt_map[] = {
156	0,
157	1070000
158};
159
160static const u32 sg2000_18od33_3v3_schmitt_map[] = {
161	0,
162	1100000
163};
164
165static int sg2000_get_schmitt_map(const struct sophgo_pin *sp, const u32 *psmap,
166				  const u32 **map)
167{
168	const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
169	enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
170	u32 pstate = psmap[pin->power_domain];
171
172	if (type == IO_TYPE_1V8_ONLY) {
173		*map = sg2000_1v8_schmitt_map;
174		return ARRAY_SIZE(sg2000_1v8_schmitt_map);
175	}
176
177	if (type == IO_TYPE_1V8_OR_3V3) {
178		if (pstate == PIN_POWER_STATE_1V8) {
179			*map = sg2000_18od33_1v8_schmitt_map;
180			return ARRAY_SIZE(sg2000_18od33_1v8_schmitt_map);
181		} else if (pstate == PIN_POWER_STATE_3V3) {
182			*map = sg2000_18od33_3v3_schmitt_map;
183			return ARRAY_SIZE(sg2000_18od33_3v3_schmitt_map);
184		}
185	}
186
187	return -ENOTSUPP;
188}
189
190static const struct sophgo_vddio_cfg_ops sg2000_vddio_cfg_ops = {
191	.get_pull_up		= sg2000_get_pull_up,
192	.get_pull_down		= sg2000_get_pull_down,
193	.get_oc_map		= sg2000_get_oc_map,
194	.get_schmitt_map	= sg2000_get_schmitt_map,
195};
196
197static const struct pinctrl_pin_desc sg2000_pins[] = {
198	PINCTRL_PIN(PIN_MIPI_TXM4,	"MIPI_TXM4"),
199	PINCTRL_PIN(PIN_MIPIRX0N,	"MIPIRX0N"),
200	PINCTRL_PIN(PIN_MIPIRX3P,	"MIPIRX3P"),
201	PINCTRL_PIN(PIN_MIPIRX4P,	"MIPIRX4P"),
202	PINCTRL_PIN(PIN_VIVO_D2,	"VIVO_D2"),
203	PINCTRL_PIN(PIN_VIVO_D3,	"VIVO_D3"),
204	PINCTRL_PIN(PIN_VIVO_D10,	"VIVO_D10"),
205	PINCTRL_PIN(PIN_USB_VBUS_DET,	"USB_VBUS_DET"),
206	PINCTRL_PIN(PIN_MIPI_TXP3,	"MIPI_TXP3"),
207	PINCTRL_PIN(PIN_MIPI_TXM3,	"MIPI_TXM3"),
208	PINCTRL_PIN(PIN_MIPI_TXP4,	"MIPI_TXP4"),
209	PINCTRL_PIN(PIN_MIPIRX0P,	"MIPIRX0P"),
210	PINCTRL_PIN(PIN_MIPIRX1N,	"MIPIRX1N"),
211	PINCTRL_PIN(PIN_MIPIRX2N,	"MIPIRX2N"),
212	PINCTRL_PIN(PIN_MIPIRX4N,	"MIPIRX4N"),
213	PINCTRL_PIN(PIN_MIPIRX5N,	"MIPIRX5N"),
214	PINCTRL_PIN(PIN_VIVO_D1,	"VIVO_D1"),
215	PINCTRL_PIN(PIN_VIVO_D5,	"VIVO_D5"),
216	PINCTRL_PIN(PIN_VIVO_D7,	"VIVO_D7"),
217	PINCTRL_PIN(PIN_VIVO_D9,	"VIVO_D9"),
218	PINCTRL_PIN(PIN_USB_ID,		"USB_ID"),
219	PINCTRL_PIN(PIN_ETH_RXM,	"ETH_RXM"),
220	PINCTRL_PIN(PIN_MIPI_TXP2,	"MIPI_TXP2"),
221	PINCTRL_PIN(PIN_MIPI_TXM2,	"MIPI_TXM2"),
222	PINCTRL_PIN(PIN_CAM_PD0,	"CAM_PD0"),
223	PINCTRL_PIN(PIN_CAM_MCLK0,	"CAM_MCLK0"),
224	PINCTRL_PIN(PIN_MIPIRX1P,	"MIPIRX1P"),
225	PINCTRL_PIN(PIN_MIPIRX2P,	"MIPIRX2P"),
226	PINCTRL_PIN(PIN_MIPIRX3N,	"MIPIRX3N"),
227	PINCTRL_PIN(PIN_MIPIRX5P,	"MIPIRX5P"),
228	PINCTRL_PIN(PIN_VIVO_CLK,	"VIVO_CLK"),
229	PINCTRL_PIN(PIN_VIVO_D6,	"VIVO_D6"),
230	PINCTRL_PIN(PIN_VIVO_D8,	"VIVO_D8"),
231	PINCTRL_PIN(PIN_USB_VBUS_EN,	"USB_VBUS_EN"),
232	PINCTRL_PIN(PIN_ETH_RXP,	"ETH_RXP"),
233	PINCTRL_PIN(PIN_GPIO_RTX,	"GPIO_RTX"),
234	PINCTRL_PIN(PIN_MIPI_TXP1,	"MIPI_TXP1"),
235	PINCTRL_PIN(PIN_MIPI_TXM1,	"MIPI_TXM1"),
236	PINCTRL_PIN(PIN_CAM_MCLK1,	"CAM_MCLK1"),
237	PINCTRL_PIN(PIN_IIC3_SCL,	"IIC3_SCL"),
238	PINCTRL_PIN(PIN_VIVO_D4,	"VIVO_D4"),
239	PINCTRL_PIN(PIN_ETH_TXM,	"ETH_TXM"),
240	PINCTRL_PIN(PIN_ETH_TXP,	"ETH_TXP"),
241	PINCTRL_PIN(PIN_MIPI_TXP0,	"MIPI_TXP0"),
242	PINCTRL_PIN(PIN_MIPI_TXM0,	"MIPI_TXM0"),
243	PINCTRL_PIN(PIN_CAM_PD1,	"CAM_PD1"),
244	PINCTRL_PIN(PIN_CAM_RST0,	"CAM_RST0"),
245	PINCTRL_PIN(PIN_VIVO_D0,	"VIVO_D0"),
246	PINCTRL_PIN(PIN_ADC1,		"ADC1"),
247	PINCTRL_PIN(PIN_ADC2,		"ADC2"),
248	PINCTRL_PIN(PIN_ADC3,		"ADC3"),
249	PINCTRL_PIN(PIN_AUD_AOUTL,	"AUD_AOUTL"),
250	PINCTRL_PIN(PIN_IIC3_SDA,	"IIC3_SDA"),
251	PINCTRL_PIN(PIN_SD1_D2,		"SD1_D2"),
252	PINCTRL_PIN(PIN_AUD_AOUTR,	"AUD_AOUTR"),
253	PINCTRL_PIN(PIN_SD1_D3,		"SD1_D3"),
254	PINCTRL_PIN(PIN_SD1_CLK,	"SD1_CLK"),
255	PINCTRL_PIN(PIN_SD1_CMD,	"SD1_CMD"),
256	PINCTRL_PIN(PIN_AUD_AINL_MIC,	"AUD_AINL_MIC"),
257	PINCTRL_PIN(PIN_RSTN,		"RSTN"),
258	PINCTRL_PIN(PIN_PWM0_BUCK,	"PWM0_BUCK"),
259	PINCTRL_PIN(PIN_SD1_D1,		"SD1_D1"),
260	PINCTRL_PIN(PIN_SD1_D0,		"SD1_D0"),
261	PINCTRL_PIN(PIN_AUD_AINR_MIC,	"AUD_AINR_MIC"),
262	PINCTRL_PIN(PIN_IIC2_SCL,	"IIC2_SCL"),
263	PINCTRL_PIN(PIN_IIC2_SDA,	"IIC2_SDA"),
264	PINCTRL_PIN(PIN_SD0_CD,		"SD0_CD"),
265	PINCTRL_PIN(PIN_SD0_D1,		"SD0_D1"),
266	PINCTRL_PIN(PIN_UART2_RX,	"UART2_RX"),
267	PINCTRL_PIN(PIN_UART2_CTS,	"UART2_CTS"),
268	PINCTRL_PIN(PIN_UART2_TX,	"UART2_TX"),
269	PINCTRL_PIN(PIN_SD0_CLK,	"SD0_CLK"),
270	PINCTRL_PIN(PIN_SD0_D0,		"SD0_D0"),
271	PINCTRL_PIN(PIN_SD0_CMD,	"SD0_CMD"),
272	PINCTRL_PIN(PIN_CLK32K,		"CLK32K"),
273	PINCTRL_PIN(PIN_UART2_RTS,	"UART2_RTS"),
274	PINCTRL_PIN(PIN_SD0_D3,		"SD0_D3"),
275	PINCTRL_PIN(PIN_SD0_D2,		"SD0_D2"),
276	PINCTRL_PIN(PIN_UART0_RX,	"UART0_RX"),
277	PINCTRL_PIN(PIN_UART0_TX,	"UART0_TX"),
278	PINCTRL_PIN(PIN_JTAG_CPU_TRST,	"JTAG_CPU_TRST"),
279	PINCTRL_PIN(PIN_PWR_ON,		"PWR_ON"),
280	PINCTRL_PIN(PIN_PWR_GPIO2,	"PWR_GPIO2"),
281	PINCTRL_PIN(PIN_PWR_GPIO0,	"PWR_GPIO0"),
282	PINCTRL_PIN(PIN_CLK25M,		"CLK25M"),
283	PINCTRL_PIN(PIN_SD0_PWR_EN,	"SD0_PWR_EN"),
284	PINCTRL_PIN(PIN_SPK_EN,		"SPK_EN"),
285	PINCTRL_PIN(PIN_JTAG_CPU_TCK,	"JTAG_CPU_TCK"),
286	PINCTRL_PIN(PIN_JTAG_CPU_TMS,	"JTAG_CPU_TMS"),
287	PINCTRL_PIN(PIN_PWR_WAKEUP1,	"PWR_WAKEUP1"),
288	PINCTRL_PIN(PIN_PWR_WAKEUP0,	"PWR_WAKEUP0"),
289	PINCTRL_PIN(PIN_PWR_GPIO1,	"PWR_GPIO1"),
290	PINCTRL_PIN(PIN_EMMC_DAT3,	"EMMC_DAT3"),
291	PINCTRL_PIN(PIN_EMMC_DAT0,	"EMMC_DAT0"),
292	PINCTRL_PIN(PIN_EMMC_DAT2,	"EMMC_DAT2"),
293	PINCTRL_PIN(PIN_EMMC_RSTN,	"EMMC_RSTN"),
294	PINCTRL_PIN(PIN_AUX0,		"AUX0"),
295	PINCTRL_PIN(PIN_IIC0_SDA,	"IIC0_SDA"),
296	PINCTRL_PIN(PIN_PWR_SEQ3,	"PWR_SEQ3"),
297	PINCTRL_PIN(PIN_PWR_VBAT_DET,	"PWR_VBAT_DET"),
298	PINCTRL_PIN(PIN_PWR_SEQ1,	"PWR_SEQ1"),
299	PINCTRL_PIN(PIN_PWR_BUTTON1,	"PWR_BUTTON1"),
300	PINCTRL_PIN(PIN_EMMC_DAT1,	"EMMC_DAT1"),
301	PINCTRL_PIN(PIN_EMMC_CMD,	"EMMC_CMD"),
302	PINCTRL_PIN(PIN_EMMC_CLK,	"EMMC_CLK"),
303	PINCTRL_PIN(PIN_IIC0_SCL,	"IIC0_SCL"),
304	PINCTRL_PIN(PIN_GPIO_ZQ,	"GPIO_ZQ"),
305	PINCTRL_PIN(PIN_PWR_RSTN,	"PWR_RSTN"),
306	PINCTRL_PIN(PIN_PWR_SEQ2,	"PWR_SEQ2"),
307	PINCTRL_PIN(PIN_XTAL_XIN,	"XTAL_XIN"),
308};
309
310static const struct cv1800_pin sg2000_pin_data[ARRAY_SIZE(sg2000_pins)] = {
311	CV1800_GENERAL_PIN(PIN_MIPI_TXM4, VDD18A_MIPI,
312			   IO_TYPE_1V8_ONLY,
313			   CV1800_PINCONF_AREA_SYS, 0x194, 7,
314			   CV1800_PINCONF_AREA_SYS, 0xc60),
315	CV1800_GENERAL_PIN(PIN_MIPIRX0N, VDD18A_MIPI,
316			   IO_TYPE_1V8_ONLY,
317			   CV1800_PINCONF_AREA_SYS, 0x18c, 7,
318			   CV1800_PINCONF_AREA_SYS, 0xc58),
319	CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX3P, VDD18A_MIPI,
320				 IO_TYPE_1V8_ONLY,
321				 CV1800_PINCONF_AREA_SYS, 0x178, 7,
322				 CV1800_PINCONF_AREA_SYS, 0x118, 7,
323				 CV1800_PINCONF_AREA_SYS, 0xc44),
324	CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX4P, VDD18A_MIPI,
325				 IO_TYPE_1V8_ONLY,
326				 CV1800_PINCONF_AREA_SYS, 0x170, 7,
327				 CV1800_PINCONF_AREA_SYS, 0x11c, 7,
328				 CV1800_PINCONF_AREA_SYS, 0xc3c),
329	CV1800_GENERAL_PIN(PIN_VIVO_D2, VDDIO_VIVO,
330			   IO_TYPE_1V8_OR_3V3,
331			   CV1800_PINCONF_AREA_SYS, 0x154, 7,
332			   CV1800_PINCONF_AREA_SYS, 0xc20),
333	CV1800_GENERAL_PIN(PIN_VIVO_D3, VDDIO_VIVO,
334			   IO_TYPE_1V8_OR_3V3,
335			   CV1800_PINCONF_AREA_SYS, 0x150, 7,
336			   CV1800_PINCONF_AREA_SYS, 0xc1c),
337	CV1800_GENERAL_PIN(PIN_VIVO_D10, VDDIO_VIVO,
338			   IO_TYPE_1V8_OR_3V3,
339			   CV1800_PINCONF_AREA_SYS, 0x134, 7,
340			   CV1800_PINCONF_AREA_SYS, 0xc00),
341	CV1800_GENERAL_PIN(PIN_USB_VBUS_DET, VDDIO18_1,
342			   IO_TYPE_1V8_ONLY,
343			   CV1800_PINCONF_AREA_SYS, 0x108, 5,
344			   CV1800_PINCONF_AREA_SYS, 0x820),
345	CV1800_GENERAL_PIN(PIN_MIPI_TXP3, VDD18A_MIPI,
346			   IO_TYPE_1V8_ONLY,
347			   CV1800_PINCONF_AREA_SYS, 0x1a0, 7,
348			   CV1800_PINCONF_AREA_SYS, 0xc6c),
349	CV1800_GENERAL_PIN(PIN_MIPI_TXM3, VDD18A_MIPI,
350			   IO_TYPE_1V8_ONLY,
351			   CV1800_PINCONF_AREA_SYS, 0x19c, 7,
352			   CV1800_PINCONF_AREA_SYS, 0xc68),
353	CV1800_GENERAL_PIN(PIN_MIPI_TXP4, VDD18A_MIPI,
354			   IO_TYPE_1V8_ONLY,
355			   CV1800_PINCONF_AREA_SYS, 0x198, 7,
356			   CV1800_PINCONF_AREA_SYS, 0xc64),
357	CV1800_GENERAL_PIN(PIN_MIPIRX0P, VDD18A_MIPI,
358			   IO_TYPE_1V8_ONLY,
359			   CV1800_PINCONF_AREA_SYS, 0x190, 7,
360			   CV1800_PINCONF_AREA_SYS, 0xc5c),
361	CV1800_GENERAL_PIN(PIN_MIPIRX1N, VDD18A_MIPI,
362			   IO_TYPE_1V8_ONLY,
363			   CV1800_PINCONF_AREA_SYS, 0x184, 7,
364			   CV1800_PINCONF_AREA_SYS, 0xc50),
365	CV1800_GENERAL_PIN(PIN_MIPIRX2N, VDD18A_MIPI,
366			   IO_TYPE_1V8_ONLY,
367			   CV1800_PINCONF_AREA_SYS, 0x17c, 7,
368			   CV1800_PINCONF_AREA_SYS, 0xc48),
369	CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX4N, VDD18A_MIPI,
370				 IO_TYPE_1V8_ONLY,
371				 CV1800_PINCONF_AREA_SYS, 0x16c, 7,
372				 CV1800_PINCONF_AREA_SYS, 0x120, 7,
373				 CV1800_PINCONF_AREA_SYS, 0xc38),
374	CV1800_GENERAL_PIN(PIN_MIPIRX5N, VDD18A_MIPI,
375			   IO_TYPE_1V8_ONLY,
376			   CV1800_PINCONF_AREA_SYS, 0x164, 7,
377			   CV1800_PINCONF_AREA_SYS, 0xc30),
378	CV1800_GENERAL_PIN(PIN_VIVO_D1, VDDIO_VIVO,
379			   IO_TYPE_1V8_OR_3V3,
380			   CV1800_PINCONF_AREA_SYS, 0x158, 7,
381			   CV1800_PINCONF_AREA_SYS, 0xc24),
382	CV1800_GENERAL_PIN(PIN_VIVO_D5, VDDIO_VIVO,
383			   IO_TYPE_1V8_OR_3V3,
384			   CV1800_PINCONF_AREA_SYS, 0x148, 7,
385			   CV1800_PINCONF_AREA_SYS, 0xc14),
386	CV1800_GENERAL_PIN(PIN_VIVO_D7, VDDIO_VIVO,
387			   IO_TYPE_1V8_OR_3V3,
388			   CV1800_PINCONF_AREA_SYS, 0x140, 7,
389			   CV1800_PINCONF_AREA_SYS, 0xc0c),
390	CV1800_GENERAL_PIN(PIN_VIVO_D9, VDDIO_VIVO,
391			   IO_TYPE_1V8_OR_3V3,
392			   CV1800_PINCONF_AREA_SYS, 0x138, 7,
393			   CV1800_PINCONF_AREA_SYS, 0xc04),
394	CV1800_GENERAL_PIN(PIN_USB_ID, VDDIO18_1,
395			   IO_TYPE_1V8_ONLY,
396			   CV1800_PINCONF_AREA_SYS, 0x0fc, 3,
397			   CV1800_PINCONF_AREA_SYS, 0x814),
398	CV1800_FUNC_PIN(PIN_ETH_RXM, VDD18A_EPHY,
399			IO_TYPE_ETH,
400			CV1800_PINCONF_AREA_SYS, 0x130, 7),
401	CV1800_GENERAL_PIN(PIN_MIPI_TXP2, VDD18A_MIPI,
402			   IO_TYPE_1V8_ONLY,
403			   CV1800_PINCONF_AREA_SYS, 0x1a8, 7,
404			   CV1800_PINCONF_AREA_SYS, 0xc74),
405	CV1800_GENERAL_PIN(PIN_MIPI_TXM2, VDD18A_MIPI,
406			   IO_TYPE_1V8_ONLY,
407			   CV1800_PINCONF_AREA_SYS, 0x1a4, 7,
408			   CV1800_PINCONF_AREA_SYS, 0xc70),
409	CV1800_GENERAL_PIN(PIN_CAM_PD0, VDD18A_MIPI,
410			   IO_TYPE_1V8_ONLY,
411			   CV1800_PINCONF_AREA_SYS, 0x004, 4,
412			   CV1800_PINCONF_AREA_SYS, 0xb04),
413	CV1800_GENERAL_PIN(PIN_CAM_MCLK0, VDD18A_MIPI,
414			   IO_TYPE_1V8_ONLY,
415			   CV1800_PINCONF_AREA_SYS, 0x000, 3,
416			   CV1800_PINCONF_AREA_SYS, 0xb00),
417	CV1800_GENERAL_PIN(PIN_MIPIRX1P, VDD18A_MIPI,
418			   IO_TYPE_1V8_ONLY,
419			   CV1800_PINCONF_AREA_SYS, 0x188, 7,
420			   CV1800_PINCONF_AREA_SYS, 0xc54),
421	CV1800_GENERAL_PIN(PIN_MIPIRX2P, VDD18A_MIPI,
422			   IO_TYPE_1V8_ONLY,
423			   CV1800_PINCONF_AREA_SYS, 0x180, 7,
424			   CV1800_PINCONF_AREA_SYS, 0xc4c),
425	CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX3N, VDD18A_MIPI,
426				 IO_TYPE_1V8_ONLY,
427				 CV1800_PINCONF_AREA_SYS, 0x174, 7,
428				 CV1800_PINCONF_AREA_SYS, 0x114, 7,
429				 CV1800_PINCONF_AREA_SYS, 0xc40),
430	CV1800_GENERAL_PIN(PIN_MIPIRX5P, VDD18A_MIPI,
431			   IO_TYPE_1V8_ONLY,
432			   CV1800_PINCONF_AREA_SYS, 0x168, 7,
433			   CV1800_PINCONF_AREA_SYS, 0xc34),
434	CV1800_GENERAL_PIN(PIN_VIVO_CLK, VDDIO_VIVO,
435			   IO_TYPE_1V8_OR_3V3,
436			   CV1800_PINCONF_AREA_SYS, 0x160, 7,
437			   CV1800_PINCONF_AREA_SYS, 0xc2c),
438	CV1800_GENERAL_PIN(PIN_VIVO_D6, VDDIO_VIVO,
439			   IO_TYPE_1V8_OR_3V3,
440			   CV1800_PINCONF_AREA_SYS, 0x144, 7,
441			   CV1800_PINCONF_AREA_SYS, 0xc10),
442	CV1800_GENERAL_PIN(PIN_VIVO_D8, VDDIO_VIVO,
443			   IO_TYPE_1V8_OR_3V3,
444			   CV1800_PINCONF_AREA_SYS, 0x13c, 7,
445			   CV1800_PINCONF_AREA_SYS, 0xc08),
446	CV1800_GENERAL_PIN(PIN_USB_VBUS_EN, VDDIO18_1,
447			   IO_TYPE_1V8_ONLY,
448			   CV1800_PINCONF_AREA_SYS, 0x100, 3,
449			   CV1800_PINCONF_AREA_SYS, 0x818),
450	CV1800_FUNC_PIN(PIN_ETH_RXP, VDD18A_EPHY,
451			IO_TYPE_ETH,
452			CV1800_PINCONF_AREA_SYS, 0x12c, 7),
453	CV1800_GENERAL_PIN(PIN_GPIO_RTX, VDDIO18_1,
454			   IO_TYPE_1V8_ONLY,
455			   CV1800_PINCONF_AREA_SYS, 0x1cc, 5,
456			   CV1800_PINCONF_AREA_SYS, 0xc8c),
457	CV1800_GENERAL_PIN(PIN_MIPI_TXP1, VDD18A_MIPI,
458			   IO_TYPE_1V8_ONLY,
459			   CV1800_PINCONF_AREA_SYS, 0x1b0, 7,
460			   CV1800_PINCONF_AREA_SYS, 0xc7c),
461	CV1800_GENERAL_PIN(PIN_MIPI_TXM1, VDD18A_MIPI,
462			   IO_TYPE_1V8_ONLY,
463			   CV1800_PINCONF_AREA_SYS, 0x1ac, 7,
464			   CV1800_PINCONF_AREA_SYS, 0xc78),
465	CV1800_GENERAL_PIN(PIN_CAM_MCLK1, VDD18A_MIPI,
466			   IO_TYPE_1V8_ONLY,
467			   CV1800_PINCONF_AREA_SYS, 0x00c, 4,
468			   CV1800_PINCONF_AREA_SYS, 0xb0c),
469	CV1800_GENERAL_PIN(PIN_IIC3_SCL, VDD18A_MIPI,
470			   IO_TYPE_1V8_ONLY,
471			   CV1800_PINCONF_AREA_SYS, 0x014, 3,
472			   CV1800_PINCONF_AREA_SYS, 0xb14),
473	CV1800_GENERAL_PIN(PIN_VIVO_D4, VDDIO_VIVO,
474			   IO_TYPE_1V8_OR_3V3,
475			   CV1800_PINCONF_AREA_SYS, 0x14c, 7,
476			   CV1800_PINCONF_AREA_SYS, 0xc18),
477	CV1800_FUNC_PIN(PIN_ETH_TXM, VDD18A_EPHY,
478			IO_TYPE_ETH,
479			CV1800_PINCONF_AREA_SYS, 0x128, 7),
480	CV1800_FUNC_PIN(PIN_ETH_TXP, VDD18A_EPHY,
481			IO_TYPE_ETH,
482			CV1800_PINCONF_AREA_SYS, 0x124, 7),
483	CV1800_GENERAL_PIN(PIN_MIPI_TXP0, VDD18A_MIPI,
484			   IO_TYPE_1V8_ONLY,
485			   CV1800_PINCONF_AREA_SYS, 0x1b8, 7,
486			   CV1800_PINCONF_AREA_SYS, 0xc84),
487	CV1800_GENERAL_PIN(PIN_MIPI_TXM0, VDD18A_MIPI,
488			   IO_TYPE_1V8_ONLY,
489			   CV1800_PINCONF_AREA_SYS, 0x1b4, 7,
490			   CV1800_PINCONF_AREA_SYS, 0xc80),
491	CV1800_GENERAL_PIN(PIN_CAM_PD1, VDD18A_MIPI,
492			   IO_TYPE_1V8_ONLY,
493			   CV1800_PINCONF_AREA_SYS, 0x010, 6,
494			   CV1800_PINCONF_AREA_SYS, 0xb10),
495	CV1800_GENERAL_PIN(PIN_CAM_RST0, VDD18A_MIPI,
496			   IO_TYPE_1V8_ONLY,
497			   CV1800_PINCONF_AREA_SYS, 0x008, 6,
498			   CV1800_PINCONF_AREA_SYS, 0xb08),
499	CV1800_GENERAL_PIN(PIN_VIVO_D0, VDDIO_VIVO,
500			   IO_TYPE_1V8_OR_3V3,
501			   CV1800_PINCONF_AREA_SYS, 0x15c, 7,
502			   CV1800_PINCONF_AREA_SYS, 0xc28),
503	CV1800_GENERAL_PIN(PIN_ADC1, VDDIO18_1,
504			   IO_TYPE_1V8_ONLY,
505			   CV1800_PINCONF_AREA_SYS, 0x0f8, 4,
506			   CV1800_PINCONF_AREA_SYS, 0x810),
507	CV1800_GENERAL_PIN(PIN_ADC2, VDDIO18_1,
508			   IO_TYPE_1V8_ONLY,
509			   CV1800_PINCONF_AREA_SYS, 0x0f4, 7,
510			   CV1800_PINCONF_AREA_SYS, 0x80c),
511	CV1800_GENERAL_PIN(PIN_ADC3, VDDIO18_1,
512			   IO_TYPE_1V8_ONLY,
513			   CV1800_PINCONF_AREA_SYS, 0x0f0, 7,
514			   CV1800_PINCONF_AREA_SYS, 0x808),
515	CV1800_FUNC_PIN(PIN_AUD_AOUTL, VDD18A_MIPI,
516			IO_TYPE_AUDIO,
517			CV1800_PINCONF_AREA_SYS, 0x1c4, 5),
518	CV1800_GENERAL_PIN(PIN_IIC3_SDA, VDD18A_MIPI,
519			   IO_TYPE_1V8_ONLY,
520			   CV1800_PINCONF_AREA_SYS, 0x018, 3,
521			   CV1800_PINCONF_AREA_SYS, 0xb18),
522	CV1800_GENERAL_PIN(PIN_SD1_D2, VDDIO_SD1,
523			   IO_TYPE_1V8_OR_3V3,
524			   CV1800_PINCONF_AREA_SYS, 0x0d4, 7,
525			   CV1800_PINCONF_AREA_RTC, 0x05c),
526	CV1800_FUNC_PIN(PIN_AUD_AOUTR, VDD18A_MIPI,
527			IO_TYPE_AUDIO,
528			CV1800_PINCONF_AREA_SYS, 0x1c8, 6),
529	CV1800_GENERAL_PIN(PIN_SD1_D3, VDDIO_SD1,
530			   IO_TYPE_1V8_OR_3V3,
531			   CV1800_PINCONF_AREA_SYS, 0x0d0, 7,
532			   CV1800_PINCONF_AREA_RTC, 0x058),
533	CV1800_GENERAL_PIN(PIN_SD1_CLK, VDDIO_SD1,
534			   IO_TYPE_1V8_OR_3V3,
535			   CV1800_PINCONF_AREA_SYS, 0x0e4, 7,
536			   CV1800_PINCONF_AREA_RTC, 0x06c),
537	CV1800_GENERAL_PIN(PIN_SD1_CMD, VDDIO_SD1,
538			   IO_TYPE_1V8_OR_3V3,
539			   CV1800_PINCONF_AREA_SYS, 0x0e0, 7,
540			   CV1800_PINCONF_AREA_RTC, 0x068),
541	CV1800_FUNC_PIN(PIN_AUD_AINL_MIC, VDD18A_MIPI,
542			IO_TYPE_AUDIO,
543			CV1800_PINCONF_AREA_SYS, 0x1bc, 5),
544	CV1800_GENERAL_PIN(PIN_RSTN, VDDIO18_1,
545			   IO_TYPE_1V8_ONLY,
546			   CV1800_PINCONF_AREA_SYS, 0x0e8, 0,
547			   CV1800_PINCONF_AREA_SYS, 0x800),
548	CV1800_GENERAL_PIN(PIN_PWM0_BUCK, VDDIO18_1,
549			   IO_TYPE_1V8_ONLY,
550			   CV1800_PINCONF_AREA_SYS, 0x0ec, 3,
551			   CV1800_PINCONF_AREA_SYS, 0x804),
552	CV1800_GENERAL_PIN(PIN_SD1_D1, VDDIO_SD1,
553			   IO_TYPE_1V8_OR_3V3,
554			   CV1800_PINCONF_AREA_SYS, 0x0d8, 7,
555			   CV1800_PINCONF_AREA_RTC, 0x060),
556	CV1800_GENERAL_PIN(PIN_SD1_D0, VDDIO_SD1,
557			   IO_TYPE_1V8_OR_3V3,
558			   CV1800_PINCONF_AREA_SYS, 0x0dc, 7,
559			   CV1800_PINCONF_AREA_RTC, 0x064),
560	CV1800_FUNC_PIN(PIN_AUD_AINR_MIC, VDD18A_MIPI,
561			IO_TYPE_AUDIO,
562			CV1800_PINCONF_AREA_SYS, 0x1c0, 6),
563	CV1800_GENERAL_PIN(PIN_IIC2_SCL, VDDIO_RTC,
564			   IO_TYPE_1V8_ONLY,
565			   CV1800_PINCONF_AREA_SYS, 0x0b8, 7,
566			   CV1800_PINCONF_AREA_RTC, 0x040),
567	CV1800_GENERAL_PIN(PIN_IIC2_SDA, VDDIO_RTC,
568			   IO_TYPE_1V8_ONLY,
569			   CV1800_PINCONF_AREA_SYS, 0x0bc, 7,
570			   CV1800_PINCONF_AREA_RTC, 0x044),
571	CV1800_GENERAL_PIN(PIN_SD0_CD, VDDIO_EMMC,
572			   IO_TYPE_1V8_OR_3V3,
573			   CV1800_PINCONF_AREA_SYS, 0x034, 3,
574			   CV1800_PINCONF_AREA_SYS, 0x900),
575	CV1800_GENERAL_PIN(PIN_SD0_D1, VDDIO_SD0,
576			   IO_TYPE_1V8_OR_3V3,
577			   CV1800_PINCONF_AREA_SYS, 0x028, 7,
578			   CV1800_PINCONF_AREA_SYS, 0xa0c),
579	CV1800_GENERAL_PIN(PIN_UART2_RX, VDDIO_RTC,
580			   IO_TYPE_1V8_ONLY,
581			   CV1800_PINCONF_AREA_SYS, 0x0c8, 7,
582			   CV1800_PINCONF_AREA_RTC, 0x050),
583	CV1800_GENERAL_PIN(PIN_UART2_CTS, VDDIO_RTC,
584			   IO_TYPE_1V8_ONLY,
585			   CV1800_PINCONF_AREA_SYS, 0x0cc, 7,
586			   CV1800_PINCONF_AREA_RTC, 0x054),
587	CV1800_GENERAL_PIN(PIN_UART2_TX, VDDIO_RTC,
588			   IO_TYPE_1V8_ONLY,
589			   CV1800_PINCONF_AREA_SYS, 0x0c0, 7,
590			   CV1800_PINCONF_AREA_RTC, 0x048),
591	CV1800_GENERAL_PIN(PIN_SD0_CLK, VDDIO_SD0,
592			   IO_TYPE_1V8_OR_3V3,
593			   CV1800_PINCONF_AREA_SYS, 0x01c, 7,
594			   CV1800_PINCONF_AREA_SYS, 0xa00),
595	CV1800_GENERAL_PIN(PIN_SD0_D0, VDDIO_SD0,
596			   IO_TYPE_1V8_OR_3V3,
597			   CV1800_PINCONF_AREA_SYS, 0x024, 7,
598			   CV1800_PINCONF_AREA_SYS, 0xa08),
599	CV1800_GENERAL_PIN(PIN_SD0_CMD, VDDIO_SD0,
600			   IO_TYPE_1V8_OR_3V3,
601			   CV1800_PINCONF_AREA_SYS, 0x020, 7,
602			   CV1800_PINCONF_AREA_SYS, 0xa04),
603	CV1800_GENERAL_PIN(PIN_CLK32K, VDDIO_RTC,
604			   IO_TYPE_1V8_ONLY,
605			   CV1800_PINCONF_AREA_SYS, 0x0b0, 7,
606			   CV1800_PINCONF_AREA_RTC, 0x038),
607	CV1800_GENERAL_PIN(PIN_UART2_RTS, VDDIO_RTC,
608			   IO_TYPE_1V8_ONLY,
609			   CV1800_PINCONF_AREA_SYS, 0x0c4, 7,
610			   CV1800_PINCONF_AREA_RTC, 0x04c),
611	CV1800_GENERAL_PIN(PIN_SD0_D3, VDDIO_SD0,
612			   IO_TYPE_1V8_OR_3V3,
613			   CV1800_PINCONF_AREA_SYS, 0x030, 7,
614			   CV1800_PINCONF_AREA_SYS, 0xa14),
615	CV1800_GENERAL_PIN(PIN_SD0_D2, VDDIO_SD0,
616			   IO_TYPE_1V8_OR_3V3,
617			   CV1800_PINCONF_AREA_SYS, 0x02c, 7,
618			   CV1800_PINCONF_AREA_SYS, 0xa10),
619	CV1800_GENERAL_PIN(PIN_UART0_RX, VDDIO_EMMC,
620			   IO_TYPE_1V8_OR_3V3,
621			   CV1800_PINCONF_AREA_SYS, 0x044, 7,
622			   CV1800_PINCONF_AREA_SYS, 0x910),
623	CV1800_GENERAL_PIN(PIN_UART0_TX, VDDIO_EMMC,
624			   IO_TYPE_1V8_OR_3V3,
625			   CV1800_PINCONF_AREA_SYS, 0x040, 7,
626			   CV1800_PINCONF_AREA_SYS, 0x90c),
627	CV1800_GENERAL_PIN(PIN_JTAG_CPU_TRST, VDDIO_EMMC,
628			   IO_TYPE_1V8_OR_3V3,
629			   CV1800_PINCONF_AREA_SYS, 0x06c, 6,
630			   CV1800_PINCONF_AREA_SYS, 0x938),
631	CV1800_GENERAL_PIN(PIN_PWR_ON, VDDIO_RTC,
632			   IO_TYPE_1V8_ONLY,
633			   CV1800_PINCONF_AREA_SYS, 0x09c, 7,
634			   CV1800_PINCONF_AREA_RTC, 0x024),
635	CV1800_GENERAL_PIN(PIN_PWR_GPIO2, VDDIO_RTC,
636			   IO_TYPE_1V8_ONLY,
637			   CV1800_PINCONF_AREA_SYS, 0x0ac, 7,
638			   CV1800_PINCONF_AREA_RTC, 0x034),
639	CV1800_GENERAL_PIN(PIN_PWR_GPIO0, VDDIO_RTC,
640			   IO_TYPE_1V8_ONLY,
641			   CV1800_PINCONF_AREA_SYS, 0x0a4, 4,
642			   CV1800_PINCONF_AREA_RTC, 0x02c),
643	CV1800_GENERAL_PIN(PIN_CLK25M, VDDIO_RTC,
644			   IO_TYPE_1V8_ONLY,
645			   CV1800_PINCONF_AREA_SYS, 0x0b4, 7,
646			   CV1800_PINCONF_AREA_RTC, 0x03c),
647	CV1800_GENERAL_PIN(PIN_SD0_PWR_EN, VDDIO_EMMC,
648			   IO_TYPE_1V8_OR_3V3,
649			   CV1800_PINCONF_AREA_SYS, 0x038, 3,
650			   CV1800_PINCONF_AREA_SYS, 0x904),
651	CV1800_GENERAL_PIN(PIN_SPK_EN, VDDIO_EMMC,
652			   IO_TYPE_1V8_OR_3V3,
653			   CV1800_PINCONF_AREA_SYS, 0x03c, 3,
654			   CV1800_PINCONF_AREA_SYS, 0x908),
655	CV1800_GENERAL_PIN(PIN_JTAG_CPU_TCK, VDDIO_EMMC,
656			   IO_TYPE_1V8_OR_3V3,
657			   CV1800_PINCONF_AREA_SYS, 0x068, 7,
658			   CV1800_PINCONF_AREA_SYS, 0x934),
659	CV1800_GENERAL_PIN(PIN_JTAG_CPU_TMS, VDDIO_EMMC,
660			   IO_TYPE_1V8_OR_3V3,
661			   CV1800_PINCONF_AREA_SYS, 0x064, 7,
662			   CV1800_PINCONF_AREA_SYS, 0x930),
663	CV1800_GENERAL_PIN(PIN_PWR_WAKEUP1, VDDIO_RTC,
664			   IO_TYPE_1V8_ONLY,
665			   CV1800_PINCONF_AREA_SYS, 0x094, 7,
666			   CV1800_PINCONF_AREA_RTC, 0x01c),
667	CV1800_GENERAL_PIN(PIN_PWR_WAKEUP0, VDDIO_RTC,
668			   IO_TYPE_1V8_ONLY,
669			   CV1800_PINCONF_AREA_SYS, 0x090, 7,
670			   CV1800_PINCONF_AREA_RTC, 0x018),
671	CV1800_GENERAL_PIN(PIN_PWR_GPIO1, VDDIO_RTC,
672			   IO_TYPE_1V8_ONLY,
673			   CV1800_PINCONF_AREA_SYS, 0x0a8, 7,
674			   CV1800_PINCONF_AREA_RTC, 0x030),
675	CV1800_GENERAL_PIN(PIN_EMMC_DAT3, VDDIO_EMMC,
676			   IO_TYPE_1V8_OR_3V3,
677			   CV1800_PINCONF_AREA_SYS, 0x058, 3,
678			   CV1800_PINCONF_AREA_SYS, 0x924),
679	CV1800_GENERAL_PIN(PIN_EMMC_DAT0, VDDIO_EMMC,
680			   IO_TYPE_1V8_OR_3V3,
681			   CV1800_PINCONF_AREA_SYS, 0x054, 3,
682			   CV1800_PINCONF_AREA_SYS, 0x920),
683	CV1800_GENERAL_PIN(PIN_EMMC_DAT2, VDDIO_EMMC,
684			   IO_TYPE_1V8_OR_3V3,
685			   CV1800_PINCONF_AREA_SYS, 0x04c, 3,
686			   CV1800_PINCONF_AREA_SYS, 0x918),
687	CV1800_GENERAL_PIN(PIN_EMMC_RSTN, VDDIO_EMMC,
688			   IO_TYPE_1V8_OR_3V3,
689			   CV1800_PINCONF_AREA_SYS, 0x048, 4,
690			   CV1800_PINCONF_AREA_SYS, 0x914),
691	CV1800_GENERAL_PIN(PIN_AUX0, VDDIO_EMMC,
692			   IO_TYPE_1V8_OR_3V3,
693			   CV1800_PINCONF_AREA_SYS, 0x078, 7,
694			   CV1800_PINCONF_AREA_SYS, 0x944),
695	CV1800_GENERAL_PIN(PIN_IIC0_SDA, VDDIO_EMMC,
696			   IO_TYPE_1V8_OR_3V3,
697			   CV1800_PINCONF_AREA_SYS, 0x074, 7,
698			   CV1800_PINCONF_AREA_SYS, 0x940),
699	CV1800_GENERAL_PIN(PIN_PWR_SEQ3, VDDIO_RTC,
700			   IO_TYPE_1V8_ONLY,
701			   CV1800_PINCONF_AREA_SYS, 0x08c, 3,
702			   CV1800_PINCONF_AREA_RTC, 0x010),
703	CV1800_GENERAL_PIN(PIN_PWR_VBAT_DET, VDDIO_RTC,
704			   IO_TYPE_1V8_ONLY,
705			   CV1800_PINCONF_AREA_SYS, 0x07c, 0,
706			   CV1800_PINCONF_AREA_RTC, 0x000),
707	CV1800_GENERAL_PIN(PIN_PWR_SEQ1, VDDIO_RTC,
708			   IO_TYPE_1V8_ONLY,
709			   CV1800_PINCONF_AREA_SYS, 0x084, 3,
710			   CV1800_PINCONF_AREA_RTC, 0x008),
711	CV1800_GENERAL_PIN(PIN_PWR_BUTTON1, VDDIO_RTC,
712			   IO_TYPE_1V8_ONLY,
713			   CV1800_PINCONF_AREA_SYS, 0x098, 7,
714			   CV1800_PINCONF_AREA_RTC, 0x020),
715	CV1800_GENERAL_PIN(PIN_EMMC_DAT1, VDDIO_EMMC,
716			   IO_TYPE_1V8_OR_3V3,
717			   CV1800_PINCONF_AREA_SYS, 0x060, 3,
718			   CV1800_PINCONF_AREA_SYS, 0x92c),
719	CV1800_GENERAL_PIN(PIN_EMMC_CMD, VDDIO_EMMC,
720			   IO_TYPE_1V8_OR_3V3,
721			   CV1800_PINCONF_AREA_SYS, 0x05c, 3,
722			   CV1800_PINCONF_AREA_SYS, 0x928),
723	CV1800_GENERAL_PIN(PIN_EMMC_CLK, VDDIO_EMMC,
724			   IO_TYPE_1V8_OR_3V3,
725			   CV1800_PINCONF_AREA_SYS, 0x050, 3,
726			   CV1800_PINCONF_AREA_SYS, 0x91c),
727	CV1800_GENERAL_PIN(PIN_IIC0_SCL, VDDIO_EMMC,
728			   IO_TYPE_1V8_OR_3V3,
729			   CV1800_PINCONF_AREA_SYS, 0x070, 7,
730			   CV1800_PINCONF_AREA_SYS, 0x93c),
731	CV1800_GENERAL_PIN(PIN_GPIO_ZQ, VDDIO_RTC,
732			   IO_TYPE_1V8_ONLY,
733			   CV1800_PINCONF_AREA_SYS, 0x1d0, 4,
734			   CV1800_PINCONF_AREA_RTC, 0x0e0),
735	CV1800_GENERAL_PIN(PIN_PWR_RSTN, VDDIO_RTC,
736			   IO_TYPE_1V8_ONLY,
737			   CV1800_PINCONF_AREA_SYS, 0x080, 0,
738			   CV1800_PINCONF_AREA_RTC, 0x004),
739	CV1800_GENERAL_PIN(PIN_PWR_SEQ2, VDDIO_RTC,
740			   IO_TYPE_1V8_ONLY,
741			   CV1800_PINCONF_AREA_SYS, 0x088, 3,
742			   CV1800_PINCONF_AREA_RTC, 0x00c),
743	CV1800_GENERAL_PIN(PIN_XTAL_XIN, VDDIO_RTC,
744			   IO_TYPE_1V8_ONLY,
745			   CV1800_PINCONF_AREA_SYS, 0x0a0, 0,
746			   CV1800_PINCONF_AREA_RTC, 0x028),
747};
748
749static const struct sophgo_pinctrl_data sg2000_pindata = {
750	.pins		= sg2000_pins,
751	.pindata	= sg2000_pin_data,
752	.pdnames	= sg2000_power_domain_desc,
753	.vddio_ops	= &sg2000_vddio_cfg_ops,
754	.cfg_ops	= &cv1800_cfg_ops,
755	.pctl_ops	= &cv1800_pctrl_ops,
756	.pmx_ops	= &cv1800_pmx_ops,
757	.pconf_ops	= &cv1800_pconf_ops,
758	.npins		= ARRAY_SIZE(sg2000_pins),
759	.npds		= ARRAY_SIZE(sg2000_power_domain_desc),
760	.pinsize	= sizeof(struct cv1800_pin),
761};
762
763static const struct of_device_id sg2000_pinctrl_ids[] = {
764	{ .compatible = "sophgo,sg2000-pinctrl", .data = &sg2000_pindata },
765	{ }
766};
767MODULE_DEVICE_TABLE(of, sg2000_pinctrl_ids);
768
769static struct platform_driver sg2000_pinctrl_driver = {
770	.probe	= sophgo_pinctrl_probe,
771	.driver	= {
772		.name			= "sg2000-pinctrl",
773		.suppress_bind_attrs	= true,
774		.of_match_table		= sg2000_pinctrl_ids,
775	},
776};
777module_platform_driver(sg2000_pinctrl_driver);
778
779MODULE_DESCRIPTION("Pinctrl driver for the SG2000 series SoC");
780MODULE_LICENSE("GPL");
~/ Read-only file preview.