linux/drivers/pinctrl/cirrus/pinctrl-cs42l43.c

// SPDX-License-Identifier: GPL-2.0
//
// CS42L43 Pinctrl and GPIO driver
//
// Copyright (c) 2023 Cirrus Logic, Inc. and
//                    Cirrus Logic International Semiconductor Ltd.

#include <linux/array_size.h>
#include <linux/bits.h>
#include <linux/build_bug.h>
#include <linux/err.h>
#include <linux/gpio/driver.h>
#include <linux/mfd/cs42l43.h>
#include <linux/mfd/cs42l43-regs.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/string_choices.h>

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

#include "../pinctrl-utils.h"

#define CS42L43_NUM_GPIOS

struct cs42l43_pin {};

struct cs42l43_pin_data {};

#define CS42L43_PIN(_number, _name, _reg, _field)

static const struct pinctrl_pin_desc cs42l43_pin_pins[] =;

static const unsigned int cs42l43_pin_gpio1_pins[] =;
static const unsigned int cs42l43_pin_gpio2_pins[] =;
static const unsigned int cs42l43_pin_gpio3_pins[] =;
static const unsigned int cs42l43_pin_asp_pins[] =;
static const unsigned int cs42l43_pin_pdmout2_pins[] =;
static const unsigned int cs42l43_pin_pdmout1_pins[] =;
static const unsigned int cs42l43_pin_i2c_pins[] =;
static const unsigned int cs42l43_pin_spi_pins[] =;

#define CS42L43_PINGROUP(_name)

static const struct pingroup cs42l43_pin_groups[] =;

static int cs42l43_pin_get_groups_count(struct pinctrl_dev *pctldev)
{}

static const char *cs42l43_pin_get_group_name(struct pinctrl_dev *pctldev,
					      unsigned int group_idx)
{}

static int cs42l43_pin_get_group_pins(struct pinctrl_dev *pctldev,
				      unsigned int group_idx,
				      const unsigned int **pins,
				      unsigned int *num_pins)
{}

static const struct pinctrl_ops cs42l43_pin_group_ops =;

enum cs42l43_pin_funcs {};

static const char * const cs42l43_pin_funcs[] =;

static const char * const cs42l43_pin_gpio_groups[] =;
static const char * const cs42l43_pin_spdif_groups[] =;
static const char * const cs42l43_pin_irq_groups[] =;
static const char * const cs42l43_pin_shutter_groups[] =;

static const struct pinfunction cs42l43_pin_func_groups[] =;

static_assert();
static_assert();

static int cs42l43_pin_get_func_count(struct pinctrl_dev *pctldev)
{}

static const char *cs42l43_pin_get_func_name(struct pinctrl_dev *pctldev,
					     unsigned int func_idx)
{}

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

static int cs42l43_pin_set_mux(struct pinctrl_dev *pctldev,
			       unsigned int func_idx, unsigned int group_idx)
{}

static int cs42l43_gpio_set_direction(struct pinctrl_dev *pctldev,
				      struct pinctrl_gpio_range *range,
				      unsigned int offset, bool input)
{}

static int cs42l43_gpio_request_enable(struct pinctrl_dev *pctldev,
				       struct pinctrl_gpio_range *range,
				       unsigned int offset)
{}

static void cs42l43_gpio_disable_free(struct pinctrl_dev *pctldev,
				      struct pinctrl_gpio_range *range,
				      unsigned int offset)
{}

static const struct pinmux_ops cs42l43_pin_mux_ops =;

static const unsigned int cs42l43_pin_drv_str_ma[] =;

static int cs42l43_pin_get_drv_str(struct cs42l43_pin *priv, unsigned int pin)
{}

static int cs42l43_pin_set_drv_str(struct cs42l43_pin *priv, unsigned int pin,
				   unsigned int ma)
{}

static int cs42l43_pin_get_db(struct cs42l43_pin *priv, unsigned int pin)
{}

static int cs42l43_pin_set_db(struct cs42l43_pin *priv, unsigned int pin,
			      unsigned int us)
{}

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

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

static int cs42l43_pin_config_group_get(struct pinctrl_dev *pctldev,
					unsigned int selector, unsigned long *config)
{}

static int cs42l43_pin_config_group_set(struct pinctrl_dev *pctldev,
					unsigned int selector,
					unsigned long *configs,
					unsigned int num_configs)
{}

static const struct pinconf_ops cs42l43_pin_conf_ops =;

static struct pinctrl_desc cs42l43_pin_desc =;

static int cs42l43_gpio_get(struct gpio_chip *chip, unsigned int offset)
{}

static void cs42l43_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
{}

static int cs42l43_gpio_direction_out(struct gpio_chip *chip,
				      unsigned int offset, int value)
{}

static int cs42l43_gpio_add_pin_ranges(struct gpio_chip *chip)
{}

static int cs42l43_pin_probe(struct platform_device *pdev)
{}

static const struct platform_device_id cs42l43_pin_id_table[] =;
MODULE_DEVICE_TABLE(platform, cs42l43_pin_id_table);

static struct platform_driver cs42l43_pin_driver =;
module_platform_driver();

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