18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
28c2ecf20Sopenharmony_ci//
38c2ecf20Sopenharmony_ci// Freescale i.MX23 pinctrl driver
48c2ecf20Sopenharmony_ci//
58c2ecf20Sopenharmony_ci// Author: Shawn Guo <shawn.guo@linaro.org>
68c2ecf20Sopenharmony_ci// Copyright 2012 Freescale Semiconductor, Inc.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <linux/init.h>
98c2ecf20Sopenharmony_ci#include <linux/of_device.h>
108c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h>
118c2ecf20Sopenharmony_ci#include "pinctrl-mxs.h"
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cienum imx23_pin_enum {
148c2ecf20Sopenharmony_ci	GPMI_D00	= PINID(0, 0),
158c2ecf20Sopenharmony_ci	GPMI_D01	= PINID(0, 1),
168c2ecf20Sopenharmony_ci	GPMI_D02	= PINID(0, 2),
178c2ecf20Sopenharmony_ci	GPMI_D03	= PINID(0, 3),
188c2ecf20Sopenharmony_ci	GPMI_D04	= PINID(0, 4),
198c2ecf20Sopenharmony_ci	GPMI_D05	= PINID(0, 5),
208c2ecf20Sopenharmony_ci	GPMI_D06	= PINID(0, 6),
218c2ecf20Sopenharmony_ci	GPMI_D07	= PINID(0, 7),
228c2ecf20Sopenharmony_ci	GPMI_D08	= PINID(0, 8),
238c2ecf20Sopenharmony_ci	GPMI_D09	= PINID(0, 9),
248c2ecf20Sopenharmony_ci	GPMI_D10	= PINID(0, 10),
258c2ecf20Sopenharmony_ci	GPMI_D11	= PINID(0, 11),
268c2ecf20Sopenharmony_ci	GPMI_D12	= PINID(0, 12),
278c2ecf20Sopenharmony_ci	GPMI_D13	= PINID(0, 13),
288c2ecf20Sopenharmony_ci	GPMI_D14	= PINID(0, 14),
298c2ecf20Sopenharmony_ci	GPMI_D15	= PINID(0, 15),
308c2ecf20Sopenharmony_ci	GPMI_CLE	= PINID(0, 16),
318c2ecf20Sopenharmony_ci	GPMI_ALE	= PINID(0, 17),
328c2ecf20Sopenharmony_ci	GPMI_CE2N	= PINID(0, 18),
338c2ecf20Sopenharmony_ci	GPMI_RDY0	= PINID(0, 19),
348c2ecf20Sopenharmony_ci	GPMI_RDY1	= PINID(0, 20),
358c2ecf20Sopenharmony_ci	GPMI_RDY2	= PINID(0, 21),
368c2ecf20Sopenharmony_ci	GPMI_RDY3	= PINID(0, 22),
378c2ecf20Sopenharmony_ci	GPMI_WPN	= PINID(0, 23),
388c2ecf20Sopenharmony_ci	GPMI_WRN	= PINID(0, 24),
398c2ecf20Sopenharmony_ci	GPMI_RDN	= PINID(0, 25),
408c2ecf20Sopenharmony_ci	AUART1_CTS	= PINID(0, 26),
418c2ecf20Sopenharmony_ci	AUART1_RTS	= PINID(0, 27),
428c2ecf20Sopenharmony_ci	AUART1_RX	= PINID(0, 28),
438c2ecf20Sopenharmony_ci	AUART1_TX	= PINID(0, 29),
448c2ecf20Sopenharmony_ci	I2C_SCL		= PINID(0, 30),
458c2ecf20Sopenharmony_ci	I2C_SDA		= PINID(0, 31),
468c2ecf20Sopenharmony_ci	LCD_D00		= PINID(1, 0),
478c2ecf20Sopenharmony_ci	LCD_D01		= PINID(1, 1),
488c2ecf20Sopenharmony_ci	LCD_D02		= PINID(1, 2),
498c2ecf20Sopenharmony_ci	LCD_D03		= PINID(1, 3),
508c2ecf20Sopenharmony_ci	LCD_D04		= PINID(1, 4),
518c2ecf20Sopenharmony_ci	LCD_D05		= PINID(1, 5),
528c2ecf20Sopenharmony_ci	LCD_D06		= PINID(1, 6),
538c2ecf20Sopenharmony_ci	LCD_D07		= PINID(1, 7),
548c2ecf20Sopenharmony_ci	LCD_D08		= PINID(1, 8),
558c2ecf20Sopenharmony_ci	LCD_D09		= PINID(1, 9),
568c2ecf20Sopenharmony_ci	LCD_D10		= PINID(1, 10),
578c2ecf20Sopenharmony_ci	LCD_D11		= PINID(1, 11),
588c2ecf20Sopenharmony_ci	LCD_D12		= PINID(1, 12),
598c2ecf20Sopenharmony_ci	LCD_D13		= PINID(1, 13),
608c2ecf20Sopenharmony_ci	LCD_D14		= PINID(1, 14),
618c2ecf20Sopenharmony_ci	LCD_D15		= PINID(1, 15),
628c2ecf20Sopenharmony_ci	LCD_D16		= PINID(1, 16),
638c2ecf20Sopenharmony_ci	LCD_D17		= PINID(1, 17),
648c2ecf20Sopenharmony_ci	LCD_RESET	= PINID(1, 18),
658c2ecf20Sopenharmony_ci	LCD_RS		= PINID(1, 19),
668c2ecf20Sopenharmony_ci	LCD_WR		= PINID(1, 20),
678c2ecf20Sopenharmony_ci	LCD_CS		= PINID(1, 21),
688c2ecf20Sopenharmony_ci	LCD_DOTCK	= PINID(1, 22),
698c2ecf20Sopenharmony_ci	LCD_ENABLE	= PINID(1, 23),
708c2ecf20Sopenharmony_ci	LCD_HSYNC	= PINID(1, 24),
718c2ecf20Sopenharmony_ci	LCD_VSYNC	= PINID(1, 25),
728c2ecf20Sopenharmony_ci	PWM0		= PINID(1, 26),
738c2ecf20Sopenharmony_ci	PWM1		= PINID(1, 27),
748c2ecf20Sopenharmony_ci	PWM2		= PINID(1, 28),
758c2ecf20Sopenharmony_ci	PWM3		= PINID(1, 29),
768c2ecf20Sopenharmony_ci	PWM4		= PINID(1, 30),
778c2ecf20Sopenharmony_ci	SSP1_CMD	= PINID(2, 0),
788c2ecf20Sopenharmony_ci	SSP1_DETECT	= PINID(2, 1),
798c2ecf20Sopenharmony_ci	SSP1_DATA0	= PINID(2, 2),
808c2ecf20Sopenharmony_ci	SSP1_DATA1	= PINID(2, 3),
818c2ecf20Sopenharmony_ci	SSP1_DATA2	= PINID(2, 4),
828c2ecf20Sopenharmony_ci	SSP1_DATA3	= PINID(2, 5),
838c2ecf20Sopenharmony_ci	SSP1_SCK	= PINID(2, 6),
848c2ecf20Sopenharmony_ci	ROTARYA		= PINID(2, 7),
858c2ecf20Sopenharmony_ci	ROTARYB		= PINID(2, 8),
868c2ecf20Sopenharmony_ci	EMI_A00		= PINID(2, 9),
878c2ecf20Sopenharmony_ci	EMI_A01		= PINID(2, 10),
888c2ecf20Sopenharmony_ci	EMI_A02		= PINID(2, 11),
898c2ecf20Sopenharmony_ci	EMI_A03		= PINID(2, 12),
908c2ecf20Sopenharmony_ci	EMI_A04		= PINID(2, 13),
918c2ecf20Sopenharmony_ci	EMI_A05		= PINID(2, 14),
928c2ecf20Sopenharmony_ci	EMI_A06		= PINID(2, 15),
938c2ecf20Sopenharmony_ci	EMI_A07		= PINID(2, 16),
948c2ecf20Sopenharmony_ci	EMI_A08		= PINID(2, 17),
958c2ecf20Sopenharmony_ci	EMI_A09		= PINID(2, 18),
968c2ecf20Sopenharmony_ci	EMI_A10		= PINID(2, 19),
978c2ecf20Sopenharmony_ci	EMI_A11		= PINID(2, 20),
988c2ecf20Sopenharmony_ci	EMI_A12		= PINID(2, 21),
998c2ecf20Sopenharmony_ci	EMI_BA0		= PINID(2, 22),
1008c2ecf20Sopenharmony_ci	EMI_BA1		= PINID(2, 23),
1018c2ecf20Sopenharmony_ci	EMI_CASN	= PINID(2, 24),
1028c2ecf20Sopenharmony_ci	EMI_CE0N	= PINID(2, 25),
1038c2ecf20Sopenharmony_ci	EMI_CE1N	= PINID(2, 26),
1048c2ecf20Sopenharmony_ci	GPMI_CE1N	= PINID(2, 27),
1058c2ecf20Sopenharmony_ci	GPMI_CE0N	= PINID(2, 28),
1068c2ecf20Sopenharmony_ci	EMI_CKE		= PINID(2, 29),
1078c2ecf20Sopenharmony_ci	EMI_RASN	= PINID(2, 30),
1088c2ecf20Sopenharmony_ci	EMI_WEN		= PINID(2, 31),
1098c2ecf20Sopenharmony_ci	EMI_D00		= PINID(3, 0),
1108c2ecf20Sopenharmony_ci	EMI_D01		= PINID(3, 1),
1118c2ecf20Sopenharmony_ci	EMI_D02		= PINID(3, 2),
1128c2ecf20Sopenharmony_ci	EMI_D03		= PINID(3, 3),
1138c2ecf20Sopenharmony_ci	EMI_D04		= PINID(3, 4),
1148c2ecf20Sopenharmony_ci	EMI_D05		= PINID(3, 5),
1158c2ecf20Sopenharmony_ci	EMI_D06		= PINID(3, 6),
1168c2ecf20Sopenharmony_ci	EMI_D07		= PINID(3, 7),
1178c2ecf20Sopenharmony_ci	EMI_D08		= PINID(3, 8),
1188c2ecf20Sopenharmony_ci	EMI_D09		= PINID(3, 9),
1198c2ecf20Sopenharmony_ci	EMI_D10		= PINID(3, 10),
1208c2ecf20Sopenharmony_ci	EMI_D11		= PINID(3, 11),
1218c2ecf20Sopenharmony_ci	EMI_D12		= PINID(3, 12),
1228c2ecf20Sopenharmony_ci	EMI_D13		= PINID(3, 13),
1238c2ecf20Sopenharmony_ci	EMI_D14		= PINID(3, 14),
1248c2ecf20Sopenharmony_ci	EMI_D15		= PINID(3, 15),
1258c2ecf20Sopenharmony_ci	EMI_DQM0	= PINID(3, 16),
1268c2ecf20Sopenharmony_ci	EMI_DQM1	= PINID(3, 17),
1278c2ecf20Sopenharmony_ci	EMI_DQS0	= PINID(3, 18),
1288c2ecf20Sopenharmony_ci	EMI_DQS1	= PINID(3, 19),
1298c2ecf20Sopenharmony_ci	EMI_CLK		= PINID(3, 20),
1308c2ecf20Sopenharmony_ci	EMI_CLKN	= PINID(3, 21),
1318c2ecf20Sopenharmony_ci};
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc imx23_pins[] = {
1348c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D00),
1358c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D01),
1368c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D02),
1378c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D03),
1388c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D04),
1398c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D05),
1408c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D06),
1418c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D07),
1428c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D08),
1438c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D09),
1448c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D10),
1458c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D11),
1468c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D12),
1478c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D13),
1488c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D14),
1498c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_D15),
1508c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_CLE),
1518c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_ALE),
1528c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_CE2N),
1538c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_RDY0),
1548c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_RDY1),
1558c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_RDY2),
1568c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_RDY3),
1578c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_WPN),
1588c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_WRN),
1598c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_RDN),
1608c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(AUART1_CTS),
1618c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(AUART1_RTS),
1628c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(AUART1_RX),
1638c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(AUART1_TX),
1648c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(I2C_SCL),
1658c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(I2C_SDA),
1668c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D00),
1678c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D01),
1688c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D02),
1698c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D03),
1708c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D04),
1718c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D05),
1728c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D06),
1738c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D07),
1748c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D08),
1758c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D09),
1768c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D10),
1778c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D11),
1788c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D12),
1798c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D13),
1808c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D14),
1818c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D15),
1828c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D16),
1838c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_D17),
1848c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_RESET),
1858c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_RS),
1868c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_WR),
1878c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_CS),
1888c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_DOTCK),
1898c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_ENABLE),
1908c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_HSYNC),
1918c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(LCD_VSYNC),
1928c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(PWM0),
1938c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(PWM1),
1948c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(PWM2),
1958c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(PWM3),
1968c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(PWM4),
1978c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_CMD),
1988c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_DETECT),
1998c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_DATA0),
2008c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_DATA1),
2018c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_DATA2),
2028c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_DATA3),
2038c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(SSP1_SCK),
2048c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(ROTARYA),
2058c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(ROTARYB),
2068c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A00),
2078c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A01),
2088c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A02),
2098c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A03),
2108c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A04),
2118c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A05),
2128c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A06),
2138c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A07),
2148c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A08),
2158c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A09),
2168c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A10),
2178c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A11),
2188c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_A12),
2198c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_BA0),
2208c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_BA1),
2218c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CASN),
2228c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CE0N),
2238c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CE1N),
2248c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_CE1N),
2258c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(GPMI_CE0N),
2268c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CKE),
2278c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_RASN),
2288c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_WEN),
2298c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D00),
2308c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D01),
2318c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D02),
2328c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D03),
2338c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D04),
2348c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D05),
2358c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D06),
2368c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D07),
2378c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D08),
2388c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D09),
2398c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D10),
2408c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D11),
2418c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D12),
2428c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D13),
2438c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D14),
2448c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_D15),
2458c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_DQM0),
2468c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_DQM1),
2478c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_DQS0),
2488c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_DQS1),
2498c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CLK),
2508c2ecf20Sopenharmony_ci	MXS_PINCTRL_PIN(EMI_CLKN),
2518c2ecf20Sopenharmony_ci};
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_cistatic const struct mxs_regs imx23_regs = {
2548c2ecf20Sopenharmony_ci	.muxsel = 0x100,
2558c2ecf20Sopenharmony_ci	.drive = 0x200,
2568c2ecf20Sopenharmony_ci	.pull = 0x400,
2578c2ecf20Sopenharmony_ci};
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_cistatic struct mxs_pinctrl_soc_data imx23_pinctrl_data = {
2608c2ecf20Sopenharmony_ci	.regs = &imx23_regs,
2618c2ecf20Sopenharmony_ci	.pins = imx23_pins,
2628c2ecf20Sopenharmony_ci	.npins = ARRAY_SIZE(imx23_pins),
2638c2ecf20Sopenharmony_ci};
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_cistatic int imx23_pinctrl_probe(struct platform_device *pdev)
2668c2ecf20Sopenharmony_ci{
2678c2ecf20Sopenharmony_ci	return mxs_pinctrl_probe(pdev, &imx23_pinctrl_data);
2688c2ecf20Sopenharmony_ci}
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_cistatic const struct of_device_id imx23_pinctrl_of_match[] = {
2718c2ecf20Sopenharmony_ci	{ .compatible = "fsl,imx23-pinctrl", },
2728c2ecf20Sopenharmony_ci	{ /* sentinel */ }
2738c2ecf20Sopenharmony_ci};
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_cistatic struct platform_driver imx23_pinctrl_driver = {
2768c2ecf20Sopenharmony_ci	.driver = {
2778c2ecf20Sopenharmony_ci		.name = "imx23-pinctrl",
2788c2ecf20Sopenharmony_ci		.suppress_bind_attrs = true,
2798c2ecf20Sopenharmony_ci		.of_match_table = imx23_pinctrl_of_match,
2808c2ecf20Sopenharmony_ci	},
2818c2ecf20Sopenharmony_ci	.probe = imx23_pinctrl_probe,
2828c2ecf20Sopenharmony_ci};
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_cistatic int __init imx23_pinctrl_init(void)
2858c2ecf20Sopenharmony_ci{
2868c2ecf20Sopenharmony_ci	return platform_driver_register(&imx23_pinctrl_driver);
2878c2ecf20Sopenharmony_ci}
2888c2ecf20Sopenharmony_cipostcore_initcall(imx23_pinctrl_init);
289