#include <linux/init.h>
#include <linux/gpio/driver.h>
#include <linux/platform_device.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/timb_gpio.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#define DRIVER_NAME …
#define TGPIOVAL …
#define TGPIODIR …
#define TGPIO_IER …
#define TGPIO_ISR …
#define TGPIO_IPR …
#define TGPIO_ICR …
#define TGPIO_FLR …
#define TGPIO_LVR …
#define TGPIO_VER …
#define TGPIO_BFLR …
struct timbgpio { … };
static int timbgpio_update_bit(struct gpio_chip *gpio, unsigned index,
unsigned offset, bool enabled)
{ … }
static int timbgpio_gpio_direction_input(struct gpio_chip *gpio, unsigned nr)
{ … }
static int timbgpio_gpio_get(struct gpio_chip *gpio, unsigned nr)
{ … }
static int timbgpio_gpio_direction_output(struct gpio_chip *gpio,
unsigned nr, int val)
{ … }
static void timbgpio_gpio_set(struct gpio_chip *gpio,
unsigned nr, int val)
{ … }
static int timbgpio_to_irq(struct gpio_chip *gpio, unsigned offset)
{ … }
static void timbgpio_irq_disable(struct irq_data *d)
{ … }
static void timbgpio_irq_enable(struct irq_data *d)
{ … }
static int timbgpio_irq_type(struct irq_data *d, unsigned trigger)
{ … }
static void timbgpio_irq(struct irq_desc *desc)
{ … }
static struct irq_chip timbgpio_irqchip = …;
static int timbgpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver timbgpio_platform_driver = …;
builtin_platform_driver(…) …;