linux/drivers/pinctrl/freescale/pinctrl-imx-scmi.c

// SPDX-License-Identifier: GPL-2.0
/*
 * System Control and Power Interface (SCMI) Protocol based i.MX pinctrl driver
 *
 * Copyright 2024 NXP
 */

#include <linux/device.h>
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/of.h>
#include <linux/scmi_protocol.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/types.h>

#include <linux/pinctrl/machine.h>
#include <linux/pinctrl/pinconf.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/pinctrl/pinmux.h>

#include "../pinctrl-utils.h"
#include "../core.h"
#include "../pinconf.h"
#include "../pinmux.h"

#define DRV_NAME

struct scmi_pinctrl_imx {};

/* SCMI pin control types, aligned with SCMI firmware */
#define IMX_SCMI_NUM_CFG
#define IMX_SCMI_PIN_MUX
#define IMX_SCMI_PIN_CONFIG
#define IMX_SCMI_PIN_DAISY_ID
#define IMX_SCMI_PIN_DAISY_CFG

#define IMX_SCMI_NO_PAD_CTL
#define IMX_SCMI_PAD_SION
#define IMX_SCMI_IOMUXC_CONFIG_SION

#define IMX_SCMI_PIN_SIZE

#define IMX95_DAISY_OFF

static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev,
					   struct device_node *np,
					   struct pinctrl_map **map,
					   unsigned int *num_maps)
{}

static void pinctrl_scmi_imx_dt_free_map(struct pinctrl_dev *pctldev,
					 struct pinctrl_map *map, unsigned int num_maps)
{}

static const struct pinctrl_ops pinctrl_scmi_imx_pinctrl_ops =;

static int pinctrl_scmi_imx_func_set_mux(struct pinctrl_dev *pctldev,
					 unsigned int selector, unsigned int group)
{}

static const struct pinmux_ops pinctrl_scmi_imx_pinmux_ops =;

static int pinctrl_scmi_imx_pinconf_get(struct pinctrl_dev *pctldev,
					unsigned int pin, unsigned long *config)
{}

static int pinctrl_scmi_imx_pinconf_set(struct pinctrl_dev *pctldev,
					unsigned int pin,
					unsigned long *configs,
					unsigned int num_configs)
{}

static void pinctrl_scmi_imx_pinconf_dbg_show(struct pinctrl_dev *pctldev,
					      struct seq_file *s, unsigned int pin_id)
{}

static const struct pinconf_ops pinctrl_scmi_imx_pinconf_ops =;

static int
scmi_pinctrl_imx_get_pins(struct scmi_pinctrl_imx *pmx, struct pinctrl_desc *desc)
{}

static const char * const scmi_pinctrl_imx_allowlist[] =;

static int scmi_pinctrl_imx_probe(struct scmi_device *sdev)
{}

static const struct scmi_device_id scmi_id_table[] =;
MODULE_DEVICE_TABLE(scmi, scmi_id_table);

static struct scmi_driver scmi_pinctrl_imx_driver =;
module_scmi_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();