// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2016 Freescale Semiconductor, Inc.
// Copyright 2017-2018 NXP.

#include <linux/err.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-imx.h"

enum imx6sll_pads {
	MX6SLL_PAD_RESERVE0 = 0,
	MX6SLL_PAD_RESERVE1 = 1,
	MX6SLL_PAD_RESERVE2 = 2,
	MX6SLL_PAD_RESERVE3 = 3,
	MX6SLL_PAD_RESERVE4 = 4,
	MX6SLL_PAD_WDOG_B = 5,
	MX6SLL_PAD_REF_CLK_24M = 6,
	MX6SLL_PAD_REF_CLK_32K = 7,
	MX6SLL_PAD_PWM1 = 8,
	MX6SLL_PAD_KEY_COL0 = 9,
	MX6SLL_PAD_KEY_ROW0 = 10,
	MX6SLL_PAD_KEY_COL1 = 11,
	MX6SLL_PAD_KEY_ROW1 = 12,
	MX6SLL_PAD_KEY_COL2 = 13,
	MX6SLL_PAD_KEY_ROW2 = 14,
	MX6SLL_PAD_KEY_COL3 = 15,
	MX6SLL_PAD_KEY_ROW3 = 16,
	MX6SLL_PAD_KEY_COL4 = 17,
	MX6SLL_PAD_KEY_ROW4 = 18,
	MX6SLL_PAD_KEY_COL5 = 19,
	MX6SLL_PAD_KEY_ROW5 = 20,
	MX6SLL_PAD_KEY_COL6 = 21,
	MX6SLL_PAD_KEY_ROW6 = 22,
	MX6SLL_PAD_KEY_COL7 = 23,
	MX6SLL_PAD_KEY_ROW7 = 24,
	MX6SLL_PAD_EPDC_DATA00 = 25,
	MX6SLL_PAD_EPDC_DATA01 = 26,
	MX6SLL_PAD_EPDC_DATA02 = 27,
	MX6SLL_PAD_EPDC_DATA03 = 28,
	MX6SLL_PAD_EPDC_DATA04 = 29,
	MX6SLL_PAD_EPDC_DATA05 = 30,
	MX6SLL_PAD_EPDC_DATA06 = 31,
	MX6SLL_PAD_EPDC_DATA07 = 32,
	MX6SLL_PAD_EPDC_DATA08 = 33,
	MX6SLL_PAD_EPDC_DATA09 = 34,
	MX6SLL_PAD_EPDC_DATA10 = 35,
	MX6SLL_PAD_EPDC_DATA11 = 36,
	MX6SLL_PAD_EPDC_DATA12 = 37,
	MX6SLL_PAD_EPDC_DATA13 = 38,
	MX6SLL_PAD_EPDC_DATA14 = 39,
	MX6SLL_PAD_EPDC_DATA15 = 40,
	MX6SLL_PAD_EPDC_SDCLK = 41,
	MX6SLL_PAD_EPDC_SDLE = 42,
	MX6SLL_PAD_EPDC_SDOE = 43,
	MX6SLL_PAD_EPDC_SDSHR = 44,
	MX6SLL_PAD_EPDC_SDCE0 = 45,
	MX6SLL_PAD_EPDC_SDCE1 = 46,
	MX6SLL_PAD_EPDC_SDCE2 = 47,
	MX6SLL_PAD_EPDC_SDCE3 = 48,
	MX6SLL_PAD_EPDC_GDCLK = 49,
	MX6SLL_PAD_EPDC_GDOE = 50,
	MX6SLL_PAD_EPDC_GDRL = 51,
	MX6SLL_PAD_EPDC_GDSP = 52,
	MX6SLL_PAD_EPDC_VCOM0 = 53,
	MX6SLL_PAD_EPDC_VCOM1 = 54,
	MX6SLL_PAD_EPDC_BDR0 = 55,
	MX6SLL_PAD_EPDC_BDR1 = 56,
	MX6SLL_PAD_EPDC_PWR_CTRL0 = 57,
	MX6SLL_PAD_EPDC_PWR_CTRL1 = 58,
	MX6SLL_PAD_EPDC_PWR_CTRL2 = 59,
	MX6SLL_PAD_EPDC_PWR_CTRL3 = 60,
	MX6SLL_PAD_EPDC_PWR_COM = 61,
	MX6SLL_PAD_EPDC_PWR_INT = 62,
	MX6SLL_PAD_EPDC_PWR_STAT = 63,
	MX6SLL_PAD_EPDC_PWR_WAKE = 64,
	MX6SLL_PAD_LCD_CLK = 65,
	MX6SLL_PAD_LCD_ENABLE = 66,
	MX6SLL_PAD_LCD_HSYNC = 67,
	MX6SLL_PAD_LCD_VSYNC = 68,
	MX6SLL_PAD_LCD_RESET = 69,
	MX6SLL_PAD_LCD_DATA00 = 70,
	MX6SLL_PAD_LCD_DATA01 = 71,
	MX6SLL_PAD_LCD_DATA02 = 72,
	MX6SLL_PAD_LCD_DATA03 = 73,
	MX6SLL_PAD_LCD_DATA04 = 74,
	MX6SLL_PAD_LCD_DATA05 = 75,
	MX6SLL_PAD_LCD_DATA06 = 76,
	MX6SLL_PAD_LCD_DATA07 = 77,
	MX6SLL_PAD_LCD_DATA08 = 78,
	MX6SLL_PAD_LCD_DATA09 = 79,
	MX6SLL_PAD_LCD_DATA10 = 80,
	MX6SLL_PAD_LCD_DATA11 = 81,
	MX6SLL_PAD_LCD_DATA12 = 82,
	MX6SLL_PAD_LCD_DATA13 = 83,
	MX6SLL_PAD_LCD_DATA14 = 84,
	MX6SLL_PAD_LCD_DATA15 = 85,
	MX6SLL_PAD_LCD_DATA16 = 86,
	MX6SLL_PAD_LCD_DATA17 = 87,
	MX6SLL_PAD_LCD_DATA18 = 88,
	MX6SLL_PAD_LCD_DATA19 = 89,
	MX6SLL_PAD_LCD_DATA20 = 90,
	MX6SLL_PAD_LCD_DATA21 = 91,
	MX6SLL_PAD_LCD_DATA22 = 92,
	MX6SLL_PAD_LCD_DATA23 = 93,
	MX6SLL_PAD_AUD_RXFS = 94,
	MX6SLL_PAD_AUD_RXC = 95,
	MX6SLL_PAD_AUD_RXD = 96,
	MX6SLL_PAD_AUD_TXC = 97,
	MX6SLL_PAD_AUD_TXFS = 98,
	MX6SLL_PAD_AUD_TXD = 99,
	MX6SLL_PAD_AUD_MCLK = 100,
	MX6SLL_PAD_UART1_RXD = 101,
	MX6SLL_PAD_UART1_TXD = 102,
	MX6SLL_PAD_I2C1_SCL = 103,
	MX6SLL_PAD_I2C1_SDA = 104,
	MX6SLL_PAD_I2C2_SCL = 105,
	MX6SLL_PAD_I2C2_SDA = 106,
	MX6SLL_PAD_ECSPI1_SCLK = 107,
	MX6SLL_PAD_ECSPI1_MOSI = 108,
	MX6SLL_PAD_ECSPI1_MISO = 109,
	MX6SLL_PAD_ECSPI1_SS0 = 110,
	MX6SLL_PAD_ECSPI2_SCLK = 111,
	MX6SLL_PAD_ECSPI2_MOSI = 112,
	MX6SLL_PAD_ECSPI2_MISO = 113,
	MX6SLL_PAD_ECSPI2_SS0 = 114,
	MX6SLL_PAD_SD1_CLK = 115,
	MX6SLL_PAD_SD1_CMD = 116,
	MX6SLL_PAD_SD1_DATA0 = 117,
	MX6SLL_PAD_SD1_DATA1 = 118,
	MX6SLL_PAD_SD1_DATA2 = 119,
	MX6SLL_PAD_SD1_DATA3 = 120,
	MX6SLL_PAD_SD1_DATA4 = 121,
	MX6SLL_PAD_SD1_DATA5 = 122,
	MX6SLL_PAD_SD1_DATA6 = 123,
	MX6SLL_PAD_SD1_DATA7 = 124,
	MX6SLL_PAD_SD2_RESET = 125,
	MX6SLL_PAD_SD2_CLK = 126,
	MX6SLL_PAD_SD2_CMD = 127,
	MX6SLL_PAD_SD2_DATA0 = 128,
	MX6SLL_PAD_SD2_DATA1 = 129,
	MX6SLL_PAD_SD2_DATA2 = 130,
	MX6SLL_PAD_SD2_DATA3 = 131,
	MX6SLL_PAD_SD2_DATA4 = 132,
	MX6SLL_PAD_SD2_DATA5 = 133,
	MX6SLL_PAD_SD2_DATA6 = 134,
	MX6SLL_PAD_SD2_DATA7 = 135,
	MX6SLL_PAD_SD3_CLK = 136,
	MX6SLL_PAD_SD3_CMD = 137,
	MX6SLL_PAD_SD3_DATA0 = 138,
	MX6SLL_PAD_SD3_DATA1 = 139,
	MX6SLL_PAD_SD3_DATA2 = 140,
	MX6SLL_PAD_SD3_DATA3 = 141,
	MX6SLL_PAD_GPIO4_IO20 = 142,
	MX6SLL_PAD_GPIO4_IO21 = 143,
	MX6SLL_PAD_GPIO4_IO19 = 144,
	MX6SLL_PAD_GPIO4_IO25 = 145,
	MX6SLL_PAD_GPIO4_IO18 = 146,
	MX6SLL_PAD_GPIO4_IO24 = 147,
	MX6SLL_PAD_GPIO4_IO23 = 148,
	MX6SLL_PAD_GPIO4_IO17 = 149,
	MX6SLL_PAD_GPIO4_IO22 = 150,
	MX6SLL_PAD_GPIO4_IO16 = 151,
	MX6SLL_PAD_GPIO4_IO26 = 152,
};

/* Pad names for the pinmux subsystem */
static const struct pinctrl_pin_desc imx6sll_pinctrl_pads[] = {
	IMX_PINCTRL_PIN(MX6SLL_PAD_RESERVE0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_RESERVE1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_RESERVE2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_RESERVE3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_RESERVE4),
	IMX_PINCTRL_PIN(MX6SLL_PAD_WDOG_B),
	IMX_PINCTRL_PIN(MX6SLL_PAD_REF_CLK_24M),
	IMX_PINCTRL_PIN(MX6SLL_PAD_REF_CLK_32K),
	IMX_PINCTRL_PIN(MX6SLL_PAD_PWM1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL4),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW4),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL5),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW5),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL6),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW6),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_COL7),
	IMX_PINCTRL_PIN(MX6SLL_PAD_KEY_ROW7),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA00),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA01),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA02),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA03),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA04),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA05),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA06),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA07),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA08),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA09),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA10),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA11),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA12),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA13),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA14),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_DATA15),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDCLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDLE),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDOE),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDSHR),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDCE0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDCE1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDCE2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_SDCE3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_GDCLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_GDOE),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_GDRL),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_GDSP),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_VCOM0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_VCOM1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_BDR0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_BDR1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_CTRL0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_CTRL1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_CTRL2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_CTRL3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_COM),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_INT),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_STAT),
	IMX_PINCTRL_PIN(MX6SLL_PAD_EPDC_PWR_WAKE),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_CLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_ENABLE),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_HSYNC),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_VSYNC),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_RESET),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA00),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA01),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA02),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA03),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA04),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA05),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA06),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA07),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA08),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA09),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA10),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA11),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA12),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA13),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA14),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA15),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA16),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA17),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA18),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA19),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA20),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA21),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA22),
	IMX_PINCTRL_PIN(MX6SLL_PAD_LCD_DATA23),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_RXFS),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_RXC),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_RXD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_TXC),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_TXFS),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_TXD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_AUD_MCLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_UART1_RXD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_UART1_TXD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_I2C1_SCL),
	IMX_PINCTRL_PIN(MX6SLL_PAD_I2C1_SDA),
	IMX_PINCTRL_PIN(MX6SLL_PAD_I2C2_SCL),
	IMX_PINCTRL_PIN(MX6SLL_PAD_I2C2_SDA),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI1_SCLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI1_MOSI),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI1_MISO),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI1_SS0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI2_SCLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI2_MOSI),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI2_MISO),
	IMX_PINCTRL_PIN(MX6SLL_PAD_ECSPI2_SS0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_CLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_CMD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA4),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA5),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA6),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD1_DATA7),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_RESET),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_CLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_CMD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA4),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA5),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA6),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD2_DATA7),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_CLK),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_CMD),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_DATA0),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_DATA1),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_DATA2),
	IMX_PINCTRL_PIN(MX6SLL_PAD_SD3_DATA3),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO20),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO21),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO19),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO25),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO18),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO24),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO23),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO17),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO22),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO16),
	IMX_PINCTRL_PIN(MX6SLL_PAD_GPIO4_IO26),
};

static const struct imx_pinctrl_soc_info imx6sll_pinctrl_info = {
	.pins = imx6sll_pinctrl_pads,
	.npins = ARRAY_SIZE(imx6sll_pinctrl_pads),
	.gpr_compatible = "fsl,imx6sll-iomuxc-gpr",
};

static const struct of_device_id imx6sll_pinctrl_of_match[] = {
	{ .compatible = "fsl,imx6sll-iomuxc", .data = &imx6sll_pinctrl_info, },
	{ /* sentinel */ }
};

static int imx6sll_pinctrl_probe(struct platform_device *pdev)
{
	return imx_pinctrl_probe(pdev, &imx6sll_pinctrl_info);
}

static struct platform_driver imx6sll_pinctrl_driver = {
	.driver = {
		.name = "imx6sll-pinctrl",
		.of_match_table = of_match_ptr(imx6sll_pinctrl_of_match),
		.suppress_bind_attrs = true,
	},
	.probe = imx6sll_pinctrl_probe,
};

static int __init imx6sll_pinctrl_init(void)
{
	return platform_driver_register(&imx6sll_pinctrl_driver);
}
arch_initcall(imx6sll_pinctrl_init);
