#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(…) …;