#include <linux/err.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinconf.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/pinctrl/pinmux.h>
#include "../core.h"
#include "../pinctrl-utils.h"
#define CYGNUS_NUM_IOMUX_REGS …
#define CYGNUS_NUM_MUX_PER_REG …
#define CYGNUS_NUM_IOMUX …
struct cygnus_mux { … };
struct cygnus_mux_log { … };
struct cygnus_pin_group { … };
struct cygnus_pin_function { … };
struct cygnus_pinctrl { … };
struct cygnus_gpio_mux { … };
struct cygnus_pin { … };
#define CYGNUS_PIN_DESC(p, n, i, o, s) …
static struct cygnus_pin cygnus_pins[] = …;
static const unsigned bsc1_pins[] = …;
static const unsigned pcie_clkreq_pins[] = …;
static const unsigned i2s2_0_pins[] = …;
static const unsigned i2s2_1_pins[] = …;
static const unsigned i2s2_2_pins[] = …;
static const unsigned i2s2_3_pins[] = …;
static const unsigned i2s2_4_pins[] = …;
static const unsigned pwm4_pins[] = …;
static const unsigned pwm5_pins[] = …;
static const unsigned key0_pins[] = …;
static const unsigned key1_pins[] = …;
static const unsigned key2_pins[] = …;
static const unsigned key3_pins[] = …;
static const unsigned key4_pins[] = …;
static const unsigned key5_pins[] = …;
static const unsigned key6_pins[] = …;
static const unsigned audio_dte0_pins[] = …;
static const unsigned key7_pins[] = …;
static const unsigned audio_dte1_pins[] = …;
static const unsigned key8_pins[] = …;
static const unsigned key9_pins[] = …;
static const unsigned key10_pins[] = …;
static const unsigned key11_pins[] = …;
static const unsigned key12_pins[] = …;
static const unsigned key13_pins[] = …;
static const unsigned key14_pins[] = …;
static const unsigned audio_dte2_pins[] = …;
static const unsigned key15_pins[] = …;
static const unsigned audio_dte3_pins[] = …;
static const unsigned pwm0_pins[] = …;
static const unsigned pwm1_pins[] = …;
static const unsigned pwm2_pins[] = …;
static const unsigned pwm3_pins[] = …;
static const unsigned sdio0_pins[] = …;
static const unsigned smart_card0_pins[] = …;
static const unsigned i2s0_0_pins[] = …;
static const unsigned spdif_pins[] = …;
static const unsigned smart_card1_pins[] = …;
static const unsigned i2s1_0_pins[] = …;
static const unsigned spi0_pins[] = …;
static const unsigned spi1_pins[] = …;
static const unsigned spi2_pins[] = …;
static const unsigned spi3_pins[] = …;
static const unsigned sw_led0_0_pins[] = …;
static const unsigned d1w_pins[] = …;
static const unsigned uart4_pins[] = …;
static const unsigned sw_led2_0_pins[] = …;
static const unsigned lcd_pins[] = …;
static const unsigned sram_0_pins[] = …;
static const unsigned spi5_pins[] = …;
static const unsigned uart0_pins[] = …;
static const unsigned sw_led0_1_pins[] = …;
static const unsigned uart1_dte_pins[] = …;
static const unsigned uart2_pins[] = …;
static const unsigned uart1_pins[] = …;
static const unsigned uart3_pins[] = …;
static const unsigned qspi_0_pins[] = …;
static const unsigned nand_pins[] = …;
static const unsigned sdio0_cd_pins[] = …;
static const unsigned sdio0_mmc_pins[] = …;
static const unsigned sdio1_data_0_pins[] = …;
static const unsigned can0_pins[] = …;
static const unsigned spi4_0_pins[] = …;
static const unsigned sdio1_data_1_pins[] = …;
static const unsigned can1_pins[] = …;
static const unsigned spi4_1_pins[] = …;
static const unsigned sdio1_cd_pins[] = …;
static const unsigned sdio1_led_pins[] = …;
static const unsigned sw_led2_1_pins[] = …;
static const unsigned sdio1_mmc_pins[] = …;
static const unsigned cam_led_pins[] = …;
static const unsigned sw_led1_pins[] = …;
static const unsigned cam_0_pins[] = …;
static const unsigned cam_1_pins[] = …;
static const unsigned sram_1_pins[] = …;
static const unsigned qspi_1_pins[] = …;
static const unsigned smart_card0_fcb_pins[] = …;
static const unsigned i2s0_1_pins[] = …;
static const unsigned smart_card1_fcb_pins[] = …;
static const unsigned i2s1_1_pins[] = …;
static const unsigned gpio0_3p3_pins[] = …;
static const unsigned usb0_oc_pins[] = …;
static const unsigned gpio1_3p3_pins[] = …;
static const unsigned usb1_oc_pins[] = …;
static const unsigned gpio2_3p3_pins[] = …;
static const unsigned usb2_oc_pins[] = …;
#define CYGNUS_PIN_GROUP(group_name, off, sh, al) …
static const struct cygnus_pin_group cygnus_pin_groups[] = …;
static const char * const i2s0_grps[] = …;
static const char * const i2s1_grps[] = …;
static const char * const i2s2_grps[] = …;
static const char * const spdif_grps[] = …;
static const char * const pwm0_grps[] = …;
static const char * const pwm1_grps[] = …;
static const char * const pwm2_grps[] = …;
static const char * const pwm3_grps[] = …;
static const char * const pwm4_grps[] = …;
static const char * const pwm5_grps[] = …;
static const char * const key_grps[] = …;
static const char * const audio_dte_grps[] = …;
static const char * const smart_card0_grps[] = …;
static const char * const smart_card1_grps[] = …;
static const char * const spi0_grps[] = …;
static const char * const spi1_grps[] = …;
static const char * const spi2_grps[] = …;
static const char * const spi3_grps[] = …;
static const char * const spi4_grps[] = …;
static const char * const spi5_grps[] = …;
static const char * const sw_led0_grps[] = …;
static const char * const sw_led1_grps[] = …;
static const char * const sw_led2_grps[] = …;
static const char * const d1w_grps[] = …;
static const char * const lcd_grps[] = …;
static const char * const sram_grps[] = …;
static const char * const uart0_grps[] = …;
static const char * const uart1_grps[] = …;
static const char * const uart2_grps[] = …;
static const char * const uart3_grps[] = …;
static const char * const uart4_grps[] = …;
static const char * const qspi_grps[] = …;
static const char * const nand_grps[] = …;
static const char * const sdio0_grps[] = …;
static const char * const sdio1_grps[] = …;
static const char * const can0_grps[] = …;
static const char * const can1_grps[] = …;
static const char * const cam_grps[] = …;
static const char * const bsc1_grps[] = …;
static const char * const pcie_clkreq_grps[] = …;
static const char * const usb0_oc_grps[] = …;
static const char * const usb1_oc_grps[] = …;
static const char * const usb2_oc_grps[] = …;
#define CYGNUS_PIN_FUNCTION(func) …
static const struct cygnus_pin_function cygnus_pin_functions[] = …;
static int cygnus_get_groups_count(struct pinctrl_dev *pctrl_dev)
{ … }
static const char *cygnus_get_group_name(struct pinctrl_dev *pctrl_dev,
unsigned selector)
{ … }
static int cygnus_get_group_pins(struct pinctrl_dev *pctrl_dev,
unsigned selector, const unsigned **pins,
unsigned *num_pins)
{ … }
static void cygnus_pin_dbg_show(struct pinctrl_dev *pctrl_dev,
struct seq_file *s, unsigned offset)
{ … }
static const struct pinctrl_ops cygnus_pinctrl_ops = …;
static int cygnus_get_functions_count(struct pinctrl_dev *pctrl_dev)
{ … }
static const char *cygnus_get_function_name(struct pinctrl_dev *pctrl_dev,
unsigned selector)
{ … }
static int cygnus_get_function_groups(struct pinctrl_dev *pctrl_dev,
unsigned selector,
const char * const **groups,
unsigned * const num_groups)
{ … }
static int cygnus_pinmux_set(struct cygnus_pinctrl *pinctrl,
const struct cygnus_pin_function *func,
const struct cygnus_pin_group *grp,
struct cygnus_mux_log *mux_log)
{ … }
static int cygnus_pinmux_set_mux(struct pinctrl_dev *pctrl_dev,
unsigned func_select, unsigned grp_select)
{ … }
static int cygnus_gpio_request_enable(struct pinctrl_dev *pctrl_dev,
struct pinctrl_gpio_range *range,
unsigned pin)
{ … }
static void cygnus_gpio_disable_free(struct pinctrl_dev *pctrl_dev,
struct pinctrl_gpio_range *range,
unsigned pin)
{ … }
static const struct pinmux_ops cygnus_pinmux_ops = …;
static struct pinctrl_desc cygnus_pinctrl_desc = …;
static int cygnus_mux_log_init(struct cygnus_pinctrl *pinctrl)
{ … }
static int cygnus_pinmux_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id cygnus_pinmux_of_match[] = …;
static struct platform_driver cygnus_pinmux_driver = …;
static int __init cygnus_pinmux_init(void)
{ … }
arch_initcall(cygnus_pinmux_init);