#include <linux/bits.h>
#include <linux/gpio/driver.h>
#include <linux/kernel.h>
#include <linux/of.h>
#include <linux/pinctrl/pinmux.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include "../pinctrl-utils.h"
#include "pinctrl-bcm63xx.h"
#define BCM6358_NUM_GPIOS …
#define BCM6358_MODE_REG …
#define BCM6358_MODE_MUX_NONE …
#define BCM6358_MODE_MUX_EBI_CS …
#define BCM6358_MODE_MUX_UART1 …
#define BCM6358_MODE_MUX_SPI_CS …
#define BCM6358_MODE_MUX_ASYNC_MODEM …
#define BCM6358_MODE_MUX_LEGACY_LED …
#define BCM6358_MODE_MUX_SERIAL_LED …
#define BCM6358_MODE_MUX_LED …
#define BCM6358_MODE_MUX_UTOPIA …
#define BCM6358_MODE_MUX_CLKRST …
#define BCM6358_MODE_MUX_PWM_SYN_CLK …
#define BCM6358_MODE_MUX_SYS_IRQ …
struct bcm6358_pingroup { … };
struct bcm6358_function { … };
struct bcm6358_priv { … };
#define BCM6358_GPIO_PIN(a, b, bit1, bit2, bit3) …
static const struct pinctrl_pin_desc bcm6358_pins[] = …;
static unsigned ebi_cs_grp_pins[] = …;
static unsigned uart1_grp_pins[] = …;
static unsigned spi_cs_grp_pins[] = …;
static unsigned async_modem_grp_pins[] = …;
static unsigned serial_led_grp_pins[] = …;
static unsigned legacy_led_grp_pins[] = …;
static unsigned led_grp_pins[] = …;
static unsigned utopia_grp_pins[] = …;
static unsigned pwm_syn_clk_grp_pins[] = …;
static unsigned sys_irq_grp_pins[] = …;
#define BCM6358_GPIO_MUX_GROUP(n, bit, dir) …
static const struct bcm6358_pingroup bcm6358_groups[] = …;
static const char * const ebi_cs_groups[] = …;
static const char * const uart1_groups[] = …;
static const char * const spi_cs_2_3_groups[] = …;
static const char * const async_modem_groups[] = …;
static const char * const legacy_led_groups[] = …;
static const char * const serial_led_groups[] = …;
static const char * const led_groups[] = …;
static const char * const clkrst_groups[] = …;
static const char * const pwm_syn_clk_groups[] = …;
static const char * const sys_irq_groups[] = …;
#define BCM6358_FUN(n) …
static const struct bcm6358_function bcm6358_funcs[] = …;
static int bcm6358_pinctrl_get_group_count(struct pinctrl_dev *pctldev)
{ … }
static const char *bcm6358_pinctrl_get_group_name(struct pinctrl_dev *pctldev,
unsigned group)
{ … }
static int bcm6358_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
unsigned group, const unsigned **pins,
unsigned *npins)
{ … }
static int bcm6358_pinctrl_get_func_count(struct pinctrl_dev *pctldev)
{ … }
static const char *bcm6358_pinctrl_get_func_name(struct pinctrl_dev *pctldev,
unsigned selector)
{ … }
static int bcm6358_pinctrl_get_groups(struct pinctrl_dev *pctldev,
unsigned selector,
const char * const **groups,
unsigned * const num_groups)
{ … }
static int bcm6358_pinctrl_set_mux(struct pinctrl_dev *pctldev,
unsigned selector, unsigned group)
{ … }
static int bcm6358_gpio_request_enable(struct pinctrl_dev *pctldev,
struct pinctrl_gpio_range *range,
unsigned offset)
{ … }
static const struct pinctrl_ops bcm6358_pctl_ops = …;
static const struct pinmux_ops bcm6358_pmx_ops = …;
static const struct bcm63xx_pinctrl_soc bcm6358_soc = …;
static int bcm6358_pinctrl_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id bcm6358_pinctrl_match[] = …;
static struct platform_driver bcm6358_pinctrl_driver = …;
builtin_platform_driver(…) …;