linux/drivers/pinctrl/bcm/pinctrl-bcm63268.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Driver for BCM63268 GPIO unit (pinctrl + GPIO)
 *
 * Copyright (C) 2021 Álvaro Fernández Rojas <[email protected]>
 * Copyright (C) 2016 Jonas Gorski <[email protected]>
 */

#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 BCM63268_NUM_GPIOS
#define BCM63268_NUM_LEDS

#define BCM63268_LED_REG
#define BCM63268_MODE_REG
#define BCM63268_CTRL_REG
#define BCM63268_BASEMODE_REG
#define BCM63268_BASEMODE_NAND
#define BCM63268_BASEMODE_GPIO35
#define BCM63268_BASEMODE_DECTPD
#define BCM63268_BASEMODE_VDSL_PHY_0
#define BCM63268_BASEMODE_VDSL_PHY_1
#define BCM63268_BASEMODE_VDSL_PHY_2
#define BCM63268_BASEMODE_VDSL_PHY_3

enum bcm63268_pinctrl_reg {};

struct bcm63268_function {};

#define BCM63268_PIN(a, b, basemode)

static const struct pinctrl_pin_desc bcm63268_pins[] =;

static unsigned gpio0_pins[] =;
static unsigned gpio1_pins[] =;
static unsigned gpio2_pins[] =;
static unsigned gpio3_pins[] =;
static unsigned gpio4_pins[] =;
static unsigned gpio5_pins[] =;
static unsigned gpio6_pins[] =;
static unsigned gpio7_pins[] =;
static unsigned gpio8_pins[] =;
static unsigned gpio9_pins[] =;
static unsigned gpio10_pins[] =;
static unsigned gpio11_pins[] =;
static unsigned gpio12_pins[] =;
static unsigned gpio13_pins[] =;
static unsigned gpio14_pins[] =;
static unsigned gpio15_pins[] =;
static unsigned gpio16_pins[] =;
static unsigned gpio17_pins[] =;
static unsigned gpio18_pins[] =;
static unsigned gpio19_pins[] =;
static unsigned gpio20_pins[] =;
static unsigned gpio21_pins[] =;
static unsigned gpio22_pins[] =;
static unsigned gpio23_pins[] =;
static unsigned gpio24_pins[] =;
static unsigned gpio25_pins[] =;
static unsigned gpio26_pins[] =;
static unsigned gpio27_pins[] =;
static unsigned gpio28_pins[] =;
static unsigned gpio29_pins[] =;
static unsigned gpio30_pins[] =;
static unsigned gpio31_pins[] =;
static unsigned gpio32_pins[] =;
static unsigned gpio33_pins[] =;
static unsigned gpio34_pins[] =;
static unsigned gpio35_pins[] =;
static unsigned gpio36_pins[] =;
static unsigned gpio37_pins[] =;
static unsigned gpio38_pins[] =;
static unsigned gpio39_pins[] =;
static unsigned gpio40_pins[] =;
static unsigned gpio41_pins[] =;
static unsigned gpio42_pins[] =;
static unsigned gpio43_pins[] =;
static unsigned gpio44_pins[] =;
static unsigned gpio45_pins[] =;
static unsigned gpio46_pins[] =;
static unsigned gpio47_pins[] =;
static unsigned gpio48_pins[] =;
static unsigned gpio49_pins[] =;
static unsigned gpio50_pins[] =;
static unsigned gpio51_pins[] =;

static unsigned nand_grp_pins[] =;

static unsigned dectpd_grp_pins[] =;
static unsigned vdsl_phy0_grp_pins[] =;
static unsigned vdsl_phy1_grp_pins[] =;
static unsigned vdsl_phy2_grp_pins[] =;
static unsigned vdsl_phy3_grp_pins[] =;

static struct pingroup bcm63268_groups[] =;

static const char * const led_groups[] =;

static const char * const serial_led_clk_groups[] =;

static const char * const serial_led_data_groups[] =;

static const char * const hsspi_cs4_groups[] =;

static const char * const hsspi_cs5_groups[] =;

static const char * const hsspi_cs6_groups[] =;

static const char * const hsspi_cs7_groups[] =;

static const char * const uart1_scts_groups[] =;

static const char * const uart1_srts_groups[] =;

static const char * const uart1_sdin_groups[] =;

static const char * const uart1_sdout_groups[] =;

static const char * const ntr_pulse_in_groups[] =;

static const char * const dsl_ntr_pulse_out_groups[] =;

static const char * const adsl_spi_miso_groups[] =;

static const char * const adsl_spi_mosi_groups[] =;

static const char * const vreg_clk_groups[] =;

static const char * const pcie_clkreq_b_groups[] =;

static const char * const switch_led_clk_groups[] =;

static const char * const switch_led_data_groups[] =;

static const char * const wifi_groups[] =;

static const char * const nand_groups[] =;

static const char * const dectpd_groups[] =;

static const char * const vdsl_phy_override_0_groups[] =;

static const char * const vdsl_phy_override_1_groups[] =;

static const char * const vdsl_phy_override_2_groups[] =;

static const char * const vdsl_phy_override_3_groups[] =;

#define BCM63268_LED_FUN(n)

#define BCM63268_MODE_FUN(n)

#define BCM63268_CTRL_FUN(n)

#define BCM63268_BASEMODE_FUN(n, val)

static const struct bcm63268_function bcm63268_funcs[] =;

static int bcm63268_pinctrl_get_group_count(struct pinctrl_dev *pctldev)
{}

static const char *bcm63268_pinctrl_get_group_name(struct pinctrl_dev *pctldev,
						   unsigned group)
{}

static int bcm63268_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
					   unsigned group,
					   const unsigned **pins,
					   unsigned *npins)
{}

static int bcm63268_pinctrl_get_func_count(struct pinctrl_dev *pctldev)
{}

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

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

static void bcm63268_set_gpio(struct bcm63xx_pinctrl *pc, unsigned pin)
{}

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

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

static const struct pinctrl_ops bcm63268_pctl_ops =;

static const struct pinmux_ops bcm63268_pmx_ops =;

static const struct bcm63xx_pinctrl_soc bcm63268_soc =;

static int bcm63268_pinctrl_probe(struct platform_device *pdev)
{}

static const struct of_device_id bcm63268_pinctrl_match[] =;

static struct platform_driver bcm63268_pinctrl_driver =;

builtin_platform_driver();