summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDong Aisheng <aisheng.dong@nxp.com>2019-12-02 18:05:20 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-12-02 18:05:20 +0800
commit433035eb79767026560cec744907792f1e3ea828 (patch)
tree42cb1fcd6ad529e37ba352968d2c435079dfc5ce
parent4402983b63d632808dfeba8729e43130df9df489 (diff)
parentbf5b9043bcfafb7647a3e4ff32a00ae453e468e7 (diff)
Merge branch 'pinctrl/next' into next
* pinctrl/next: (18 commits) pinctrl: s32v234: Add FlexCAN pins to S32V234 driver dt-bindings: pinctrl: s32v234: Add defines for all pins dt-bindings: pinctrl: s32v234: Add macros for MSCR and config pairs pinctrl: s32v234: Remove s32v234_pins enum dt-bindings: pinctrl: s32v234: Add macros for MSCR/IMCR numbers ...
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,s32v234-siul2.txt19
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt7
-rw-r--r--arch/arm64/Kconfig.platforms8
-rw-r--r--drivers/pinctrl/devicetree.c47
-rw-r--r--drivers/pinctrl/freescale/Kconfig13
-rw-r--r--drivers/pinctrl/freescale/Makefile2
-rw-r--r--drivers/pinctrl/freescale/pinctrl-s32v-core.c526
-rw-r--r--drivers/pinctrl/freescale/pinctrl-s32v.h72
-rw-r--r--drivers/pinctrl/freescale/pinctrl-s32v234.c251
-rw-r--r--include/dt-bindings/pinctrl/pads-imx8qxp.h1
-rw-r--r--include/dt-bindings/pinctrl/s32v234-pinctrl.h1173
-rw-r--r--include/linux/mfd/syscon/imx6q-iomuxc-gpr.h9
12 files changed, 2128 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,s32v234-siul2.txt b/Documentation/devicetree/bindings/pinctrl/fsl,s32v234-siul2.txt
new file mode 100644
index 000000000000..676357664a8c
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,s32v234-siul2.txt
@@ -0,0 +1,19 @@
+* Freescale SIUL2 iomux controller
+
+See chapter 20 ("System Integration Unit Lite2 (SIUL2)") in the reference
+manual[1].
+
+Based on fsl,imx-pincontrol implementation.
+
+Required properties:
+- compatible: "fsl,s32v234-siul2"
+- fsl,pins: two integers array, represents a group of pins mux and config
+ setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>
+ PIN_FUNC_ID - id of MSCR to be modified
+ CONFIG - configuration to be written in the MSCR/IMCR register
+
+ Even though IMCR register should be used as input register, it can be
+ set and addressed in the same way as MSCR, only instead of passing the
+ IMCR index, IMCR_IDX + 512 is passed[1].
+
+[1] https://www.nxp.com/webapp/Download?colCode=S32V234RM
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
index fcd37e93ed4d..c42d8c241ad5 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
@@ -71,6 +71,13 @@ pinctrl-names: The list of names to assign states. List entry 0 defines the
name for integer state ID 0, list entry 1 for state ID 1, and
so on.
+pinctrl-assert-gpios:
+ List of phandles, each pointing at a GPIO which is used by some
+ board design to steer pins between two peripherals on the board.
+ It plays like a board level pin multiplexer to choose different
+ functions for given pins by pulling up/down the GPIOs. See
+ bindings/gpio/gpio.txt for details of how to specify GPIO.
+
For example:
/* For a client device requiring named states */
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index b4a5a4de80ee..5785677c9b31 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -221,9 +221,17 @@ config ARCH_ROCKCHIP
config ARCH_S32
bool "NXP S32 SoC Family"
select ARCH_S32_CLK
+ select PINCTRL
help
This enables support for the NXP S32 family of processors.
+if ARCH_S32
+menu "S32 SOC selection"
+ config SOC_S32V234
+ bool "S32V234 SOC"
+endmenu
+endif
+
config ARCH_SEATTLE
bool "AMD Seattle SoC Family"
help
diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c
index 5d6d8b1e9062..a2d7910c5188 100644
--- a/drivers/pinctrl/devicetree.c
+++ b/drivers/pinctrl/devicetree.c
@@ -7,6 +7,7 @@
#include <linux/device.h>
#include <linux/of.h>
+#include <linux/of_gpio.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/slab.h>
@@ -181,6 +182,46 @@ bool pinctrl_dt_has_hogs(struct pinctrl_dev *pctldev)
return prop ? true : false;
}
+static int dt_gpio_assert_pinctrl(struct pinctrl *p)
+{
+ struct device_node *np = p->dev->of_node;
+ enum of_gpio_flags flags;
+ int gpio;
+ int index = 0;
+ int ret;
+
+ if (!of_find_property(np, "pinctrl-assert-gpios", NULL))
+ return 0; /* Missing the property, so nothing to be done */
+
+ for (;; index++) {
+ gpio = of_get_named_gpio_flags(np, "pinctrl-assert-gpios",
+ index, &flags);
+ if (gpio < 0) {
+ if (gpio == -EPROBE_DEFER)
+ return gpio;
+ break; /* End of the phandle list */
+ }
+
+ if (!gpio_is_valid(gpio))
+ return -EINVAL;
+
+ ret = devm_gpio_request_one(p->dev, gpio, GPIOF_OUT_INIT_LOW,
+ NULL);
+ if (ret < 0)
+ return ret;
+
+ if (flags & OF_GPIO_ACTIVE_LOW)
+ continue;
+
+ if (gpio_cansleep(gpio))
+ gpio_set_value_cansleep(gpio, 1);
+ else
+ gpio_set_value(gpio, 1);
+ }
+
+ return 0;
+}
+
int pinctrl_dt_to_map(struct pinctrl *p, struct pinctrl_dev *pctldev)
{
struct device_node *np = p->dev->of_node;
@@ -201,6 +242,12 @@ int pinctrl_dt_to_map(struct pinctrl *p, struct pinctrl_dev *pctldev)
return 0;
}
+ ret = dt_gpio_assert_pinctrl(p);
+ if (ret) {
+ dev_dbg(p->dev, "failed to assert pinctrl setting: %d\n", ret);
+ return ret;
+ }
+
/* We may store pointers to property names within the node */
of_node_get(np);
diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index 5f4058033ec6..01bc57662ac3 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -177,3 +177,16 @@ config PINCTRL_IMX23
config PINCTRL_IMX28
bool
select PINCTRL_MXS
+
+config PINCTRL_S32V_CORE
+ bool "Core driver for the S32V pin controller"
+ help
+ Say Y here to enable the S32V pin controller
+
+config PINCTRL_S32V234
+ bool "Freescale S32V234 pinctrl driver"
+ depends on SOC_S32V234
+ select PINCTRL_IMX
+ select PINCTRL_S32V_CORE
+ help
+ Say Y here to enable the Freescale S32V234 pinctrl driver
diff --git a/drivers/pinctrl/freescale/Makefile b/drivers/pinctrl/freescale/Makefile
index 78e9140c13e3..5ec6e6f9f959 100644
--- a/drivers/pinctrl/freescale/Makefile
+++ b/drivers/pinctrl/freescale/Makefile
@@ -28,3 +28,5 @@ obj-$(CONFIG_PINCTRL_MXS) += pinctrl-mxs.o
obj-$(CONFIG_PINCTRL_IMX23) += pinctrl-imx23.o
obj-$(CONFIG_PINCTRL_IMX25) += pinctrl-imx25.o
obj-$(CONFIG_PINCTRL_IMX28) += pinctrl-imx28.o
+obj-$(CONFIG_PINCTRL_S32V234) += pinctrl-s32v234.o
+obj-$(CONFIG_PINCTRL_S32V_CORE) += pinctrl-s32v-core.o
diff --git a/drivers/pinctrl/freescale/pinctrl-s32v-core.c b/drivers/pinctrl/freescale/pinctrl-s32v-core.c
new file mode 100644
index 000000000000..75d0adc2be25
--- /dev/null
+++ b/drivers/pinctrl/freescale/pinctrl-s32v-core.c
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Core driver for the S32V pin controller
+ *
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
+ * Copyright (C) 2017 NXP
+ *
+ * Based on pinctrl-imx.c:
+ * Author: Dong Aisheng <dong.aisheng@linaro.org>
+ * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012 Linaro Ltd.
+ */
+
+#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/machine.h>
+#include <linux/pinctrl/pinconf.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
+#include <linux/slab.h>
+
+#include "../core.h"
+#include "pinctrl-s32v.h"
+
+/**
+ * @dev: a pointer back to containing device
+ * @base: the offset to the controller in virtual memory
+ */
+struct s32v_pinctrl {
+ struct device *dev;
+ struct pinctrl_dev *pctl;
+ void __iomem *base;
+ const struct s32v_pinctrl_soc_info *info;
+};
+
+static const char *pin_get_name_from_info(struct s32v_pinctrl_soc_info *info,
+ const unsigned int pin_id)
+{
+ int i;
+
+ for (i = 0; i < info->npins; i++) {
+ if (info->pins[i].number == pin_id)
+ return info->pins[i].name;
+ }
+
+ return NULL;
+}
+
+static inline const struct s32v_pin_group *s32v_pinctrl_find_group_by_name(
+ const struct s32v_pinctrl_soc_info *info,
+ const char *name)
+{
+ const struct s32v_pin_group *grp = NULL;
+ unsigned int i;
+
+ for (i = 0; i < info->ngroups; i++) {
+ if (!strcmp(info->groups[i].name, name)) {
+ grp = &info->groups[i];
+ break;
+ }
+ }
+
+ return grp;
+}
+
+static int s32v_get_groups_count(struct pinctrl_dev *pctldev)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ return info->ngroups;
+}
+
+static const char *s32v_get_group_name(struct pinctrl_dev *pctldev,
+ unsigned int selector)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ return info->groups[selector].name;
+}
+
+static int s32v_get_group_pins(struct pinctrl_dev *pctldev,
+ unsigned int selector, const unsigned int **pins,
+ unsigned int *npins)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ if (selector >= info->ngroups)
+ return -EINVAL;
+
+ *pins = info->groups[selector].pin_ids;
+ *npins = info->groups[selector].npins;
+
+ return 0;
+}
+
+static void s32v_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s,
+ unsigned int offset)
+{
+ seq_printf(s, "%s", dev_name(pctldev->dev));
+}
+
+static int s32v_dt_node_to_map(struct pinctrl_dev *pctldev,
+ struct device_node *np,
+ struct pinctrl_map **map, unsigned int *num_maps)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+ const struct s32v_pin_group *grp;
+ struct pinctrl_map *new_map;
+ struct device_node *parent;
+ int map_num = 1;
+ int i, j;
+
+ /*
+ * first find the group of this node and check if we need create
+ * config maps for pins
+ */
+ grp = s32v_pinctrl_find_group_by_name(info, np->name);
+ if (!grp) {
+ dev_err(info->dev, "unable to find group for node %s\n",
+ np->name);
+ return -EINVAL;
+ }
+
+ for (i = 0; i < grp->npins; i++)
+ map_num++;
+
+ new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
+ GFP_KERNEL);
+ if (!new_map)
+ return -ENOMEM;
+
+ *map = new_map;
+ *num_maps = map_num;
+
+ /* create mux map */
+ parent = of_get_parent(np);
+ if (!parent) {
+ kfree(new_map);
+ return -EINVAL;
+ }
+ new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
+ new_map[0].data.mux.function = parent->name;
+ new_map[0].data.mux.group = np->name;
+ of_node_put(parent);
+
+ /* create config map */
+ new_map++;
+ for (i = j = 0; i < grp->npins; i++) {
+ new_map[j].type = PIN_MAP_TYPE_CONFIGS_PIN;
+ new_map[j].data.configs.group_or_pin =
+ pin_get_name(pctldev, grp->pins[i].pin_id);
+ new_map[j].data.configs.configs = &grp->pins[i].config;
+ new_map[j].data.configs.num_configs = 1;
+ j++;
+ }
+
+ dev_dbg(pctldev->dev, "maps: function %s group %s num %d\n",
+ (*map)->data.mux.function, (*map)->data.mux.group, map_num);
+
+ return 0;
+}
+
+static void s32v_dt_free_map(struct pinctrl_dev *pctldev,
+ struct pinctrl_map *map, unsigned int num_maps)
+{
+ kfree(map);
+}
+
+static const struct pinctrl_ops s32v_pctrl_ops = {
+ .get_groups_count = s32v_get_groups_count,
+ .get_group_name = s32v_get_group_name,
+ .get_group_pins = s32v_get_group_pins,
+ .pin_dbg_show = s32v_pin_dbg_show,
+ .dt_node_to_map = s32v_dt_node_to_map,
+ .dt_free_map = s32v_dt_free_map,
+
+};
+
+static int s32v_pmx_set(struct pinctrl_dev *pctldev, unsigned int selector,
+ unsigned int group)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+ unsigned int npins, pin_id;
+ int i;
+ struct s32v_pin_group *grp;
+
+ /*
+ * Configure the mux mode for each pin in the group for a specific
+ * function.
+ */
+ grp = &info->groups[group];
+ npins = grp->npins;
+
+ dev_dbg(ipctl->dev, "enable function %s group %s\n",
+ info->functions[selector].name, grp->name);
+
+ for (i = 0; i < npins; i++) {
+ struct s32v_pin *pin = &grp->pins[i];
+
+ pin_id = pin->pin_id;
+
+ writel(pin->config, ipctl->base + S32V_PAD_CONFIG(pin_id));
+ dev_dbg(ipctl->dev, "write: offset 0x%x val %lu\n",
+ S32V_PAD_CONFIG(pin_id), pin->config);
+ }
+
+ return 0;
+}
+
+static int s32v_pmx_get_funcs_count(struct pinctrl_dev *pctldev)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ return info->nfunctions;
+}
+
+static const char *s32v_pmx_get_func_name(struct pinctrl_dev *pctldev,
+ unsigned int selector)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ return info->functions[selector].name;
+}
+
+static int s32v_pmx_get_groups(struct pinctrl_dev *pctldev,
+ unsigned int selector,
+ const char * const **groups,
+ unsigned int * const num_groups)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+
+ *groups = info->functions[selector].groups;
+ *num_groups = info->functions[selector].num_groups;
+
+ return 0;
+}
+
+static const struct pinmux_ops s32v_pmx_ops = {
+ .get_functions_count = s32v_pmx_get_funcs_count,
+ .get_function_name = s32v_pmx_get_func_name,
+ .get_function_groups = s32v_pmx_get_groups,
+ .set_mux = s32v_pmx_set,
+};
+
+static int s32v_pinconf_get(struct pinctrl_dev *pctldev,
+ unsigned int pin_id, unsigned long *config)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+
+ *config = readl(ipctl->base + S32V_PAD_CONFIG(pin_id));
+
+ return 0;
+}
+
+static int s32v_pinconf_set(struct pinctrl_dev *pctldev,
+ unsigned int pin_id, unsigned long *configs,
+ unsigned int num_configs)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ int i;
+
+ dev_dbg(ipctl->dev, "pinconf set pin %s\n",
+ pin_get_name(pctldev, pin_id));
+
+ for (i = 0; i < num_configs; i++) {
+ writel(configs[i], ipctl->base + S32V_PAD_CONFIG(pin_id));
+ dev_dbg(ipctl->dev, "write: offset 0x%x val 0x%lx\n",
+ S32V_PAD_CONFIG(pin_id), configs[i]);
+ } /* for each config */
+
+ return 0;
+}
+
+static void s32v_pinconf_dbg_show(struct pinctrl_dev *pctldev,
+ struct seq_file *s, unsigned int pin_id)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ unsigned long config;
+
+ config = readl(ipctl->base + S32V_PAD_CONFIG(pin_id));
+ seq_printf(s, "0x%lx", config);
+}
+
+static void s32v_pinconf_group_dbg_show(struct pinctrl_dev *pctldev,
+ struct seq_file *s, unsigned int group)
+{
+ struct s32v_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
+ const struct s32v_pinctrl_soc_info *info = ipctl->info;
+ struct s32v_pin_group *grp;
+ unsigned long config;
+ const char *name;
+ int i, ret;
+
+ if (group > info->ngroups)
+ return;
+
+ seq_puts(s, "\n");
+ grp = &info->groups[group];
+ for (i = 0; i < grp->npins; i++) {
+ struct s32v_pin *pin = &grp->pins[i];
+
+ name = pin_get_name(pctldev, pin->pin_id);
+ ret = s32v_pinconf_get(pctldev, pin->pin_id, &config);
+ if (ret)
+ return;
+ seq_printf(s, "%s: 0x%lx", name, config);
+ }
+}
+
+static const struct pinconf_ops s32v_pinconf_ops = {
+ .pin_config_get = s32v_pinconf_get,
+ .pin_config_set = s32v_pinconf_set,
+ .pin_config_dbg_show = s32v_pinconf_dbg_show,
+ .pin_config_group_dbg_show = s32v_pinconf_group_dbg_show,
+};
+
+static struct pinctrl_desc s32v_pinctrl_desc = {
+ .pctlops = &s32v_pctrl_ops,
+ .pmxops = &s32v_pmx_ops,
+ .confops = &s32v_pinconf_ops,
+ .owner = THIS_MODULE,
+};
+
+/*
+ * Each pin represented in fsl,pins consists of 5 u32 PIN_FUNC_ID and
+ * 1 u32 CONFIG, so 24 types in total for each pin.
+ */
+#define FSL_PIN_SIZE 24
+#define SHARE_FSL_PIN_SIZE 20
+
+static int s32v_pinctrl_parse_groups(struct device_node *np,
+ struct s32v_pin_group *grp,
+ struct s32v_pinctrl_soc_info *info,
+ u32 index)
+{
+ int size, i;
+ const __be32 *list;
+
+ dev_dbg(info->dev, "group(%d): %s\n", index, np->name);
+
+ /* Initialise group */
+ grp->name = np->name;
+
+ /*
+ * the binding format is fsl,pins = <PIN CONFIG>,
+ * do sanity check and calculate pins number
+ */
+ list = of_get_property(np, "fsl,pins", &size);
+ if (!list) {
+ dev_err(info->dev, "no fsl,pins property in node %s\n",
+ np->full_name);
+ return -EINVAL;
+ }
+
+ /* we do not check return since it's safe node passed down */
+ if (!size || size % S32V_PIN_SIZE) {
+ dev_err(info->dev, "Invalid fsl,pins property in node %s\n",
+ np->full_name);
+ return -EINVAL;
+ }
+
+ grp->npins = size / S32V_PIN_SIZE;
+ grp->pins = devm_kzalloc(info->dev,
+ grp->npins * sizeof(struct s32v_pin),
+ GFP_KERNEL);
+ grp->pin_ids = devm_kzalloc(info->dev,
+ grp->npins * sizeof(unsigned int),
+ GFP_KERNEL);
+ if (!grp->pins || !grp->pin_ids)
+ return -ENOMEM;
+
+ for (i = 0; i < grp->npins; i++) {
+ struct s32v_pin *pin = &grp->pins[i];
+
+ pin->pin_id = be32_to_cpu(*list++);
+ pin->config = be32_to_cpu(*list++);
+ grp->pin_ids[i] = grp->pins[i].pin_id;
+
+ dev_dbg(info->dev, "%s: 0x%08lx",
+ pin_get_name_from_info(info, pin->pin_id), pin->config);
+ }
+
+ return 0;
+}
+
+static int s32v_pinctrl_parse_functions(struct device_node *np,
+ struct s32v_pinctrl_soc_info *info,
+ u32 index)
+{
+ struct device_node *child;
+ struct s32v_pmx_func *func;
+ struct s32v_pin_group *grp;
+ static u32 grp_index;
+ u32 i = 0;
+
+ dev_dbg(info->dev, "parse function(%d): %s\n", index, np->name);
+
+ func = &info->functions[index];
+
+ /* Initialise function */
+ func->name = np->name;
+ func->num_groups = of_get_child_count(np);
+ if (func->num_groups == 0) {
+ dev_err(info->dev, "no groups defined in %s\n", np->full_name);
+ return -EINVAL;
+ }
+ func->groups = devm_kzalloc(info->dev,
+ func->num_groups * sizeof(char *),
+ GFP_KERNEL);
+
+ for_each_child_of_node(np, child) {
+ func->groups[i] = child->name;
+ grp = &info->groups[grp_index++];
+ s32v_pinctrl_parse_groups(child, grp, info, i++);
+ }
+
+ return 0;
+}
+
+static int s32v_pinctrl_probe_dt(struct platform_device *pdev,
+ struct s32v_pinctrl_soc_info *info)
+{
+ struct device_node *np = pdev->dev.of_node;
+ struct device_node *child;
+ u32 nfuncs = 0;
+ u32 i = 0;
+
+ if (!np)
+ return -ENODEV;
+
+ nfuncs = of_get_child_count(np);
+ if (nfuncs <= 0) {
+ dev_err(&pdev->dev, "no functions defined\n");
+ return -EINVAL;
+ }
+
+ info->nfunctions = nfuncs;
+ info->functions = devm_kzalloc(&pdev->dev,
+ nfuncs * sizeof(struct s32v_pmx_func),
+ GFP_KERNEL);
+ if (!info->functions)
+ return -ENOMEM;
+
+ info->ngroups = 0;
+ for_each_child_of_node(np, child)
+ info->ngroups += of_get_child_count(child);
+ info->groups = devm_kzalloc(&pdev->dev, info->ngroups *
+ sizeof(struct s32v_pin_group),
+ GFP_KERNEL);
+ if (!info->groups)
+ return -ENOMEM;
+
+ for_each_child_of_node(np, child)
+ s32v_pinctrl_parse_functions(child, info, i++);
+
+ return 0;
+}
+
+int s32v_pinctrl_probe(struct platform_device *pdev,
+ struct s32v_pinctrl_soc_info *info)
+{
+ struct s32v_pinctrl *ipctl;
+ struct resource *res;
+ int ret;
+
+ if (!info || !info->pins || !info->npins) {
+ dev_err(&pdev->dev, "wrong pinctrl info\n");
+ return -EINVAL;
+ }
+ info->dev = &pdev->dev;
+
+ /* Create state holders etc for this driver */
+ ipctl = devm_kzalloc(&pdev->dev, sizeof(*ipctl), GFP_KERNEL);
+ if (!ipctl)
+ return -ENOMEM;
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ ipctl->base = devm_ioremap_resource(&pdev->dev, res);
+
+ if (IS_ERR(ipctl->base))
+ return PTR_ERR(ipctl->base);
+
+ s32v_pinctrl_desc.name = dev_name(&pdev->dev);
+ s32v_pinctrl_desc.pins = info->pins;
+ s32v_pinctrl_desc.npins = info->npins;
+
+ ret = s32v_pinctrl_probe_dt(pdev, info);
+ if (ret) {
+ dev_err(&pdev->dev, "fail to probe dt properties\n");
+ return ret;
+ }
+
+ ipctl->info = info;
+ ipctl->dev = info->dev;
+ platform_set_drvdata(pdev, ipctl);
+ ipctl->pctl = pinctrl_register(&s32v_pinctrl_desc, &pdev->dev, ipctl);
+ if (!ipctl->pctl) {
+ dev_err(&pdev->dev, "could not register s32 pinctrl driver\n");
+ return -EINVAL;
+ }
+
+ dev_info(&pdev->dev, "initialized s32 pinctrl driver\n");
+
+ return 0;
+}
+
+int s32v_pinctrl_remove(struct platform_device *pdev)
+{
+ struct s32v_pinctrl *ipctl = platform_get_drvdata(pdev);
+
+ pinctrl_unregister(ipctl->pctl);
+
+ return 0;
+}
diff --git a/drivers/pinctrl/freescale/pinctrl-s32v.h b/drivers/pinctrl/freescale/pinctrl-s32v.h
new file mode 100644
index 000000000000..f231607bbc5b
--- /dev/null
+++ b/drivers/pinctrl/freescale/pinctrl-s32v.h
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * S32V pinmux core definitions
+ *
+ * Copyright (C) 2017 NXP
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012 Linaro Ltd.
+ *
+ * Based on pinctrl-imx.h, by Dong Aisheng <dong.aisheng@linaro.org>
+ */
+
+#ifndef __DRIVERS_PINCTRL_S32V_H
+#define __DRIVERS_PINCTRL_S32V_H
+
+struct platform_device;
+
+/**
+ * struct s32v_pin - describes a single S32V pin
+ * @pin_id: the pin_id of this pin
+ * @config: the config for this pin.
+ */
+struct s32v_pin {
+ unsigned int pin_id;
+ unsigned long config;
+};
+
+/**
+ * struct s32v_pin_group - describes an S32V pin group
+ * @name: the name of this specific pin group
+ * @npins: the number of pins in this group array, i.e. the number of
+ * elements in .pins so we can iterate over that array
+ * @pin_ids: array of pin_ids. pinctrl forces us to maintain such an array
+ * @pins: array of pins
+ */
+struct s32v_pin_group {
+ const char *name;
+ unsigned int npins;
+ unsigned int *pin_ids;
+ struct s32v_pin *pins;
+};
+
+/**
+ * struct s32v_pmx_func - describes S32V pinmux functions
+ * @name: the name of this specific function
+ * @groups: corresponding pin groups
+ * @num_groups: the number of groups
+ */
+struct s32v_pmx_func {
+ const char *name;
+ const char **groups;
+ unsigned int num_groups;
+};
+
+struct s32v_pinctrl_soc_info {
+ struct device *dev;
+ const struct pinctrl_pin_desc *pins;
+ unsigned int npins;
+ struct s32v_pin_group *groups;
+ unsigned int ngroups;
+ struct s32v_pmx_func *functions;
+ unsigned int nfunctions;
+ unsigned int flags;
+};
+
+#define S32V_PINCTRL_PIN(pin) PINCTRL_PIN(pin, #pin)
+#define S32V_PAD_CONFIG(idx) (0x240 + (idx) * 4)
+#define S32V_PIN_SIZE (8)
+
+int s32v_pinctrl_probe(struct platform_device *pdev,
+ struct s32v_pinctrl_soc_info *info);
+int s32v_pinctrl_remove(struct platform_device *pdev);
+#endif /* __DRIVERS_PINCTRL_S32V_H */
diff --git a/drivers/pinctrl/freescale/pinctrl-s32v234.c b/drivers/pinctrl/freescale/pinctrl-s32v234.c
new file mode 100644
index 000000000000..6c64f4cdcc8c
--- /dev/null
+++ b/drivers/pinctrl/freescale/pinctrl-s32v234.c
@@ -0,0 +1,251 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * s32v234 pinctrl driver based on imx pinmux and pinconf core
+ *
+ * Copyright 2015-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017, 2019 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 <dt-bindings/pinctrl/s32v234-pinctrl.h>
+
+#include "pinctrl-s32v.h"
+
+/* Pad names for the pinmux subsystem */
+static const struct pinctrl_pin_desc s32v234_pinctrl_pads[] = {
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PA15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PB15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PC15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PD15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PE15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PF15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PG15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PH15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PJ15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK6),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK7),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK8),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK9),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK10),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK11),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK12),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK13),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK14),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PK15),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL0),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL1),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL2),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL3),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL4),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL5),
+ S32V_PINCTRL_PIN(S32V234_MSCR_PL8),
+
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_CLK),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_CMD),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT0),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT1),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT2),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT3),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT4),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT5),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT6),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_DAT7),
+ S32V_PINCTRL_PIN(S32V234_IMCR_CAN_FD0_RXD),
+ S32V_PINCTRL_PIN(S32V234_IMCR_CAN_FD1_RXD),
+ S32V_PINCTRL_PIN(S32V234_IMCR_UART0_RXD),
+ S32V_PINCTRL_PIN(S32V234_IMCR_UART1_RXD),
+ S32V_PINCTRL_PIN(S32V234_IMCR_USDHC_WP),
+
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_ER),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_COL),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_CRS),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_DV),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_D0),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_D1),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_D2),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_D3),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_TX_CLK),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_RX_CLK),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_MDIO),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_TIMER0),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_TIMER1),
+ S32V_PINCTRL_PIN(S32V234_IMCR_Ethernet_TIMER2),
+};
+
+static struct s32v_pinctrl_soc_info s32v234_pinctrl_info = {
+ .pins = s32v234_pinctrl_pads,
+ .npins = ARRAY_SIZE(s32v234_pinctrl_pads),
+};
+
+static const struct of_device_id s32v234_pinctrl_of_match[] = {
+ { .compatible = "fsl,s32v234-siul2", },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, s32v234_pinctrl_of_match);
+
+static int s32v234_pinctrl_probe(struct platform_device *pdev)
+{
+ return s32v_pinctrl_probe(pdev, &s32v234_pinctrl_info);
+}
+
+static struct platform_driver s32v234_pinctrl_driver = {
+ .driver = {
+ .name = "s32v234-siul2",
+ .owner = THIS_MODULE,
+ .of_match_table = s32v234_pinctrl_of_match,
+ },
+ .probe = s32v234_pinctrl_probe,
+ .remove = s32v_pinctrl_remove,
+};
+
+module_platform_driver(s32v234_pinctrl_driver);
+
+MODULE_DESCRIPTION("Freescale S32V234 pinctrl driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/dt-bindings/pinctrl/pads-imx8qxp.h b/include/dt-bindings/pinctrl/pads-imx8qxp.h
index bfe9ab7c684c..e4abcd6f787f 100644
--- a/include/dt-bindings/pinctrl/pads-imx8qxp.h
+++ b/include/dt-bindings/pinctrl/pads-imx8qxp.h
@@ -747,6 +747,7 @@
#define IMX8QXP_QSPI0B_SS1_B_LSIO_QSPI1A_SS1_B IMX8QXP_QSPI0B_SS1_B 1
#define IMX8QXP_QSPI0B_SS1_B_LSIO_KPP0_ROW3 IMX8QXP_QSPI0B_SS1_B 2
#define IMX8QXP_QSPI0B_SS1_B_LSIO_GPIO3_IO24 IMX8QXP_QSPI0B_SS1_B 4
+#define IMX8QXP_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD IMX8QXP_COMP_CTL_GPIO_1V8_3V3_GPIORHB 0
/*!
* @name Fake Pad Mux Definitions
diff --git a/include/dt-bindings/pinctrl/s32v234-pinctrl.h b/include/dt-bindings/pinctrl/s32v234-pinctrl.h
new file mode 100644
index 000000000000..8736d556a38c
--- /dev/null
+++ b/include/dt-bindings/pinctrl/s32v234-pinctrl.h
@@ -0,0 +1,1173 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright 2015-2016 by Freescale Semiconductor
+ * Copyright 2016-2017, 2019 NXP
+ */
+
+#ifndef __DT_BINDINGS_S32V234_PINCTRL_H__
+#define __DT_BINDINGS_S32V234_PINCTRL_H__
+
+/*
+ * Use to set PAD control
+ */
+#define PAD_CTL_DCYLE_TRIM_OFS (22)
+#define PAD_CTL_DCYLE_TRIM_NONE (0 << PAD_CTL_DCYLE_TRIM_OFS)
+#define PAD_CTL_DCYLE_TRIM_LEFT (1 << PAD_CTL_DCYLE_TRIM_OFS)
+#define PAD_CTL_DCYLE_TRIM_RIGHT (2 << PAD_CTL_DCYLE_TRIM_OFS)
+
+#define PAD_CTL_OBE (1 << 21)
+#define PAD_CTL_ODE (1 << 20)
+#define PAD_CTL_IBE (1 << 19)
+#define PAD_CTL_HYS (1 << 18)
+#define PAD_CTL_INV (1 << 17)
+#define PAD_CTL_PKE (1 << 16)
+
+#define PAD_CTL_SRE_OFS (14)
+#define PAD_CTL_SRE_LOW_50HZ (0 << PAD_CTL_SRE_OFS)
+#define PAD_CTL_SRE_LOW_100MHZ (1 << PAD_CTL_SRE_OFS)
+/* The manual reports the same value for SRE = 01 and SRE = 10 */
+#define PAD_CTL_SRE_HIGH_100MHZ (2 << PAD_CTL_SRE_OFS)
+#define PAD_CTL_SRE_HIGH_200MHZ (3 << PAD_CTL_SRE_OFS)
+
+#define PAD_CTL_PUE (1 << 13)
+
+#define PAD_CTL_PUS_OFS (11)
+#define PAD_CTL_PUS_100K_DOWN (0 << PAD_CTL_PUS_OFS)
+#define PAD_CTL_PUS_50K_UP (1 << PAD_CTL_PUS_OFS)
+#define PAD_CTL_PUS_100K_UP (2 << PAD_CTL_PUS_OFS)
+#define PAD_CTL_PUS_33K_UP (3 << PAD_CTL_PUS_OFS)
+#define PAD_CTL_PUS_MASK (3 << PAD_CTL_PUS_OFS)
+
+#define PAD_CTL_DSE_OFS (8)
+#define PAD_CTL_DSE_OUT_DISABLE (0 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_240 (1 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_120 (2 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_80 (3 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_60 (4 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_48 (5 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_40 (6 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_34 (7 << PAD_CTL_DSE_OFS)
+#define PAD_CTL_DSE_MASK (7 << PAD_CTL_DSE_OFS)
+
+#define PAD_CTL_CRPOINT_TRIM (3 << 6)
+
+#define PAD_CTL_SMC (1 << 5)
+
+#define PAD_CTL_MUX_MODE_ALT0 (0)
+#define PAD_CTL_MUX_MODE_ALT1 (1)
+#define PAD_CTL_MUX_MODE_ALT2 (2)
+#define PAD_CTL_MUX_MODE_ALT3 (3)
+#define PAD_CTL_MUX_MODE_ALT4 (4)
+#define PAD_CTL_MUX_MODE_ALT5 (5)
+#define PAD_CTL_MUX_MODE_ALT6 (6)
+#define PAD_CTL_MUX_MODE_ALT7 (7)
+#define PAD_CTL_MUX_MODE_MASK (0xF)
+
+/* UART configuration */
+#define PAD_CTL_UART_TX (PAD_CTL_OBE | PAD_CTL_PUS_100K_UP |\
+ PAD_CTL_DSE_60 | PAD_CTL_SRE_LOW_100MHZ |\
+ PAD_CTL_MUX_MODE_ALT1)
+#define PAD_CTL_UART_RX_MSCR (PAD_CTL_PUE | PAD_CTL_IBE |\
+ PAD_CTL_DCYLE_TRIM_RIGHT)
+#define PAD_CTL_UART_RX_IMCR (PAD_CTL_MUX_MODE_ALT2)
+
+/* CAN0 configuration */
+#define PAD_CTL_CAN_FD0_TX (PAD_CTL_OBE | PAD_CTL_PUS_50K_UP |\
+ PAD_CTL_PUE | PAD_CTL_DSE_34 |\
+ PAD_CTL_MUX_MODE_ALT1)
+#define PAD_CTL_CAN_FD0_RX_MSCR (PAD_CTL_PUE | PAD_CTL_IBE | PAD_CTL_PUS_50K_UP)
+#define PAD_CTL_CAN_FD0_RX_IMCR (PAD_CTL_MUX_MODE_ALT2)
+
+/* CAN1 configuration */
+#define PAD_CTL_CAN_FD1_TX (PAD_CTL_OBE | PAD_CTL_PUS_50K_UP |\
+ PAD_CTL_PUE | PAD_CTL_DSE_34 |\
+ PAD_CTL_MUX_MODE_ALT1)
+#define PAD_CTL_CAN_FD1_RX_MSCR (PAD_CTL_PUE | PAD_CTL_IBE | PAD_CTL_PUS_50K_UP)
+#define PAD_CTL_CAN_FD1_RX_IMCR (PAD_CTL_MUX_MODE_ALT3)
+
+/* USDHC configuration */
+#define PAD_CTL_USDHC_BASE (PAD_CTL_SRE_HIGH_200MHZ | PAD_CTL_OBE | \
+ PAD_CTL_DSE_34 | PAD_CTL_PKE | \
+ PAD_CTL_IBE | PAD_CTL_PUS_100K_UP | PAD_CTL_PUE)
+#define PAD_CTL_USDHC_CMD (PAD_CTL_USDHC_BASE | PAD_CTL_MUX_MODE_ALT1)
+#define PAD_CTL_USDHC_CLK (PAD_CTL_USDHC_BASE | PAD_CTL_MUX_MODE_ALT2)
+#define PAD_CTL_USDHC_DAT0_3 (PAD_CTL_USDHC_BASE | PAD_CTL_MUX_MODE_ALT2)
+#define PAD_CTL_USDHC_DAT4_7 (PAD_CTL_USDHC_BASE | PAD_CTL_MUX_MODE_ALT3)
+
+/* QSPI configuration */
+#define PAD_CTL_QSPI_BASE (PAD_CTL_SRE_HIGH_200MHZ | PAD_CTL_OBE | \
+ PAD_CTL_DSE_34 | PAD_CTL_IBE)
+#define PAD_CTL_QSPI_CLK_BASE (PAD_CTL_SRE_HIGH_200MHZ | PAD_CTL_DSE_34 | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_OBE)
+#define PAD_CTL_QSPI_CK2_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_A_SCK_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_B_SCK_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_A_CS0_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_B_CS0_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_A_CS1_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_B_CS1_MUX PAD_CTL_MUX_MODE_ALT1
+#define PAD_CTL_QSPI_A_DQS (PAD_CTL_SRE_HIGH_200MHZ | PAD_CTL_IBE | \
+ PAD_CTL_PUS_100K_DOWN | PAD_CTL_PUE | \
+ PAD_CTL_PKE)
+#define PAD_CTL_QSPI_A_DATA0_3 (PAD_CTL_QSPI_BASE | PAD_CTL_MUX_MODE_ALT1)
+#define PAD_CTL_QSPI_A_DATA4_7 (PAD_CTL_QSPI_BASE | PAD_CTL_MUX_MODE_ALT2)
+#define PAD_CTL_QSPI_B_DATA0_3 (PAD_CTL_QSPI_BASE | PAD_CTL_MUX_MODE_ALT1)
+
+/* EIRQ configuration */
+#define PAD_CTL_EIRQ PAD_CTL_MUX_MODE_ALT2
+
+/* I2C0 - Serial Data Input PA15 */
+#define PAD_CTL_I2C0_MSCR_SDA_PA15 (PAD_CTL_MUX_MODE_ALT1 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | \
+ PAD_CTL_DSE_34)
+#define PAD_CTL_I2C0_IMCR_SDA_PA15 (PAD_CTL_MUX_MODE_ALT2)
+
+/* I2C0 - Serial Clock Input PB0 */
+#define PAD_CTL_I2C0_MSCR_SCLK_PB0 (PAD_CTL_MUX_MODE_ALT1 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | \
+ PAD_CTL_DSE_34)
+#define PAD_CTL_I2C0_IMCR_SCLK_PB0 (PAD_CTL_MUX_MODE_ALT2)
+
+/* I2C0 - Serial Data Input PG3 */
+#define PAD_CTL_I2C0_MSCR_SDA_PG3 (PAD_CTL_MUX_MODE_ALT2 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | \
+ PAD_CTL_DSE_34)
+#define PAD_CTL_I2C0_IMCR_SDA_PG3 (PAD_CTL_MUX_MODE_ALT3)
+
+/* I2C0 - Serial Clock Input PG4 */
+#define PAD_CTL_I2C0_MSCR_SCLK_PG4 (PAD_CTL_MUX_MODE_ALT2 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | \
+ PAD_CTL_DSE_34)
+#define PAD_CTL_I2C0_IMCR_SCLK_PG4 (PAD_CTL_MUX_MODE_ALT3)
+
+/* I2C1 - Serial Data Input */
+#define PAD_CTL_I2C1_MSCR_SDA (PAD_CTL_MUX_MODE_ALT2 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | PAD_CTL_DSE_34)
+#define PAD_CTL_I2C1_IMCR_SDA (PAD_CTL_MUX_MODE_ALT3)
+
+/* I2C1 - Serial Clock Input */
+#define PAD_CTL_I2C1_MSCR_SCLK (PAD_CTL_MUX_MODE_ALT2 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | PAD_CTL_DSE_34)
+#define PAD_CTL_I2C1_IMCR_SCLK (PAD_CTL_MUX_MODE_ALT3)
+
+/* I2C2 - Serial Data Input */
+#define PAD_CTL_I2C2_MSCR_SDA (PAD_CTL_MUX_MODE_ALT1 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | PAD_CTL_DSE_34)
+#define PAD_CTL_I2C2_IMCR_SDA (PAD_CTL_MUX_MODE_ALT2)
+
+/* I2C2 - Serial Clock Input */
+#define PAD_CTL_I2C2_MSCR_SCLK (PAD_CTL_MUX_MODE_ALT1 | PAD_CTL_OBE | \
+ PAD_CTL_IBE | PAD_CTL_ODE | PAD_CTL_DSE_34)
+#define PAD_CTL_I2C2_IMCR_SCLK (PAD_CTL_MUX_MODE_ALT2)
+
+/* ENET CFG1 = 0x203701 */
+#define PAD_CTL_ENET_CFG1 (PAD_CTL_DSE_34 | PAD_CTL_PUS_100K_UP | PAD_CTL_PUE | \
+ PAD_CTL_OBE | PAD_CTL_MUX_MODE_ALT1)
+
+/* ENET CFG2 = 0x20c701 */
+#define PAD_CTL_ENET_CFG2 (PAD_CTL_DSE_34 | PAD_CTL_SRE_HIGH_200MHZ | \
+ PAD_CTL_OBE | PAD_CTL_MUX_MODE_ALT1)
+
+/* ENET CFG3 = 0x28c701 */
+#define PAD_CTL_ENET_CFG3 (PAD_CTL_DSE_34 | PAD_CTL_SRE_HIGH_200MHZ | \
+ PAD_CTL_OBE | PAD_CTL_IBE | PAD_CTL_MUX_MODE_ALT1)
+
+/* ENET CFG7 = 0x8c700 */
+#define PAD_CTL_ENET_CFG4 (PAD_CTL_DSE_34 | PAD_CTL_SRE_HIGH_200MHZ | PAD_CTL_IBE)
+
+/* DCU CFG = 0x20C101 */
+#define PAD_CTL_DCU_CFG (PAD_CTL_DSE_80 | PAD_CTL_SRE_HIGH_200MHZ | \
+ PAD_CTL_OBE | PAD_CTL_IBE | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+#define PAD_CTL_DCU_CLK_CFG_DSE_DISABLE (PAD_CTL_SRE_HIGH_200MHZ | \
+ PAD_CTL_OBE | PAD_CTL_IBE | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+/* VIU IMCR = 0x00000002 */
+#define PAD_CTL_VIU_CFG (PAD_CTL_MUX_MODE_ALT2)
+
+/* VIU MSCR = 0x00000002 */
+#define PAD_CTL_VIU_IBE (PAD_CTL_IBE)
+
+/* SPI 0-3 */
+#define PAD_CTL_SPI_MSCR_CSx (PAD_CTL_OBE | PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_DSE_34 | PAD_CTL_PUE)
+
+#define PAD_CTL_SPI_MSCR_SCK (PAD_CTL_OBE | PAD_CTL_DSE_34 | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+#define PAD_CTL_SPI_MSCR_SOUT (PAD_CTL_OBE | PAD_CTL_DSE_34 | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+#define PAD_CTL_SPI_MSCR_SIN (PAD_CTL_PUE | PAD_CTL_IBE | \
+ PAD_CTL_PUS_50K_UP)
+
+#define PAD_CTL_SPI_IMCR_SIN (PAD_CTL_MUX_MODE_ALT2)
+
+/* MSCR register numbers associated to port or function */
+#define S32V234_MSCR_PA0 0
+#define S32V234_MSCR_PA1 1
+#define S32V234_MSCR_PA2 2
+#define S32V234_MSCR_PA3 3
+#define S32V234_MSCR_PA4 4
+#define S32V234_MSCR_PA5 5
+#define S32V234_MSCR_PA6 6
+#define S32V234_MSCR_PA7 7
+#define S32V234_MSCR_PA8 8
+#define S32V234_MSCR_PA9 9
+#define S32V234_MSCR_PA10 10
+#define S32V234_MSCR_PA11 11
+#define S32V234_MSCR_PA12 12
+#define S32V234_MSCR_PA13 13
+#define S32V234_MSCR_PA14 14
+#define S32V234_MSCR_PA15 15
+#define S32V234_MSCR_PB0 16
+#define S32V234_MSCR_PB1 17
+#define S32V234_MSCR_PB2 18
+#define S32V234_MSCR_PB3 19
+#define S32V234_MSCR_PB4 20
+#define S32V234_MSCR_PB5 21
+#define S32V234_MSCR_PB6 22
+#define S32V234_MSCR_PB7 23
+#define S32V234_MSCR_PB8 24
+#define S32V234_MSCR_PB9 25
+#define S32V234_MSCR_PB10 26
+#define S32V234_MSCR_PB11 27
+#define S32V234_MSCR_PB12 28
+#define S32V234_MSCR_PB13 29
+#define S32V234_MSCR_PB14 30
+#define S32V234_MSCR_PB15 31
+#define S32V234_MSCR_PC0 32
+#define S32V234_MSCR_PC1 33
+#define S32V234_MSCR_PC2 34
+#define S32V234_MSCR_PC3 35
+#define S32V234_MSCR_PC4 36
+#define S32V234_MSCR_PC5 37
+#define S32V234_MSCR_PC6 38
+#define S32V234_MSCR_PC7 39
+#define S32V234_MSCR_PC8 40
+#define S32V234_MSCR_PC9 41
+#define S32V234_MSCR_PC10 42
+#define S32V234_MSCR_PC11 43
+#define S32V234_MSCR_PC12 44
+#define S32V234_MSCR_PC13 45
+#define S32V234_MSCR_PC14 46
+#define S32V234_MSCR_PC15 47
+#define S32V234_MSCR_PD0 48
+#define S32V234_MSCR_PD1 49
+#define S32V234_MSCR_PD2 50
+#define S32V234_MSCR_PD3 51
+#define S32V234_MSCR_PD4 52
+#define S32V234_MSCR_PD5 53
+#define S32V234_MSCR_PD6 54
+#define S32V234_MSCR_PD7 55
+#define S32V234_MSCR_PD8 56
+#define S32V234_MSCR_PD9 57
+#define S32V234_MSCR_PD10 58
+#define S32V234_MSCR_PD11 59
+#define S32V234_MSCR_PD12 60
+#define S32V234_MSCR_PD13 61
+#define S32V234_MSCR_PD14 62
+#define S32V234_MSCR_PD15 63
+#define S32V234_MSCR_PE0 64
+#define S32V234_MSCR_PE1 65
+#define S32V234_MSCR_PE2 66
+#define S32V234_MSCR_PE3 67
+#define S32V234_MSCR_PE4 68
+#define S32V234_MSCR_PE5 69
+#define S32V234_MSCR_PE6 70
+#define S32V234_MSCR_PE7 71
+#define S32V234_MSCR_PE8 72
+#define S32V234_MSCR_PE9 73
+#define S32V234_MSCR_PE10 74
+#define S32V234_MSCR_PE11 75
+#define S32V234_MSCR_PE12 76
+#define S32V234_MSCR_PE13 77
+#define S32V234_MSCR_PE14 78
+#define S32V234_MSCR_PE15 79
+#define S32V234_MSCR_PF0 80
+#define S32V234_MSCR_PF1 81
+#define S32V234_MSCR_PF2 82
+#define S32V234_MSCR_PF3 83
+#define S32V234_MSCR_PF4 84
+#define S32V234_MSCR_PF5 85
+#define S32V234_MSCR_PF6 86
+#define S32V234_MSCR_PF7 87
+#define S32V234_MSCR_PF8 88
+#define S32V234_MSCR_PF9 89
+#define S32V234_MSCR_PF10 90
+#define S32V234_MSCR_PF11 91
+#define S32V234_MSCR_PF12 92
+#define S32V234_MSCR_PF13 93
+#define S32V234_MSCR_PF14 94
+#define S32V234_MSCR_PF15 95
+#define S32V234_MSCR_PG0 96
+#define S32V234_MSCR_PG1 97
+#define S32V234_MSCR_PG2 98
+#define S32V234_MSCR_PG3 99
+#define S32V234_MSCR_PG4 100
+#define S32V234_MSCR_PG5 101
+#define S32V234_MSCR_PG6 102
+#define S32V234_MSCR_PG7 103
+#define S32V234_MSCR_PG8 104
+#define S32V234_MSCR_PG9 105
+#define S32V234_MSCR_PG10 106
+#define S32V234_MSCR_PG11 107
+#define S32V234_MSCR_PG12 108
+#define S32V234_MSCR_PG13 109
+#define S32V234_MSCR_PG14 110
+#define S32V234_MSCR_PG15 111
+#define S32V234_MSCR_PH0 112
+#define S32V234_MSCR_PH1 113
+#define S32V234_MSCR_PH2 114
+#define S32V234_MSCR_PH3 115
+#define S32V234_MSCR_PH4 116
+#define S32V234_MSCR_PH5 117
+#define S32V234_MSCR_PH6 118
+#define S32V234_MSCR_PH7 119
+#define S32V234_MSCR_PH8 120
+#define S32V234_MSCR_PH9 121
+#define S32V234_MSCR_PH10 122
+#define S32V234_MSCR_PH11 123
+#define S32V234_MSCR_PH12 124
+#define S32V234_MSCR_PH13 125
+#define S32V234_MSCR_PH14 126
+#define S32V234_MSCR_PH15 127
+#define S32V234_MSCR_PJ0 128
+#define S32V234_MSCR_PJ1 129
+#define S32V234_MSCR_PJ2 130
+#define S32V234_MSCR_PJ3 131
+#define S32V234_MSCR_PJ4 132
+#define S32V234_MSCR_PJ5 133
+#define S32V234_MSCR_PJ6 134
+#define S32V234_MSCR_PJ7 135
+#define S32V234_MSCR_PJ8 136
+#define S32V234_MSCR_PJ9 137
+#define S32V234_MSCR_PJ10 138
+#define S32V234_MSCR_PJ11 139
+#define S32V234_MSCR_PJ12 140
+#define S32V234_MSCR_PJ13 141
+#define S32V234_MSCR_PJ14 142
+#define S32V234_MSCR_PJ15 143
+#define S32V234_MSCR_PK0 144
+#define S32V234_MSCR_PK1 145
+#define S32V234_MSCR_PK2 146
+#define S32V234_MSCR_PK3 147
+#define S32V234_MSCR_PK4 148
+#define S32V234_MSCR_PK5 149
+#define S32V234_MSCR_PK6 150
+#define S32V234_MSCR_PK7 151
+#define S32V234_MSCR_PK8 152
+#define S32V234_MSCR_PK9 153
+#define S32V234_MSCR_PK10 154
+#define S32V234_MSCR_PK11 155
+#define S32V234_MSCR_PK12 156
+#define S32V234_MSCR_PK13 157
+#define S32V234_MSCR_PK14 158
+#define S32V234_MSCR_PK15 159
+#define S32V234_MSCR_PL0 160
+#define S32V234_MSCR_PL1 161
+#define S32V234_MSCR_PL2 162
+#define S32V234_MSCR_PL3 163
+#define S32V234_MSCR_PL4 164
+#define S32V234_MSCR_PL5 165
+#define S32V234_MSCR_PL8 166
+
+#define S32V234_IMCR_FlexTimer0_CH0 512
+#define S32V234_IMCR_FlexTimer0_CH1 513
+#define S32V234_IMCR_FlexTimer0_CH2 514
+#define S32V234_IMCR_FlexTimer0_CH3 515
+#define S32V234_IMCR_FlexTimer0_CH4 516
+#define S32V234_IMCR_FlexTimer0_CH5 517
+#define S32V234_IMCR_FlexTimer0_EXTCLK 520
+#define S32V234_IMCR_FlexTimer1_CH0 521
+#define S32V234_IMCR_FlexTimer1_CH1 522
+#define S32V234_IMCR_FlexTimer1_CH2 523
+#define S32V234_IMCR_FlexTimer1_CH3 524
+#define S32V234_IMCR_FlexTimer1_CH4 525
+#define S32V234_IMCR_FlexTimer1_CH5 526
+#define S32V234_IMCR_FlexTimer1_EXTCLK 529
+#define S32V234_IMCR_LFAST_REF_CLK 550
+#define S32V234_IMCR_BOOT_BOOTMOD0 570
+#define S32V234_IMCR_BOOT_BOOTMOD1 571
+#define S32V234_IMCR_SIUL_EIRQ0 590
+#define S32V234_IMCR_SIUL_EIRQ1 591
+#define S32V234_IMCR_SIUL_EIRQ2 592
+#define S32V234_IMCR_SIUL_EIRQ3 593
+#define S32V234_IMCR_SIUL_EIRQ4 594
+#define S32V234_IMCR_SIUL_EIRQ5 595
+#define S32V234_IMCR_SIUL_EIRQ6 596
+#define S32V234_IMCR_SIUL_EIRQ7 597
+#define S32V234_IMCR_SIUL_EIRQ8 598
+#define S32V234_IMCR_SIUL_EIRQ9 599
+#define S32V234_IMCR_SIUL_EIRQ10 600
+#define S32V234_IMCR_SIUL_EIRQ11 601
+#define S32V234_IMCR_SIUL_EIRQ12 602
+#define S32V234_IMCR_SIUL_EIRQ13 603
+#define S32V234_IMCR_SIUL_EIRQ14 604
+#define S32V234_IMCR_SIUL_EIRQ15 605
+#define S32V234_IMCR_SIUL_EIRQ16 606
+#define S32V234_IMCR_SIUL_EIRQ17 607
+#define S32V234_IMCR_SIUL_EIRQ18 608
+#define S32V234_IMCR_SIUL_EIRQ19 609
+#define S32V234_IMCR_SIUL_EIRQ20 610
+#define S32V234_IMCR_SIUL_EIRQ21 611
+#define S32V234_IMCR_SIUL_EIRQ22 612
+#define S32V234_IMCR_SIUL_EIRQ23 613
+#define S32V234_IMCR_SIUL_EIRQ24 614
+#define S32V234_IMCR_SIUL_EIRQ25 615
+#define S32V234_IMCR_SIUL_EIRQ26 616
+#define S32V234_IMCR_SIUL_EIRQ27 617
+#define S32V234_IMCR_SIUL_EIRQ28 618
+#define S32V234_IMCR_SIUL_EIRQ29 619
+#define S32V234_IMCR_SIUL_EIRQ30 620
+#define S32V234_IMCR_SIUL_EIRQ31 621
+#define S32V234_IMCR_VIU0_HSYNC 622
+#define S32V234_IMCR_VIU0_VSYNC 623
+#define S32V234_IMCR_VIU0_PCLK 624
+#define S32V234_IMCR_VIU0_D4 629
+#define S32V234_IMCR_VIU0_D5 630
+#define S32V234_IMCR_VIU0_D6 631
+#define S32V234_IMCR_VIU0_D7 632
+#define S32V234_IMCR_VIU0_D8 633
+#define S32V234_IMCR_VIU0_D9 634
+#define S32V234_IMCR_VIU0_D10 635
+#define S32V234_IMCR_VIU0_D11 636
+#define S32V234_IMCR_VIU0_D12 637
+#define S32V234_IMCR_VIU0_D13 638
+#define S32V234_IMCR_VIU0_D14 639
+#define S32V234_IMCR_VIU0_D15 640
+#define S32V234_IMCR_VIU0_D16 641
+#define S32V234_IMCR_VIU0_D17 642
+#define S32V234_IMCR_VIU0_D18 643
+#define S32V234_IMCR_VIU0_D19 644
+#define S32V234_IMCR_VIU0_D20 645
+#define S32V234_IMCR_VIU0_D21 646
+#define S32V234_IMCR_VIU0_D22 647
+#define S32V234_IMCR_VIU0_D23 648
+#define S32V234_IMCR_VIU1_HSYNC 657
+#define S32V234_IMCR_VIU1_VSYNC 658
+#define S32V234_IMCR_VIU1_PCLK 659
+#define S32V234_IMCR_VIU1_D8 668
+#define S32V234_IMCR_VIU1_D9 669
+#define S32V234_IMCR_VIU1_D10 670
+#define S32V234_IMCR_VIU1_D11 671
+#define S32V234_IMCR_VIU1_D12 672
+#define S32V234_IMCR_VIU1_D13 673
+#define S32V234_IMCR_VIU1_D14 674
+#define S32V234_IMCR_VIU1_D15 675
+#define S32V234_IMCR_VIU1_D16 676
+#define S32V234_IMCR_VIU1_D17 677
+#define S32V234_IMCR_VIU1_D18 678
+#define S32V234_IMCR_VIU1_D19 679
+#define S32V234_IMCR_VIU1_D20 680
+#define S32V234_IMCR_VIU1_D21 681
+#define S32V234_IMCR_VIU1_D22 682
+#define S32V234_IMCR_VIU1_D23 683
+#define S32V234_IMCR_CAN_FD0_RXD 700
+#define S32V234_IMCR_CAN_FD1_RXD 701
+#define S32V234_IMCR_UART0_RXD 712
+#define S32V234_IMCR_UART1_RXD 714
+#define S32V234_IMCR_IIC0_CLK 780
+#define S32V234_IMCR_IIC0_DATA 781
+#define S32V234_IMCR_IIC1_CLK 782
+#define S32V234_IMCR_IIC1_DATA 783
+#define S32V234_IMCR_IIC2_CLK 784
+#define S32V234_IMCR_IIC2_DATA 785
+#define S32V234_IMCR_SPI0_SIN 800
+#define S32V234_IMCR_SPI0_SCK 801
+#define S32V234_IMCR_SPI0_CS0 802
+#define S32V234_IMCR_SPI1_SIN 803
+#define S32V234_IMCR_SPI1_SCK 804
+#define S32V234_IMCR_SPI1_CS0 805
+#define S32V234_IMCR_SPI2_SIN 806
+#define S32V234_IMCR_SPI2_SCK 807
+#define S32V234_IMCR_SPI2_CS0 808
+#define S32V234_IMCR_SPI3_SIN 809
+#define S32V234_IMCR_SPI3_SCK 810
+#define S32V234_IMCR_SPI3_CS0 811
+#define S32V234_IMCR_QSPI_A_DQS 819
+#define S32V234_IMCR_QSPI_A_DATA0 820
+#define S32V234_IMCR_QSPI_A_DATA1 821
+#define S32V234_IMCR_QSPI_A_DATA2 822
+#define S32V234_IMCR_QSPI_A_DATA3 823
+#define S32V234_IMCR_QSPI_A_DATA4 824
+#define S32V234_IMCR_QSPI_A_DATA5 825
+#define S32V234_IMCR_QSPI_A_DATA6 826
+#define S32V234_IMCR_QSPI_A_DATA7 827
+#define S32V234_IMCR_QSPI_B_DQS 828
+#define S32V234_IMCR_QSPI_B_DATA0 829
+#define S32V234_IMCR_QSPI_B_DATA1 830
+#define S32V234_IMCR_QSPI_B_DATA2 831
+#define S32V234_IMCR_QSPI_B_DATA3 832
+#define S32V234_IMCR_USDHC_WP 900
+#define S32V234_IMCR_USDHC_CMD 901
+#define S32V234_IMCR_USDHC_CLK 902
+#define S32V234_IMCR_USDHC_DAT0 903
+#define S32V234_IMCR_USDHC_DAT1 904
+#define S32V234_IMCR_USDHC_DAT2 905
+#define S32V234_IMCR_USDHC_DAT3 906
+#define S32V234_IMCR_USDHC_DAT4 907
+#define S32V234_IMCR_USDHC_DAT5 908
+#define S32V234_IMCR_USDHC_DAT6 909
+#define S32V234_IMCR_USDHC_DAT7 910
+#define S32V234_IMCR_Ethernet_RX_ER 970
+#define S32V234_IMCR_Ethernet_COL 971
+#define S32V234_IMCR_Ethernet_CRS 972
+#define S32V234_IMCR_Ethernet_RX_DV 973
+#define S32V234_IMCR_Ethernet_RX_D0 974
+#define S32V234_IMCR_Ethernet_RX_D1 975
+#define S32V234_IMCR_Ethernet_RX_D2 976
+#define S32V234_IMCR_Ethernet_RX_D3 977
+#define S32V234_IMCR_Ethernet_TX_CLK 978
+#define S32V234_IMCR_Ethernet_RX_CLK 979
+#define S32V234_IMCR_Ethernet_MDIO 981
+#define S32V234_IMCR_Ethernet_TIMER0 982
+#define S32V234_IMCR_Ethernet_TIMER1 983
+#define S32V234_IMCR_Ethernet_TIMER2 984
+#define S32V234_IMCR_FlexRay_CA_RX 1012
+#define S32V234_IMCR_FlexRay_CB_RX 1013
+#define S32V234_IMCR_SSE_IN0 1018
+#define S32V234_IMCR_SSE_IN1 1019
+#define S32V234_IMCR_SSE_IN2 1020
+#define S32V234_IMCR_SSE_IN3 1021
+
+/* Format of pins: MSCR_IDX PAD_CONFIGURATION If you know the IMCR_IDX
+ * instead of MSCR_IDX, add 512 to it as the Reference Manual states.
+ */
+
+/* UART configuration */
+#define S32V234_PAD_PA12__UART0_TXD S32V234_MSCR_PA12 PAD_CTL_UART_TX
+#define S32V234_PAD_PA11__UART0_RXD_OUT S32V234_MSCR_PA11 PAD_CTL_UART_RX_MSCR
+#define S32V234_PAD_PA11__UART0_RXD_IN S32V234_IMCR_UART0_RXD \
+ PAD_CTL_UART_RX_IMCR
+
+#define S32V234_PAD_PA14__UART1_TXD S32V234_MSCR_PA14 PAD_CTL_UART_TX
+#define S32V234_PAD_PA13__UART1_RXD_OUT S32V234_MSCR_PA13 PAD_CTL_UART_RX_MSCR
+#define S32V234_PAD_PA13__UART1_RXD_IN S32V234_IMCR_UART1_RXD \
+ PAD_CTL_UART_RX_IMCR
+
+/* CAN0 configuration */
+#define S32V234_PAD_PA2__CAN_FD0_TXD S32V234_MSCR_PA2 PAD_CTL_CAN_FD0_TX
+#define S32V234_PAD_PA3__CAN_FD0_RXD_OUT S32V234_MSCR_PA3 \
+ PAD_CTL_CAN_FD0_RX_MSCR
+#define S32V234_PAD_PA3__CAN_FD0_RXD_IN S32V234_IMCR_CAN_FD0_RXD \
+ PAD_CTL_CAN_FD0_RX_IMCR
+
+/* CAN1 configuration */
+#define S32V234_PAD_PA4__CAN_FD1_TXD S32V234_MSCR_PA4 PAD_CTL_CAN_FD1_TX
+#define S32V234_PAD_PA5__CAN_FD1_RXD_OUT S32V234_MSCR_PA5 \
+ PAD_CTL_CAN_FD1_RX_MSCR
+#define S32V234_PAD_PA5__CAN_FD1_RXD_IN S32V234_IMCR_CAN_FD1_RXD \
+ PAD_CTL_CAN_FD1_RX_IMCR
+
+/* uSDHC configuration */
+#define S32V234_PAD_PK6__USDHC_CLK_OUT S32V234_MSCR_PK6 PAD_CTL_USDHC_CLK
+#define S32V234_PAD_PK6__USDHC_CLK_IN S32V234_IMCR_USDHC_CLK \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK7__USDHC_CMD_OUT S32V234_MSCR_PK7 PAD_CTL_USDHC_CMD
+#define S32V234_PAD_PK7__USDHC_CMD_IN S32V234_IMCR_USDHC_CMD \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK8__USDHC_DAT0_OUT S32V234_MSCR_PK8 PAD_CTL_USDHC_DAT0_3
+#define S32V234_PAD_PK8__USDHC_DAT0_IN S32V234_IMCR_USDHC_DAT0 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK9__USDHC_DAT1_OUT S32V234_MSCR_PK9 PAD_CTL_USDHC_DAT0_3
+#define S32V234_PAD_PK9__USDHC_DAT1_IN S32V234_IMCR_USDHC_DAT1 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK10__USDHC_DAT2_OUT S32V234_MSCR_PK10 PAD_CTL_USDHC_DAT0_3
+#define S32V234_PAD_PK10__USDHC_DAT2_IN S32V234_IMCR_USDHC_DAT2 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK11__USDHC_DAT3_OUT S32V234_MSCR_PK11 PAD_CTL_USDHC_DAT0_3
+#define S32V234_PAD_PK11__USDHC_DAT3_IN S32V234_IMCR_USDHC_DAT3 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PK15__USDHC_DAT4_OUT S32V234_MSCR_PK15 PAD_CTL_USDHC_DAT4_7
+#define S32V234_PAD_PK15__USDHC_DAT4_IN S32V234_IMCR_USDHC_DAT4 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PL0__USDHC_DAT5_OUT S32V234_MSCR_PL0 PAD_CTL_USDHC_DAT4_7
+#define S32V234_PAD_PL0__USDHC_DAT5_IN S32V234_IMCR_USDHC_DAT5 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PL1__USDHC_DAT6_OUT S32V234_MSCR_PL1 PAD_CTL_USDHC_DAT4_7
+#define S32V234_PAD_PL1__USDHC_DAT6_IN S32V234_IMCR_USDHC_DAT6 \
+ PAD_CTL_MUX_MODE_ALT3
+
+#define S32V234_PAD_PL2__USDHC_DAT7_OUT S32V234_MSCR_PL2 PAD_CTL_USDHC_DAT4_7
+#define S32V234_PAD_PL2__USDHC_DAT7_IN S32V234_IMCR_USDHC_DAT7 \
+ PAD_CTL_MUX_MODE_ALT3
+
+/* QSPI configuration */
+#define S32V234_PAD_PK7__QSPI_A_DQS S32V234_IMCR_QSPI_A_DQS \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK14__QSPI_B_DQS S32V234_IMCR_QSPI_B_DQS \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PK8__QSPI_A_DATA0_IN S32V234_IMCR_QSPI_A_DATA0 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK8__QSPI_A_DATA0_OUT S32V234_MSCR_PK8 \
+ PAD_CTL_QSPI_A_DATA0_3
+
+#define S32V234_PAD_PK9__QSPI_A_DATA1_IN S32V234_IMCR_QSPI_A_DATA1 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK9__QSPI_A_DATA1_OUT S32V234_MSCR_PK9 \
+ PAD_CTL_QSPI_A_DATA0_3
+
+#define S32V234_PAD_PK10__QSPI_A_DATA2_IN S32V234_IMCR_QSPI_A_DATA2 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK10__QSPI_A_DATA2_OUT S32V234_MSCR_PK10 \
+ PAD_CTL_QSPI_A_DATA0_3
+
+#define S32V234_PAD_PK11__QSPI_A_DATA3_IN S32V234_IMCR_QSPI_A_DATA3 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK11__QSPI_A_DATA3_OUT S32V234_MSCR_PK11 \
+ PAD_CTL_QSPI_A_DATA0_3
+
+#define S32V234_PAD_PK15__QSPI_A_DATA4_IN S32V234_IMCR_QSPI_A_DATA4 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK15__QSPI_A_DATA4_OUT S32V234_MSCR_PK15 \
+ PAD_CTL_QSPI_A_DATA4_7
+
+#define S32V234_PAD_PL0__QSPI_A_DATA5_IN S32V234_IMCR_QSPI_A_DATA5 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL0__QSPI_A_DATA5_OUT S32V234_MSCR_PL0 \
+ PAD_CTL_QSPI_A_DATA4_7
+
+#define S32V234_PAD_PL1__QSPI_A_DATA6_IN S32V234_IMCR_QSPI_A_DATA6 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL1__QSPI_A_DATA6_OUT S32V234_MSCR_PL1 \
+ PAD_CTL_QSPI_A_DATA4_7
+
+#define S32V234_PAD_PL2__QSPI_A_DATA7_IN S32V234_IMCR_QSPI_A_DATA7 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL2__QSPI_A_DATA7_OUT S32V234_MSCR_PL2 \
+ PAD_CTL_QSPI_A_DATA4_7
+
+#define S32V234_PAD_PK15__QSPI_B_DATA0_IN S32V234_IMCR_QSPI_B_DATA0 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PK15__QSPI_B_DATA0_OUT S32V234_MSCR_PK15 \
+ PAD_CTL_QSPI_B_DATA0_3
+
+#define S32V234_PAD_PL0__QSPI_B_DATA1_IN S32V234_IMCR_QSPI_B_DATA1 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL0__QSPI_B_DATA1_OUT S32V234_MSCR_PL0 \
+ PAD_CTL_QSPI_B_DATA0_3
+
+#define S32V234_PAD_PL1__QSPI_B_DATA2_IN S32V234_IMCR_QSPI_B_DATA2 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL1__QSPI_B_DATA2_OUT S32V234_MSCR_PL1 \
+ PAD_CTL_QSPI_B_DATA0_3
+
+#define S32V234_PAD_PL2__QSPI_B_DATA3_IN S32V234_IMCR_QSPI_B_DATA3 \
+ PAD_CTL_MUX_MODE_ALT2
+#define S32V234_PAD_PL2__QSPI_B_DATA3_OUT S32V234_MSCR_PL2 \
+ PAD_CTL_QSPI_B_DATA0_3
+
+#define S32V234_PAD_PF12__QSPI_A_CS1 S32V234_MSCR_PF12 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_A_CS1_MUX)
+#define S32V234_PAD_PF13__QSPI_B_CS1 S32V234_MSCR_PF13 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_B_CS1_MUX)
+
+#define S32V234_PAD_PK5__QSPI_A_CS0 S32V234_MSCR_PK5 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_A_CS0_MUX)
+#define S32V234_PAD_PK6__QSPI_A_SCK S32V234_MSCR_PK6 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_A_SCK_MUX)
+
+#define S32V234_PAD_PK12__QSPI_B_CS0 S32V234_MSCR_PK12 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_B_CS0_MUX)
+#define S32V234_PAD_PK13__QSPI_B_SCK S32V234_MSCR_PK13 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_B_SCK_MUX)
+
+#define S32V234_PAD_PK13__QSPI_CK2 S32V234_MSCR_PK13 \
+ (PAD_CTL_QSPI_CLK_BASE | \
+ PAD_CTL_QSPI_CK2_MUX)
+
+/* I2C configuration */
+#define S32V234_PAD_PA15__I2C0_DATA_OUT S32V234_MSCR_PA15 \
+ PAD_CTL_I2C0_MSCR_SDA_PA15
+#define S32V234_PAD_PA15__I2C0_DATA_IN S32V234_IMCR_IIC0_DATA \
+ PAD_CTL_I2C0_IMCR_SDA_PA15
+
+#define S32V234_PAD_PB0__I2C0_SCLK_OUT S32V234_MSCR_PB0 \
+ PAD_CTL_I2C0_MSCR_SCLK_PB0
+#define S32V234_PAD_PB0__I2C0_SCLK_IN S32V234_IMCR_IIC0_CLK \
+ PAD_CTL_I2C0_IMCR_SCLK_PB0
+
+#define S32V234_PAD_PG3__I2C0_DATA_OUT S32V234_MSCR_PG3 \
+ PAD_CTL_I2C0_MSCR_SDA_PG3
+#define S32V234_PAD_PG3__I2C0_DATA_IN S32V234_IMCR_IIC0_DATA \
+ PAD_CTL_I2C0_IMCR_SDA_PG3
+
+#define S32V234_PAD_PG4__I2C0_SCLK_OUT S32V234_MSCR_PG4 \
+ PAD_CTL_I2C0_MSCR_SCLK_PG4
+#define S32V234_PAD_PG4__I2C0_SCLK_IN S32V234_IMCR_IIC0_CLK \
+ PAD_CTL_I2C0_IMCR_SCLK_PG4
+
+#define S32V234_PAD_PG5__I2C1_DATA_OUT S32V234_MSCR_PG5 \
+ PAD_CTL_I2C1_MSCR_SDA
+#define S32V234_PAD_PG5__I2C1_DATA_IN S32V234_IMCR_IIC1_DATA \
+ PAD_CTL_I2C1_IMCR_SDA
+
+#define S32V234_PAD_PG6__I2C1_SCLK_OUT S32V234_MSCR_PG6 \
+ PAD_CTL_I2C1_MSCR_SCLK
+#define S32V234_PAD_PG6__I2C1_SCLK_IN S32V234_IMCR_IIC1_CLK \
+ PAD_CTL_I2C1_IMCR_SCLK
+
+#define S32V234_PAD_PB3__I2C2_DATA_OUT S32V234_MSCR_PB3 \
+ PAD_CTL_I2C2_MSCR_SDA
+#define S32V234_PAD_PB3__I2C2_DATA_IN S32V234_IMCR_IIC2_DATA \
+ PAD_CTL_I2C2_IMCR_SDA
+
+#define S32V234_PAD_PB4__I2C2_SCLK_OUT S32V234_MSCR_PB4 \
+ PAD_CTL_I2C2_MSCR_SCLK
+#define S32V234_PAD_PB4__I2C2_SCLK_IN S32V234_IMCR_IIC2_CLK \
+ PAD_CTL_I2C2_IMCR_SCLK
+
+/* ENET configuration */
+#define S32V234_PAD_PC13__MDC S32V234_MSCR_PC13 PAD_CTL_ENET_CFG2
+
+#define S32V234_PAD_PC14__MDIO_OUT S32V234_MSCR_PC14 PAD_CTL_ENET_CFG3
+#define S32v234_PAD_PC14__MDIO_IN S32V234_IMCR_Ethernet_MDIO \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PC15__TXCLK_OUT S32V234_MSCR_PC15 PAD_CTL_ENET_CFG1
+#define S32V234_PAD_PC15__TXCLK_IN S32V234_IMCR_Ethernet_TX_CLK \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD0__RXCLK_OUT S32V234_MSCR_PD0 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD0__RXCLK_IN S32V234_IMCR_Ethernet_RX_CLK \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD1__RX_D0_OUT S32V234_MSCR_PD1 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD1__RX_D0_IN S32V234_IMCR_Ethernet_RX_D0 \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD2__RX_D1_OUT S32V234_MSCR_PD2 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD2__RX_D1_IN S32V234_IMCR_Ethernet_RX_D1 \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD3__RX_D2_OUT S32V234_MSCR_PD3 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD3__RX_D2_IN S32V234_IMCR_Ethernet_RX_D2 \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD4__RX_D3_OUT S32V234_MSCR_PD4 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD4__RX_D3_IN S32V234_IMCR_Ethernet_RX_D3 \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD4__RX_DV_OUT S32V234_MSCR_PD5 PAD_CTL_ENET_CFG4
+#define S32V234_PAD_PD4__RX_DV_IN S32V234_IMCR_Ethernet_RX_DV \
+ PAD_CTL_MUX_MODE_ALT2
+
+#define S32V234_PAD_PD7__TX_D0_OUT S32V234_MSCR_PD7 PAD_CTL_ENET_CFG2
+#define S32V234_PAD_PD8__TX_D1_OUT S32V234_MSCR_PD8 PAD_CTL_ENET_CFG2
+#define S32V234_PAD_PD9__TX_D2_OUT S32V234_MSCR_PD9 PAD_CTL_ENET_CFG2
+#define S32V234_PAD_PD10__TX_D3_OUT S32V234_MSCR_PD10 PAD_CTL_ENET_CFG2
+#define S32V234_PAD_PD11__TX_EN_OUT S32V234_MSCR_PD11 PAD_CTL_ENET_CFG2
+
+/* 2D ACE DCU */
+#define S32V234_PAD_PH8__DCU_HSYNC_C1 S32V234_MSCR_PH8 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PH9__DCU_VSYNC_C2 S32V234_MSCR_PH9 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PH10__DCU_DE_C3 S32V234_MSCR_PH10 PAD_CTL_DCU_CFG
+
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_DISABLE S32V234_MSCR_PH12 \
+ PAD_CTL_DCU_CLK_CFG_DSE_DISABLE
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_240 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_240)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_120 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_120)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_80 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_80)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_60 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_60)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_48 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_48)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_40 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_40)
+#define S32V234_PAD_PH12__DCU_PCLK_D1_DSE_34 S32V234_MSCR_PH12 \
+ (PAD_CTL_DCU_CLK_CFG_DSE_DISABLE | \
+ PAD_CTL_DSE_34)
+
+#define S32V234_PAD_PH13__DCU_R0_D2 S32V234_MSCR_PH13 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PH14__DCU_R1_D3 S32V234_MSCR_PH14 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PH15__DCU_R2_D4 S32V234_MSCR_PH15 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ0__DCU_R3_D5 S32V234_MSCR_PJ0 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ1__DCU_R4_D6 S32V234_MSCR_PJ1 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ2__DCU_R5_D7 S32V234_MSCR_PJ2 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ3__DCU_R6_D8 S32V234_MSCR_PJ3 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ4__DCU_R7_D9 S32V234_MSCR_PJ4 PAD_CTL_DCU_CFG
+
+#define S32V234_PAD_PJ5__DCU_G0_D10 S32V234_MSCR_PJ5 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ6__DCU_G1_D11 S32V234_MSCR_PJ6 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ7__DCU_G2_D12 S32V234_MSCR_PJ7 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ8__DCU_G3_D13 S32V234_MSCR_PJ8 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ9__DCU_G4_D14 S32V234_MSCR_PJ9 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ10__DCU_G5_D15 S32V234_MSCR_PJ10 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ11__DCU_G6_D16 S32V234_MSCR_PJ11 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ12__DCU_G7_D17 S32V234_MSCR_PJ12 PAD_CTL_DCU_CFG
+
+#define S32V234_PAD_PJ13__DCU_B0_D18 S32V234_MSCR_PJ13 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ14__DCU_B1_D19 S32V234_MSCR_PJ14 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PJ15__DCU_B2_D20 S32V234_MSCR_PJ15 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PK0__DCU_B3_D21 S32V234_MSCR_PK0 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PK1__DCU_B4_D22 S32V234_MSCR_PK1 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PK2__DCU_B5_D23 S32V234_MSCR_PK2 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PK3__DCU_B6_D24 S32V234_MSCR_PK3 PAD_CTL_DCU_CFG
+#define S32V234_PAD_PK4__DCU_B7_D25 S32V234_MSCR_PK4 PAD_CTL_DCU_CFG
+
+/* VIULite0 */
+#define S32V234_PAD_PD13__VIU0_EN S32V234_MSCR_PD13 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PD13__VIU0_PCLK S32V234_IMCR_VIU0_PCLK PAD_CTL_VIU_CFG
+#define S32V234_PAD_PD14__VIU0_EN S32V234_MSCR_PD14 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PD14__VIU0_HSYNC S32V234_IMCR_VIU0_HSYNC PAD_CTL_VIU_CFG
+#define S32V234_PAD_PD15__VIU0_EN S32V234_MSCR_PD15 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PD15__VIU0_VSYNC S32V234_IMCR_VIU0_VSYNC PAD_CTL_VIU_CFG
+
+#define S32V234_PAD_PF3__VIU_EN S32V234_MSCR_PF3 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF3__VIU0_D4 S32V234_IMCR_VIU0_D4 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF4__VIU_EN S32V234_MSCR_PF4 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF4__VIU0_D5 S32V234_IMCR_VIU0_D5 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF5__VIU_EN S32V234_MSCR_PF5 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF5__VIU0_D6 S32V234_IMCR_VIU0_D6 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF6__VIU_EN S32V234_MSCR_PF6 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF6__VIU0_D7 S32V234_IMCR_VIU0_D7 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE0__VIU0_EN S32V234_MSCR_PE0 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE0__VIU0_D8 S32V234_IMCR_VIU0_D8 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE1__VIU0_EN S32V234_MSCR_PE1 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE1__VIU0_D9 S32V234_IMCR_VIU0_D9 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE2__VIU0_EN S32V234_MSCR_PE2 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE2__VIU0_D10 S32V234_IMCR_VIU0_D10 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE3__VIU0_EN S32V234_MSCR_PE3 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE3__VIU0_D11 S32V234_IMCR_VIU0_D11 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE4__VIU0_EN S32V234_MSCR_PE4 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE4__VIU0_D12 S32V234_IMCR_VIU0_D12 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE5__VIU0_EN S32V234_MSCR_PE5 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE5__VIU0_D13 S32V234_IMCR_VIU0_D13 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE6__VIU0_EN S32V234_MSCR_PE6 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE6__VIU0_D14 S32V234_IMCR_VIU0_D14 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE7__VIU0_EN S32V234_MSCR_PE7 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE7__VIU0_D15 S32V234_IMCR_VIU0_D15 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE8__VIU0_EN S32V234_MSCR_PE8 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE8__VIU0_D16 S32V234_IMCR_VIU0_D16 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE9__VIU0_EN S32V234_MSCR_PE9 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE9__VIU0_D17 S32V234_IMCR_VIU0_D17 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE10__VIU0_EN S32V234_MSCR_PE10 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE10__VIU0_D18 S32V234_IMCR_VIU0_D18 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE11__VIU0_EN S32V234_MSCR_PE11 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE11__VIU0_D19 S32V234_IMCR_VIU0_D19 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE12__VIU0_EN S32V234_MSCR_PE12 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE12__VIU0_D20 S32V234_IMCR_VIU0_D20 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE13__VIU0_EN S32V234_MSCR_PE13 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE13__VIU0_D21 S32V234_IMCR_VIU0_D21 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE14__VIU0_EN S32V234_MSCR_PE14 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE14__VIU0_D22 S32V234_IMCR_VIU0_D22 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PE15__VIU0_EN S32V234_MSCR_PE15 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PE15__VIU0_D23 S32V234_IMCR_VIU0_D23 PAD_CTL_VIU_CFG
+
+/* VIULite1 */
+#define S32V234_PAD_PF0__VIU1_EN S32V234_MSCR_PF0 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF0__VIU1_PCLK S32V234_IMCR_VIU1_PCLK PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF1__VIU1_EN S32V234_MSCR_PF1 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF1__VIU1_HSYNC S32V234_IMCR_VIU1_HSYNC PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF2__VIU1_EN S32V234_MSCR_PF2 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF2__VIU1_VSYNC S32V234_IMCR_VIU1_VSYNC PAD_CTL_VIU_CFG
+
+#define S32V234_PAD_PF3__VIU_EN S32V234_MSCR_PF3 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF3__VIU1_D8 S32V234_IMCR_VIU1_D8 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF4__VIU_EN S32V234_MSCR_PF4 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF4__VIU1_D9 S32V234_IMCR_VIU1_D9 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF5__VIU_EN S32V234_MSCR_PF5 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF5__VIU1_D10 S32V234_IMCR_VIU1_D10 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF6__VIU_EN S32V234_MSCR_PF6 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF6__VIU1_D11 S32V234_IMCR_VIU1_D11 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF7__VIU1_EN S32V234_MSCR_PF7 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF7__VIU1_D12 S32V234_IMCR_VIU1_D12 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF8__VIU1_EN S32V234_MSCR_PF8 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF8__VIU1_D13 S32V234_IMCR_VIU1_D13 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF9__VIU1_EN S32V234_MSCR_PF9 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF9__VIU1_D14 S32V234_IMCR_VIU1_D14 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF10__VIU1_EN S32V234_MSCR_PF10 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF10__VIU1_D15 S32V234_IMCR_VIU1_D15 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF11__VIU1_EN S32V234_MSCR_PF11 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF11__VIU1_D16 S32V234_IMCR_VIU1_D16 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF12__VIU1_EN S32V234_MSCR_PF12 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF12__VIU1_D17 S32V234_IMCR_VIU1_D17 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF13__VIU1_EN S32V234_MSCR_PF13 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF13__VIU1_D18 S32V234_IMCR_VIU1_D18 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF14__VIU1_EN S32V234_MSCR_PF14 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF14__VIU1_D19 S32V234_IMCR_VIU1_D19 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PF15__VIU1_EN S32V234_MSCR_PF15 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PF15__VIU1_D20 S32V234_IMCR_VIU1_D20 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PG0__VIU1_EN S32V234_MSCR_PG0 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PG0__VIU1_D21 S32V234_IMCR_VIU1_D21 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PG1__VIU1_EN S32V234_MSCR_PG1 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PG1__VIU1_D22 S32V234_IMCR_VIU1_D22 PAD_CTL_VIU_CFG
+#define S32V234_PAD_PG2__VIU1_EN S32V234_MSCR_PG2 PAD_CTL_VIU_IBE
+#define S32V234_PAD_PG2__VIU1_D23 S32V234_IMCR_VIU1_D23 PAD_CTL_VIU_CFG
+
+/* SPI 0-3 */
+#define S32V234_PAD_PB6__SPI0_SOUT_OUT S32V234_MSCR_PB6 PAD_CTL_SPI_MSCR_SOUT
+#define S32V234_PAD_PB7__SPI0_SIN_OUT S32V234_MSCR_PB7 PAD_CTL_SPI_MSCR_SIN
+#define S32V234_PAD_PB7__SPI0_SIN_IN S32V234_IMCR_SPI0_SIN \
+ PAD_CTL_SPI_IMCR_SIN
+#define S32V234_PAD_PB5__SPI0_SCK_OUT S32V234_MSCR_PB5 PAD_CTL_SPI_MSCR_SCK
+#define S32V234_PAD_PB8__SPI0_CS0_OUT S32V234_MSCR_PB8 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT1)
+#define S32V234_PAD_PC0__SPI0_CS4_OUT S32V234_MSCR_PC0 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT3)
+#define S32V234_PAD_PC1__SPI0_CS5_OUT S32V234_MSCR_PC1 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT3)
+#define S32V234_PAD_PC2__SPI0_CS6_OUT S32V234_MSCR_PC2 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT3)
+#define S32V234_PAD_PC3__SPI0_CS7_OUT S32V234_MSCR_PC3 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT2)
+
+#define S32V234_PAD_PB10__SPI1_SOUT_OUT S32V234_MSCR_PB10 PAD_CTL_SPI_MSCR_SOUT
+#define S32V234_PAD_PB11__SPI1_SIN_OUT S32V234_MSCR_PB11 PAD_CTL_SPI_MSCR_SIN
+#define S32V234_PAD_PB11__SPI1_SIN_IN S32V234_IMCR_SPI1_SIN \
+ PAD_CTL_SPI_IMCR_SIN
+#define S32V234_PAD_PB9__SPI1_SCK_OUT S32V234_MSCR_PB9 PAD_CTL_SPI_MSCR_SCK
+#define S32V234_PAD_PB12__SPI1_CS0_OUT S32V234_MSCR_PB12 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+#define S32V234_PAD_PB14__SPI2_SOUT_OUT S32V234_MSCR_PB14 PAD_CTL_SPI_MSCR_SOUT
+#define S32V234_PAD_PB15__SPI2_SIN_OUT S32V234_MSCR_PB15 PAD_CTL_SPI_MSCR_SIN
+#define S32V234_PAD_PB15__SPI2_SIN_IN S32V234_IMCR_SPI2_SIN \
+ PAD_CTL_SPI_IMCR_SIN
+#define S32V234_PAD_P13__SPI2_SCK_OUT S32V234_MSCR_PB13 PAD_CTL_SPI_MSCR_SCK
+#define S32V234_PAD_PC0__SPI2_CS0_OUT S32V234_MSCR_PC0 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+#define S32V234_PAD_PC2__SPI3_SOUT_OUT S32V234_MSCR_PC2 PAD_CTL_SPI_MSCR_SOUT
+#define S32V234_PAD_PC3__SPI3_SIN_OUT S32V234_MSCR_PC3 PAD_CTL_SPI_MSCR_SIN
+#define S32V234_PAD_PC3__SPI3_SIN_IN S32V234_IMCR_SPI3_SIN \
+ PAD_CTL_SPI_IMCR_SIN
+#define S32V234_PAD_PC1__SPI3_SCK_OUT S32V234_MSCR_PC1 PAD_CTL_SPI_MSCR_SCK
+#define S32V234_PAD_PC4__SPI3_CS0_OUT S32V234_MSCR_PC4 \
+ (PAD_CTL_SPI_MSCR_CSx | \
+ PAD_CTL_MUX_MODE_ALT1)
+
+/* SIUL2 GPIOs */
+#define S32V234_PAD_PA0__SIUL_GPIO0 S32V234_MSCR_PA0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA1__SIUL_GPIO1 S32V234_MSCR_PA1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA2__SIUL_GPIO2 S32V234_MSCR_PA2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA3__SIUL_GPIO3 S32V234_MSCR_PA3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA4__SIUL_GPIO4 S32V234_MSCR_PA4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA5__SIUL_GPIO5 S32V234_MSCR_PA5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA6__SIUL_GPIO6 S32V234_MSCR_PA6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA7__SIUL_GPIO7 S32V234_MSCR_PA7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA8__SIUL_GPIO8 S32V234_MSCR_PA8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA9__SIUL_GPIO9 S32V234_MSCR_PA9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA10__SIUL_GPIO10 S32V234_MSCR_PA10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA11__SIUL_GPIO11 S32V234_MSCR_PA11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA12__SIUL_GPIO12 S32V234_MSCR_PA12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA13__SIUL_GPIO13 S32V234_MSCR_PA13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA14__SIUL_GPIO14 S32V234_MSCR_PA14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PA15__SIUL_GPIO15 S32V234_MSCR_PA15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB0__SIUL_GPIO16 S32V234_MSCR_PB0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB1__SIUL_GPIO17 S32V234_MSCR_PB1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB2__SIUL_GPIO18 S32V234_MSCR_PB2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB3__SIUL_GPIO19 S32V234_MSCR_PB3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB4__SIUL_GPIO20 S32V234_MSCR_PB4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB5__SIUL_GPIO21 S32V234_MSCR_PB5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB6__SIUL_GPIO22 S32V234_MSCR_PB6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB7__SIUL_GPIO23 S32V234_MSCR_PB7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB8__SIUL_GPIO24 S32V234_MSCR_PB8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB9__SIUL_GPIO25 S32V234_MSCR_PB9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB10__SIUL_GPIO26 S32V234_MSCR_PB10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB11__SIUL_GPIO27 S32V234_MSCR_PB11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB12__SIUL_GPIO28 S32V234_MSCR_PB12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB13__SIUL_GPIO29 S32V234_MSCR_PB13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB14__SIUL_GPIO30 S32V234_MSCR_PB14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PB15__SIUL_GPIO31 S32V234_MSCR_PB15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC0__SIUL_GPIO32 S32V234_MSCR_PC0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC1__SIUL_GPIO33 S32V234_MSCR_PC1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC2__SIUL_GPIO34 S32V234_MSCR_PC2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC3__SIUL_GPIO35 S32V234_MSCR_PC3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC4__SIUL_GPIO36 S32V234_MSCR_PC4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC5__SIUL_GPIO37 S32V234_MSCR_PC5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC6__SIUL_GPIO38 S32V234_MSCR_PC6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC7__SIUL_GPIO39 S32V234_MSCR_PC7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC8__SIUL_GPIO40 S32V234_MSCR_PC8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC9__SIUL_GPIO41 S32V234_MSCR_PC9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC10__SIUL_GPIO42 S32V234_MSCR_PC10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC11__SIUL_GPIO43 S32V234_MSCR_PC11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC12__SIUL_GPIO44 S32V234_MSCR_PC12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC13__SIUL_GPIO45 S32V234_MSCR_PC13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC14__SIUL_GPIO46 S32V234_MSCR_PC14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PC15__SIUL_GPIO47 S32V234_MSCR_PC15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD0__SIUL_GPIO48 S32V234_MSCR_PD0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD1__SIUL_GPIO49 S32V234_MSCR_PD1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD2__SIUL_GPIO50 S32V234_MSCR_PD2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD3__SIUL_GPIO51 S32V234_MSCR_PD3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD4__SIUL_GPIO52 S32V234_MSCR_PD4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD5__SIUL_GPIO53 S32V234_MSCR_PD5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD6__SIUL_GPIO54 S32V234_MSCR_PD6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD7__SIUL_GPIO55 S32V234_MSCR_PD7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD8__SIUL_GPIO56 S32V234_MSCR_PD8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD9__SIUL_GPIO57 S32V234_MSCR_PD9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD10__SIUL_GPIO58 S32V234_MSCR_PD10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD11__SIUL_GPIO59 S32V234_MSCR_PD11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD12__SIUL_GPIO60 S32V234_MSCR_PD12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD13__SIUL_GPIO61 S32V234_MSCR_PD13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD14__SIUL_GPIO62 S32V234_MSCR_PD14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PD15__SIUL_GPIO63 S32V234_MSCR_PD15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE0__SIUL_GPIO64 S32V234_MSCR_PE0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE1__SIUL_GPIO65 S32V234_MSCR_PE1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE2__SIUL_GPIO66 S32V234_MSCR_PE2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE3__SIUL_GPIO67 S32V234_MSCR_PE3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE4__SIUL_GPIO68 S32V234_MSCR_PE4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE5__SIUL_GPIO69 S32V234_MSCR_PE5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE6__SIUL_GPIO70 S32V234_MSCR_PE6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE7__SIUL_GPIO71 S32V234_MSCR_PE7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE8__SIUL_GPIO72 S32V234_MSCR_PE8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE9__SIUL_GPIO73 S32V234_MSCR_PE9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE10__SIUL_GPIO74 S32V234_MSCR_PE10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE11__SIUL_GPIO75 S32V234_MSCR_PE11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE12__SIUL_GPIO76 S32V234_MSCR_PE12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE13__SIUL_GPIO77 S32V234_MSCR_PE13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE14__SIUL_GPIO78 S32V234_MSCR_PE14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PE15__SIUL_GPIO79 S32V234_MSCR_PE15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF0__SIUL_GPIO80 S32V234_MSCR_PF0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF1__SIUL_GPIO81 S32V234_MSCR_PF1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF2__SIUL_GPIO82 S32V234_MSCR_PF2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF3__SIUL_GPIO83 S32V234_MSCR_PF3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF4__SIUL_GPIO84 S32V234_MSCR_PF4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF5__SIUL_GPIO85 S32V234_MSCR_PF5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF6__SIUL_GPIO86 S32V234_MSCR_PF6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF7__SIUL_GPIO87 S32V234_MSCR_PF7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF8__SIUL_GPIO88 S32V234_MSCR_PF8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF9__SIUL_GPIO89 S32V234_MSCR_PF9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF10__SIUL_GPIO90 S32V234_MSCR_PF10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF11__SIUL_GPIO91 S32V234_MSCR_PF11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF12__SIUL_GPIO92 S32V234_MSCR_PF12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF13__SIUL_GPIO93 S32V234_MSCR_PF13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF14__SIUL_GPIO94 S32V234_MSCR_PF14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PF15__SIUL_GPIO95 S32V234_MSCR_PF15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG0__SIUL_GPIO96 S32V234_MSCR_PG0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG1__SIUL_GPIO97 S32V234_MSCR_PG1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG2__SIUL_GPIO98 S32V234_MSCR_PG2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG3__SIUL_GPIO99 S32V234_MSCR_PG3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG4__SIUL_GPIO100 S32V234_MSCR_PG4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG5__SIUL_GPIO101 S32V234_MSCR_PG5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG6__SIUL_GPIO102 S32V234_MSCR_PG6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG7__SIUL_GPIO103 S32V234_MSCR_PG7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG8__SIUL_GPIO104 S32V234_MSCR_PG8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG9__SIUL_GPIO105 S32V234_MSCR_PG9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG10__SIUL_GPIO106 S32V234_MSCR_PG10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG11__SIUL_GPIO107 S32V234_MSCR_PG11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG12__SIUL_GPIO108 S32V234_MSCR_PG12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG13__SIUL_GPIO109 S32V234_MSCR_PG13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG14__SIUL_GPIO110 S32V234_MSCR_PG14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PG15__SIUL_GPIO111 S32V234_MSCR_PG15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH0__SIUL_GPIO112 S32V234_MSCR_PH0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH1__SIUL_GPIO113 S32V234_MSCR_PH1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH2__SIUL_GPIO114 S32V234_MSCR_PH2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH3__SIUL_GPIO115 S32V234_MSCR_PH3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH4__SIUL_GPIO116 S32V234_MSCR_PH4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH5__SIUL_GPIO117 S32V234_MSCR_PH5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH6__SIUL_GPIO118 S32V234_MSCR_PH6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH7__SIUL_GPIO119 S32V234_MSCR_PH7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH8__SIUL_GPIO120 S32V234_MSCR_PH8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH9__SIUL_GPIO121 S32V234_MSCR_PH9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH10__SIUL_GPIO122 S32V234_MSCR_PH10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH11__SIUL_GPIO123 S32V234_MSCR_PH11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH12__SIUL_GPIO124 S32V234_MSCR_PH12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH13__SIUL_GPIO125 S32V234_MSCR_PH13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH14__SIUL_GPIO126 S32V234_MSCR_PH14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PH15__SIUL_GPIO127 S32V234_MSCR_PH15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ0__SIUL_GPIO128 S32V234_MSCR_PJ0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ1__SIUL_GPIO129 S32V234_MSCR_PJ1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ2__SIUL_GPIO130 S32V234_MSCR_PJ2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ3__SIUL_GPIO131 S32V234_MSCR_PJ3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ4__SIUL_GPIO132 S32V234_MSCR_PJ4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ5__SIUL_GPIO133 S32V234_MSCR_PJ5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ6__SIUL_GPIO134 S32V234_MSCR_PJ6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ7__SIUL_GPIO135 S32V234_MSCR_PJ7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ8__SIUL_GPIO136 S32V234_MSCR_PJ8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ9__SIUL_GPIO137 S32V234_MSCR_PJ9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ10__SIUL_GPIO138 S32V234_MSCR_PJ10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ11__SIUL_GPIO139 S32V234_MSCR_PJ11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ12__SIUL_GPIO140 S32V234_MSCR_PJ12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ13__SIUL_GPIO141 S32V234_MSCR_PJ13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ14__SIUL_GPIO142 S32V234_MSCR_PJ14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PJ15__SIUL_GPIO143 S32V234_MSCR_PJ15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK0__SIUL_GPIO144 S32V234_MSCR_PK0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK1__SIUL_GPIO145 S32V234_MSCR_PK1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK2__SIUL_GPIO146 S32V234_MSCR_PK2 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK3__SIUL_GPIO147 S32V234_MSCR_PK3 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK4__SIUL_GPIO148 S32V234_MSCR_PK4 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK5__SIUL_GPIO149 S32V234_MSCR_PK5 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK6__SIUL_GPIO150 S32V234_MSCR_PK6 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK7__SIUL_GPIO151 S32V234_MSCR_PK7 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK8__SIUL_GPIO152 S32V234_MSCR_PK8 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK9__SIUL_GPIO153 S32V234_MSCR_PK9 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK10__SIUL_GPIO154 S32V234_MSCR_PK10 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK11__SIUL_GPIO155 S32V234_MSCR_PK11 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK12__SIUL_GPIO156 S32V234_MSCR_PK12 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK13__SIUL_GPIO157 S32V234_MSCR_PK13 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK14__SIUL_GPIO158 S32V234_MSCR_PK14 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PK15__SIUL_GPIO159 S32V234_MSCR_PK15 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PL0__SIUL_GPIO160 S32V234_MSCR_PL0 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PL1__SIUL_GPIO161 S32V234_MSCR_PL1 PAD_CTL_MUX_MODE_ALT0
+#define S32V234_PAD_PL2__SIUL_GPIO162 S32V234_MSCR_PL2 PAD_CTL_MUX_MODE_ALT0
+
+/* SIUL2 EIRQ pins */
+#define S32V234_PAD_PA0__SIUL_EIRQ0 S32V234_IMCR_SIUL_EIRQ0 PAD_CTL_EIRQ
+#define S32V234_PAD_PA1__SIUL_EIRQ1 S32V234_IMCR_SIUL_EIRQ1 PAD_CTL_EIRQ
+#define S32V234_PAD_PA2__SIUL_EIRQ2 S32V234_IMCR_SIUL_EIRQ2 PAD_CTL_EIRQ
+#define S32V234_PAD_PA3__SIUL_EIRQ3 S32V234_IMCR_SIUL_EIRQ3 PAD_CTL_EIRQ
+#define S32V234_PAD_PA4__SIUL_EIRQ4 S32V234_IMCR_SIUL_EIRQ4 PAD_CTL_EIRQ
+#define S32V234_PAD_PA5__SIUL_EIRQ5 S32V234_IMCR_SIUL_EIRQ5 PAD_CTL_EIRQ
+#define S32V234_PAD_PA6__SIUL_EIRQ6 S32V234_IMCR_SIUL_EIRQ6 PAD_CTL_EIRQ
+#define S32V234_PAD_PA7__SIUL_EIRQ7 S32V234_IMCR_SIUL_EIRQ7 PAD_CTL_EIRQ
+#define S32V234_PAD_PA8__SIUL_EIRQ8 S32V234_IMCR_SIUL_EIRQ8 PAD_CTL_EIRQ
+#define S32V234_PAD_PA9__SIUL_EIRQ9 S32V234_IMCR_SIUL_EIRQ9 PAD_CTL_EIRQ
+#define S32V234_PAD_PA10__SIUL_EIRQ10 S32V234_IMCR_SIUL_EIRQ10 PAD_CTL_EIRQ
+#define S32V234_PAD_PA11__SIUL_EIRQ11 S32V234_IMCR_SIUL_EIRQ11 PAD_CTL_EIRQ
+#define S32V234_PAD_PA12__SIUL_EIRQ12 S32V234_IMCR_SIUL_EIRQ12 PAD_CTL_EIRQ
+#define S32V234_PAD_PA13__SIUL_EIRQ13 S32V234_IMCR_SIUL_EIRQ13 PAD_CTL_EIRQ
+#define S32V234_PAD_PA14__SIUL_EIRQ14 S32V234_IMCR_SIUL_EIRQ14 PAD_CTL_EIRQ
+#define S32V234_PAD_PA15__SIUL_EIRQ15 S32V234_IMCR_SIUL_EIRQ15 PAD_CTL_EIRQ
+#define S32V234_PAD_PB0__SIUL_EIRQ16 S32V234_IMCR_SIUL_EIRQ16 PAD_CTL_EIRQ
+#define S32V234_PAD_PB1__SIUL_EIRQ17 S32V234_IMCR_SIUL_EIRQ17 PAD_CTL_EIRQ
+#define S32V234_PAD_PB2__SIUL_EIRQ18 S32V234_IMCR_SIUL_EIRQ18 PAD_CTL_EIRQ
+#define S32V234_PAD_PB3__SIUL_EIRQ19 S32V234_IMCR_SIUL_EIRQ19 PAD_CTL_EIRQ
+#define S32V234_PAD_PB4__SIUL_EIRQ20 S32V234_IMCR_SIUL_EIRQ20 PAD_CTL_EIRQ
+#define S32V234_PAD_PB5__SIUL_EIRQ21 S32V234_IMCR_SIUL_EIRQ21 PAD_CTL_EIRQ
+#define S32V234_PAD_PB6__SIUL_EIRQ22 S32V234_IMCR_SIUL_EIRQ22 PAD_CTL_EIRQ
+#define S32V234_PAD_PB7__SIUL_EIRQ23 S32V234_IMCR_SIUL_EIRQ23 PAD_CTL_EIRQ
+#define S32V234_PAD_PB8__SIUL_EIRQ24 S32V234_IMCR_SIUL_EIRQ24 PAD_CTL_EIRQ
+#define S32V234_PAD_PB9__SIUL_EIRQ25 S32V234_IMCR_SIUL_EIRQ25 PAD_CTL_EIRQ
+#define S32V234_PAD_PB10__SIUL_EIRQ26 S32V234_IMCR_SIUL_EIRQ26 PAD_CTL_EIRQ
+#define S32V234_PAD_PB11__SIUL_EIRQ27 S32V234_IMCR_SIUL_EIRQ27 PAD_CTL_EIRQ
+#define S32V234_PAD_PB12__SIUL_EIRQ28 S32V234_IMCR_SIUL_EIRQ28 PAD_CTL_EIRQ
+#define S32V234_PAD_PB13__SIUL_EIRQ29 S32V234_IMCR_SIUL_EIRQ29 PAD_CTL_EIRQ
+#define S32V234_PAD_PB14__SIUL_EIRQ30 S32V234_IMCR_SIUL_EIRQ30 PAD_CTL_EIRQ
+#define S32V234_PAD_PB15__SIUL_EIRQ31 S32V234_IMCR_SIUL_EIRQ31 PAD_CTL_EIRQ
+
+#endif /* __DT_BINDINGS_S32V234_PINCTRL_H__ */
diff --git a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
index d40c3b874d81..71ef2acb3c57 100644
--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
+++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
@@ -436,6 +436,15 @@
#define IMX6SX_GPR4_FEC_ENET1_STOP_REQ (0x1 << 3)
#define IMX6SX_GPR4_FEC_ENET2_STOP_REQ (0x1 << 4)
+#define IMX6SX_GPR2_MQS_OVERSAMPLE_MASK (0x1 << 26)
+#define IMX6SX_GPR2_MQS_OVERSAMPLE_SHIFT (26)
+#define IMX6SX_GPR2_MQS_EN_MASK (0x1 << 25)
+#define IMX6SX_GPR2_MQS_EN_SHIFT (25)
+#define IMX6SX_GPR2_MQS_SW_RST_MASK (0x1 << 24)
+#define IMX6SX_GPR2_MQS_SW_RST_SHIFT (24)
+#define IMX6SX_GPR2_MQS_CLK_DIV_MASK (0xFF << 16)
+#define IMX6SX_GPR2_MQS_CLK_DIV_SHIFT (16)
+
#define IMX6SX_GPR5_DISP_MUX_LDB_CTRL_MASK (0x1 << 3)
#define IMX6SX_GPR5_DISP_MUX_LDB_CTRL_LCDIF1 (0x0 << 3)
#define IMX6SX_GPR5_DISP_MUX_LDB_CTRL_LCDIF2 (0x1 << 3)