#include <linux/bits.h>
#include <linux/gpio/driver.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#define PIOBU_NUM …
#define PIOBU_REG_SIZE …
#define PIOBU_BMPR …
#define PIOBU_NMPR …
#define PIOBU_WKPR …
#define PIOBU_BASE …
#define PIOBU_DET_OFFSET …
#define PIOBU_DIRECTION …
#define PIOBU_OUT …
#define PIOBU_IN …
#define PIOBU_SOD …
#define PIOBU_PDS …
#define PIOBU_HIGH …
#define PIOBU_LOW …
struct sama5d2_piobu { … };
static int sama5d2_piobu_setup_pin(struct gpio_chip *chip, unsigned int pin)
{ … }
static int sama5d2_piobu_write_value(struct gpio_chip *chip, unsigned int pin,
unsigned int mask, unsigned int value)
{ … }
static int sama5d2_piobu_read_value(struct gpio_chip *chip, unsigned int pin,
unsigned int mask)
{ … }
static int sama5d2_piobu_get_direction(struct gpio_chip *chip,
unsigned int pin)
{ … }
static int sama5d2_piobu_direction_input(struct gpio_chip *chip,
unsigned int pin)
{ … }
static int sama5d2_piobu_direction_output(struct gpio_chip *chip,
unsigned int pin, int value)
{ … }
static int sama5d2_piobu_get(struct gpio_chip *chip, unsigned int pin)
{ … }
static void sama5d2_piobu_set(struct gpio_chip *chip, unsigned int pin,
int value)
{ … }
static int sama5d2_piobu_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id sama5d2_piobu_ids[] = …;
MODULE_DEVICE_TABLE(of, sama5d2_piobu_ids);
static struct platform_driver sama5d2_piobu_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;