linux/drivers/pinctrl/pinctrl-loongson2.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Author: zhanghongchen <[email protected]>
 *         Yinbo Zhu <[email protected]>
 * Copyright (C) 2022-2023 Loongson Technology Corporation Limited
 */

#include <linux/init.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/mod_devicetable.h>
#include <linux/pinctrl/pinmux.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/bitops.h>
#include <linux/io.h>
#include <linux/seq_file.h>

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

#define PMX_GROUP(name, offset, bitv)

#define SPECIFIC_GROUP(group)

#define FUNCTION(fn)

struct loongson2_pinctrl {};

struct loongson2_pmx_group {};

struct loongson2_pmx_func {};

#define LOONGSON2_PIN(x)
static const struct pinctrl_pin_desc loongson2_pctrl_pins[] =;

static const unsigned int gpio_pins[] =;
static const unsigned int sdio_pins[] =;
static const unsigned int can1_pins[] =;
static const unsigned int can0_pins[] =;
static const unsigned int pwm3_pins[] =;
static const unsigned int pwm2_pins[] =;
static const unsigned int pwm1_pins[] =;
static const unsigned int pwm0_pins[] =;
static const unsigned int i2c1_pins[] =;
static const unsigned int i2c0_pins[] =;
static const unsigned int nand_pins[] =;
static const unsigned int sata_led_pins[] =;
static const unsigned int i2s_pins[]    =;
static const unsigned int hda_pins[]    =;

static struct loongson2_pmx_group loongson2_pmx_groups[] =;

SPECIFIC_GROUP(sdio);
SPECIFIC_GROUP(can1);
SPECIFIC_GROUP(can0);
SPECIFIC_GROUP(pwm3);
SPECIFIC_GROUP(pwm2);
SPECIFIC_GROUP(pwm1);
SPECIFIC_GROUP(pwm0);
SPECIFIC_GROUP(i2c1);
SPECIFIC_GROUP(i2c0);
SPECIFIC_GROUP(nand);
SPECIFIC_GROUP(sata_led);
SPECIFIC_GROUP(i2s);
SPECIFIC_GROUP(hda);

static const char * const gpio_groups[] =;

static const struct loongson2_pmx_func loongson2_pmx_functions[] =;

static int loongson2_get_groups_count(struct pinctrl_dev *pcdev)
{}

static const char *loongson2_get_group_name(struct pinctrl_dev *pcdev,
					unsigned int selector)
{}

static int loongson2_get_group_pins(struct pinctrl_dev *pcdev, unsigned int selector,
			const unsigned int **pins, unsigned int *num_pins)
{}

static void loongson2_pin_dbg_show(struct pinctrl_dev *pcdev, struct seq_file *s,
			       unsigned int offset)
{}

static const struct pinctrl_ops loongson2_pctrl_ops =;

static int loongson2_pmx_set_mux(struct pinctrl_dev *pcdev, unsigned int func_num,
			      unsigned int group_num)
{}

static int loongson2_pmx_get_funcs_count(struct pinctrl_dev *pcdev)
{}

static const char *loongson2_pmx_get_func_name(struct pinctrl_dev *pcdev,
				    unsigned int selector)
{}

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

static const struct pinmux_ops loongson2_pmx_ops =;

static int loongson2_pinctrl_probe(struct platform_device *pdev)
{}

static const struct of_device_id loongson2_pinctrl_dt_match[] =;
MODULE_DEVICE_TABLE(of, loongson2_pinctrl_dt_match);

static struct platform_driver loongson2_pinctrl_driver =;

static int __init loongson2_pinctrl_init(void)
{}
arch_initcall(loongson2_pinctrl_init);

static void __exit loongson2_pinctrl_exit(void)
{}
module_exit(loongson2_pinctrl_exit);

MODULE_DESCRIPTION();
MODULE_LICENSE();