#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/io.h>
#include <linux/err.h>
#include <linux/mcb.h>
#include <linux/bitops.h>
#include <linux/gpio/driver.h>
#define MEN_Z127_CTRL …
#define MEN_Z127_PSR …
#define MEN_Z127_IRQR …
#define MEN_Z127_GPIODR …
#define MEN_Z127_IER1 …
#define MEN_Z127_IER2 …
#define MEN_Z127_DBER …
#define MEN_Z127_ODER …
#define GPIO_TO_DBCNT_REG(gpio) …
#define MEN_Z127_DB_MIN_US …
#define MEN_Z127_DB_MAX_US …
#define MEN_Z127_DB_IN_RANGE(db) …
struct men_z127_gpio { … };
static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio,
unsigned debounce)
{ … }
static int men_z127_set_single_ended(struct gpio_chip *gc,
unsigned offset,
enum pin_config_param param)
{ … }
static int men_z127_set_config(struct gpio_chip *gc, unsigned offset,
unsigned long config)
{ … }
static int men_z127_probe(struct mcb_device *mdev,
const struct mcb_device_id *id)
{ … }
static void men_z127_remove(struct mcb_device *mdev)
{ … }
static const struct mcb_device_id men_z127_ids[] = …;
MODULE_DEVICE_TABLE(mcb, men_z127_ids);
static struct mcb_driver men_z127_driver = …;
module_mcb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_IMPORT_NS(…);