// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2020
 * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com>
 */

#include <linux/err.h>
#include <linux/init.h>
#include <linux/of.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/platform_device.h>

#include "pinctrl-imx.h"

enum imxrt1050_pads {
	IMXRT1050_PAD_RESERVE0,
	IMXRT1050_PAD_RESERVE1,
	IMXRT1050_PAD_RESERVE2,
	IMXRT1050_PAD_RESERVE3,
	IMXRT1050_PAD_RESERVE4,
	IMXRT1050_PAD_EMC_00,
	IMXRT1050_PAD_EMC_01,
	IMXRT1050_PAD_EMC_02,
	IMXRT1050_PAD_EMC_03,
	IMXRT1050_PAD_EMC_04,
	IMXRT1050_PAD_EMC_05,
	IMXRT1050_PAD_EMC_06,
	IMXRT1050_PAD_EMC_07,
	IMXRT1050_PAD_EMC_08,
	IMXRT1050_PAD_EMC_09,
	IMXRT1050_PAD_EMC_10,
	IMXRT1050_PAD_EMC_11,
	IMXRT1050_PAD_EMC_12,
	IMXRT1050_PAD_EMC_13,
	IMXRT1050_PAD_EMC_14,
	IMXRT1050_PAD_EMC_15,
	IMXRT1050_PAD_EMC_16,
	IMXRT1050_PAD_EMC_17,
	IMXRT1050_PAD_EMC_18,
	IMXRT1050_PAD_EMC_19,
	IMXRT1050_PAD_EMC_20,
	IMXRT1050_PAD_EMC_21,
	IMXRT1050_PAD_EMC_22,
	IMXRT1050_PAD_EMC_23,
	IMXRT1050_PAD_EMC_24,
	IMXRT1050_PAD_EMC_25,
	IMXRT1050_PAD_EMC_26,
	IMXRT1050_PAD_EMC_27,
	IMXRT1050_PAD_EMC_28,
	IMXRT1050_PAD_EMC_29,
	IMXRT1050_PAD_EMC_30,
	IMXRT1050_PAD_EMC_31,
	IMXRT1050_PAD_EMC_32,
	IMXRT1050_PAD_EMC_33,
	IMXRT1050_PAD_EMC_34,
	IMXRT1050_PAD_EMC_35,
	IMXRT1050_PAD_EMC_36,
	IMXRT1050_PAD_EMC_37,
	IMXRT1050_PAD_EMC_38,
	IMXRT1050_PAD_EMC_39,
	IMXRT1050_PAD_EMC_40,
	IMXRT1050_PAD_EMC_41,
	IMXRT1050_PAD_AD_B0_00,
	IMXRT1050_PAD_AD_B0_01,
	IMXRT1050_PAD_AD_B0_02,
	IMXRT1050_PAD_AD_B0_03,
	IMXRT1050_PAD_AD_B0_04,
	IMXRT1050_PAD_AD_B0_05,
	IMXRT1050_PAD_AD_B0_06,
	IMXRT1050_PAD_AD_B0_07,
	IMXRT1050_PAD_AD_B0_08,
	IMXRT1050_PAD_AD_B0_09,
	IMXRT1050_PAD_AD_B0_10,
	IMXRT1050_PAD_AD_B0_11,
	IMXRT1050_PAD_AD_B0_12,
	IMXRT1050_PAD_AD_B0_13,
	IMXRT1050_PAD_AD_B0_14,
	IMXRT1050_PAD_AD_B0_15,
	IMXRT1050_PAD_AD_B1_00,
	IMXRT1050_PAD_AD_B1_01,
	IMXRT1050_PAD_AD_B1_02,
	IMXRT1050_PAD_AD_B1_03,
	IMXRT1050_PAD_AD_B1_04,
	IMXRT1050_PAD_AD_B1_05,
	IMXRT1050_PAD_AD_B1_06,
	IMXRT1050_PAD_AD_B1_07,
	IMXRT1050_PAD_AD_B1_08,
	IMXRT1050_PAD_AD_B1_09,
	IMXRT1050_PAD_AD_B1_10,
	IMXRT1050_PAD_AD_B1_11,
	IMXRT1050_PAD_AD_B1_12,
	IMXRT1050_PAD_AD_B1_13,
	IMXRT1050_PAD_AD_B1_14,
	IMXRT1050_PAD_AD_B1_15,
	IMXRT1050_PAD_B0_00,
	IMXRT1050_PAD_B0_01,
	IMXRT1050_PAD_B0_02,
	IMXRT1050_PAD_B0_03,
	IMXRT1050_PAD_B0_04,
	IMXRT1050_PAD_B0_05,
	IMXRT1050_PAD_B0_06,
	IMXRT1050_PAD_B0_07,
	IMXRT1050_PAD_B0_08,
	IMXRT1050_PAD_B0_09,
	IMXRT1050_PAD_B0_10,
	IMXRT1050_PAD_B0_11,
	IMXRT1050_PAD_B0_12,
	IMXRT1050_PAD_B0_13,
	IMXRT1050_PAD_B0_14,
	IMXRT1050_PAD_B0_15,
	IMXRT1050_PAD_B1_00,
	IMXRT1050_PAD_B1_01,
	IMXRT1050_PAD_B1_02,
	IMXRT1050_PAD_B1_03,
	IMXRT1050_PAD_B1_04,
	IMXRT1050_PAD_B1_05,
	IMXRT1050_PAD_B1_06,
	IMXRT1050_PAD_B1_07,
	IMXRT1050_PAD_B1_08,
	IMXRT1050_PAD_B1_09,
	IMXRT1050_PAD_B1_10,
	IMXRT1050_PAD_B1_11,
	IMXRT1050_PAD_B1_12,
	IMXRT1050_PAD_B1_13,
	IMXRT1050_PAD_B1_14,
	IMXRT1050_PAD_B1_15,
	IMXRT1050_PAD_SD_B0_00,
	IMXRT1050_PAD_SD_B0_01,
	IMXRT1050_PAD_SD_B0_02,
	IMXRT1050_PAD_SD_B0_03,
	IMXRT1050_PAD_SD_B0_04,
	IMXRT1050_PAD_SD_B0_05,
	IMXRT1050_PAD_SD_B1_00,
	IMXRT1050_PAD_SD_B1_01,
	IMXRT1050_PAD_SD_B1_02,
	IMXRT1050_PAD_SD_B1_03,
	IMXRT1050_PAD_SD_B1_04,
	IMXRT1050_PAD_SD_B1_05,
	IMXRT1050_PAD_SD_B1_06,
	IMXRT1050_PAD_SD_B1_07,
	IMXRT1050_PAD_SD_B1_08,
	IMXRT1050_PAD_SD_B1_09,
	IMXRT1050_PAD_SD_B1_10,
	IMXRT1050_PAD_SD_B1_11,
};

/* Pad names for the pinmux subsystem */
static const struct pinctrl_pin_desc imxrt1050_pinctrl_pads[] = {
	IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE0),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE1),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE2),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE3),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE4),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_11),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_12),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_13),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_14),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_15),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_16),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_17),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_18),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_19),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_20),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_21),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_22),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_23),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_24),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_25),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_26),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_27),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_28),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_29),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_30),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_31),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_32),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_33),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_34),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_35),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_36),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_37),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_38),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_39),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_40),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_EMC_41),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_11),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_12),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_13),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_14),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B0_15),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_11),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_12),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_13),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_14),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_AD_B1_15),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_11),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_12),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_13),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_14),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B0_15),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_11),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_12),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_13),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_14),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_B1_15),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B0_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_00),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_01),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_02),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_03),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_04),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_05),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_06),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_07),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_08),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_09),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_10),
	IMX_PINCTRL_PIN(IMXRT1050_PAD_SD_B1_11),
};

static const struct imx_pinctrl_soc_info imxrt1050_pinctrl_info = {
	.pins = imxrt1050_pinctrl_pads,
	.npins = ARRAY_SIZE(imxrt1050_pinctrl_pads),
	.gpr_compatible = "fsl,imxrt1050-iomuxc-gpr",
};

static const struct of_device_id imxrt1050_pinctrl_of_match[] = {
	{ .compatible = "fsl,imxrt1050-iomuxc", .data = &imxrt1050_pinctrl_info, },
	{ /* sentinel */ }
};

static int imxrt1050_pinctrl_probe(struct platform_device *pdev)
{
	return imx_pinctrl_probe(pdev, &imxrt1050_pinctrl_info);
}

static struct platform_driver imxrt1050_pinctrl_driver = {
	.driver = {
		.name = "imxrt1050-pinctrl",
		.of_match_table = of_match_ptr(imxrt1050_pinctrl_of_match),
		.suppress_bind_attrs = true,
	},
	.probe = imxrt1050_pinctrl_probe,
};

static int __init imxrt1050_pinctrl_init(void)
{
	return platform_driver_register(&imxrt1050_pinctrl_driver);
}
arch_initcall(imxrt1050_pinctrl_init);
