linux/drivers/pinctrl/pinctrl-pef2256.c

// SPDX-License-Identifier: GPL-2.0
/*
 * PEF2256 also known as FALC56 driver
 *
 * Copyright 2023 CS GROUP France
 *
 * Author: Herve Codina <[email protected]>
 */

#include <linux/bitfield.h>
#include <linux/framer/pef2256.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinmux.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/slab.h>

/* Port Configuration 1..4 */
#define PEF2256_PC1
#define PEF2256_PC2
#define PEF2256_PC3
#define PEF2256_PC4
#define PEF2256_12_PC_RPC_MASK
#define PEF2256_12_PC_RPC_SYPR
#define PEF2256_12_PC_RPC_RFM
#define PEF2256_12_PC_RPC_RFMB
#define PEF2256_12_PC_RPC_RSIGM
#define PEF2256_12_PC_RPC_RSIG
#define PEF2256_12_PC_RPC_DLR
#define PEF2256_12_PC_RPC_FREEZE
#define PEF2256_12_PC_RPC_RFSP
#define PEF2256_12_PC_XPC_MASK
#define PEF2256_12_PC_XPC_SYPX
#define PEF2256_12_PC_XPC_XFMS
#define PEF2256_12_PC_XPC_XSIG
#define PEF2256_12_PC_XPC_TCLK
#define PEF2256_12_PC_XPC_XMFB
#define PEF2256_12_PC_XPC_XSIGM
#define PEF2256_12_PC_XPC_DLX
#define PEF2256_12_PC_XPC_XCLK
#define PEF2256_12_PC_XPC_XLT
#define PEF2256_2X_PC_RPC_MASK
#define PEF2256_2X_PC_RPC_SYPR
#define PEF2256_2X_PC_RPC_RFM
#define PEF2256_2X_PC_RPC_RFMB
#define PEF2256_2X_PC_RPC_RSIGM
#define PEF2256_2X_PC_RPC_RSIG
#define PEF2256_2X_PC_RPC_DLR
#define PEF2256_2X_PC_RPC_FREEZE
#define PEF2256_2X_PC_RPC_RFSP
#define PEF2256_2X_PC_RPC_GPI
#define PEF2256_2X_PC_RPC_GPOH
#define PEF2256_2X_PC_RPC_GPOL
#define PEF2256_2X_PC_RPC_LOS
#define PEF2256_2X_PC_XPC_MASK
#define PEF2256_2X_PC_XPC_SYPX
#define PEF2256_2X_PC_XPC_XFMS
#define PEF2256_2X_PC_XPC_XSIG
#define PEF2256_2X_PC_XPC_TCLK
#define PEF2256_2X_PC_XPC_XMFB
#define PEF2256_2X_PC_XPC_XSIGM
#define PEF2256_2X_PC_XPC_DLX
#define PEF2256_2X_PC_XPC_XCLK
#define PEF2256_2X_PC_XPC_XLT
#define PEF2256_2X_PC_XPC_GPI
#define PEF2256_2X_PC_XPC_GPOH
#define PEF2256_2X_PC_XPC_GPOL

struct pef2256_pinreg_desc {};

struct pef2256_function_desc {};

struct pef2256_pinctrl {};

static int pef2256_get_groups_count(struct pinctrl_dev *pctldev)
{}

static const char *pef2256_get_group_name(struct pinctrl_dev *pctldev,
					  unsigned int selector)
{}

static int pef2256_get_group_pins(struct pinctrl_dev *pctldev, unsigned int selector,
				  const unsigned int **pins,
				  unsigned int *num_pins)
{}

static const struct pinctrl_ops pef2256_pctlops =;

static int pef2256_get_functions_count(struct pinctrl_dev *pctldev)
{}

static const char *pef2256_get_function_name(struct pinctrl_dev *pctldev,
					     unsigned int selector)
{}

static int pef2256_get_function_groups(struct pinctrl_dev *pctldev, unsigned int selector,
				       const char * const **groups,
				       unsigned * const num_groups)
{}

static int pef2256_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
			   unsigned int group_selector)
{}

static const struct pinmux_ops pef2256_pmxops =;

#define PEF2256_PINCTRL_PIN(_number, _name, _offset, _mask)

static const struct pinctrl_pin_desc pef2256_v12_pins[] =;

static const struct pinctrl_pin_desc pef2256_v2x_pins[] =;

static const char *const pef2256_rp_groups[] =;
static const char *const pef2256_xp_groups[] =;
static const char *const pef2256_all_groups[] =;

#define PEF2256_FUNCTION(_name, _func_val, _groups)

static const struct pef2256_function_desc pef2256_v2x_functions[] =;

static const struct pef2256_function_desc pef2256_v12_functions[] =;

static int pef2256_register_pinctrl(struct pef2256_pinctrl *pef2256)
{}

static void pef2256_reset_pinmux(struct pef2256_pinctrl *pef2256)
{}

static int pef2256_pinctrl_probe(struct platform_device *pdev)
{}

static struct platform_driver pef2256_pinctrl_driver =;
module_platform_driver();

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