linux/drivers/gpio/gpio-exar.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * GPIO driver for Exar XR17V35X chip
 *
 * Copyright (C) 2015 Sudip Mukherjee <[email protected]>
 */

#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/gpio/driver.h>
#include <linux/idr.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>

#define EXAR_OFFSET_MPIOLVL_LO
#define EXAR_OFFSET_MPIOSEL_LO
#define EXAR_OFFSET_MPIOLVL_HI
#define EXAR_OFFSET_MPIOSEL_HI

/*
 * The Device Configuration and UART Configuration Registers
 * for each UART channel take 1KB of memory address space.
 */
#define EXAR_UART_CHANNEL_SIZE

#define DRIVER_NAME

static DEFINE_IDA(ida_index);

struct exar_gpio_chip {};

static unsigned int
exar_offset_to_sel_addr(struct exar_gpio_chip *exar_gpio, unsigned int offset)
{}

static unsigned int
exar_offset_to_lvl_addr(struct exar_gpio_chip *exar_gpio, unsigned int offset)
{}

static unsigned int
exar_offset_to_bit(struct exar_gpio_chip *exar_gpio, unsigned int offset)
{}

static int exar_get_direction(struct gpio_chip *chip, unsigned int offset)
{}

static int exar_get_value(struct gpio_chip *chip, unsigned int offset)
{}

static void exar_set_value(struct gpio_chip *chip, unsigned int offset,
			   int value)
{}

static int exar_direction_output(struct gpio_chip *chip, unsigned int offset,
				 int value)
{}

static int exar_direction_input(struct gpio_chip *chip, unsigned int offset)
{}

static void exar_devm_ida_free(void *data)
{}

static const struct regmap_config exar_regmap_config =;

static int gpio_exar_probe(struct platform_device *pdev)
{}

static struct platform_driver gpio_exar_driver =;

module_platform_driver();

MODULE_ALIAS();
MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();