u-boot/drivers/pinctrl/nxp/pinctrl-imx5.c
Marek Vasut 40c477c71c pinctrl: imx: Split imx_pinctrl_set_state() into common and mmio parts
Split imx_pinctrl_set_state() into imx_pinctrl_set_state_common() and
imx_pinctrl_set_state_mmio(). The former does the common configuration
parsing, the later does call imx_pinctrl_set_state_common() and then
does pin configuration using either SCU or MMIO accesses. The SCU part
is going to be moved out in follow up patches.

This is a preparatory patch for follow up pinctrl drivers which
do not use the MMIO accessors, but some other means, like SCU or
otherwise. Those will call the common imx_pinctrl_set_state_common()
function wrapped into some other imx_pinctrl_set_state_*() function,
in a way similar to imx_pinctrl_set_state_mmio() does so for MMIO
accesses.

Update all imx_pinctrl_set_state_mmio() call sites to call
imx_pinctrl_set_state_mmio() instead.

No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00

40 lines
898 B
C

// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2016 Peng Fan <van.freenix@gmail.com>
*/
#include <dm.h>
#include <dm/pinctrl.h>
#include "pinctrl-imx.h"
static struct imx_pinctrl_soc_info imx5_pinctrl_soc_info __section(".data");
static const struct udevice_id imx5_pinctrl_match[] = {
{
.compatible = "fsl,imx53-iomuxc",
.data = (ulong)&imx5_pinctrl_soc_info
},
{
.compatible = "fsl,imx53-iomuxc-gpr",
.data = (ulong)&imx5_pinctrl_soc_info
},
{ /* sentinel */ }
};
static const struct pinctrl_ops imx5_pinctrl_ops = {
.set_state = imx_pinctrl_set_state_mmio,
};
U_BOOT_DRIVER(imx5_pinctrl) = {
.name = "imx5-pinctrl",
.id = UCLASS_PINCTRL,
.of_match = of_match_ptr(imx5_pinctrl_match),
.probe = imx_pinctrl_probe_mmio,
.remove = imx_pinctrl_remove_mmio,
.priv_auto = sizeof(struct imx_pinctrl_priv),
.ops = &imx5_pinctrl_ops,
.flags = DM_FLAG_PRE_RELOC,
};