#include <linux/gpio/driver.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#define HISI_GPIO_SWPORT_DR_SET_WX …
#define HISI_GPIO_SWPORT_DR_CLR_WX …
#define HISI_GPIO_SWPORT_DDR_SET_WX …
#define HISI_GPIO_SWPORT_DDR_CLR_WX …
#define HISI_GPIO_SWPORT_DDR_ST_WX …
#define HISI_GPIO_INTEN_SET_WX …
#define HISI_GPIO_INTEN_CLR_WX …
#define HISI_GPIO_INTMASK_SET_WX …
#define HISI_GPIO_INTMASK_CLR_WX …
#define HISI_GPIO_INTTYPE_EDGE_SET_WX …
#define HISI_GPIO_INTTYPE_EDGE_CLR_WX …
#define HISI_GPIO_INT_POLARITY_SET_WX …
#define HISI_GPIO_INT_POLARITY_CLR_WX …
#define HISI_GPIO_DEBOUNCE_SET_WX …
#define HISI_GPIO_DEBOUNCE_CLR_WX …
#define HISI_GPIO_INTSTATUS_WX …
#define HISI_GPIO_PORTA_EOI_WX …
#define HISI_GPIO_EXT_PORT_WX …
#define HISI_GPIO_INTCOMB_MASK_WX …
#define HISI_GPIO_INT_DEDGE_SET …
#define HISI_GPIO_INT_DEDGE_CLR …
#define HISI_GPIO_INT_DEDGE_ST …
#define HISI_GPIO_LINE_NUM_MAX …
#define HISI_GPIO_DRIVER_NAME …
struct hisi_gpio { … };
static inline u32 hisi_gpio_read_reg(struct gpio_chip *chip,
unsigned int off)
{ … }
static inline void hisi_gpio_write_reg(struct gpio_chip *chip,
unsigned int off, u32 val)
{ … }
static void hisi_gpio_set_debounce(struct gpio_chip *chip, unsigned int off,
u32 debounce)
{ … }
static int hisi_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
unsigned long config)
{ … }
static void hisi_gpio_set_ack(struct irq_data *d)
{ … }
static void hisi_gpio_irq_set_mask(struct irq_data *d)
{ … }
static void hisi_gpio_irq_clr_mask(struct irq_data *d)
{ … }
static int hisi_gpio_irq_set_type(struct irq_data *d, u32 type)
{ … }
static void hisi_gpio_irq_enable(struct irq_data *d)
{ … }
static void hisi_gpio_irq_disable(struct irq_data *d)
{ … }
static void hisi_gpio_irq_handler(struct irq_desc *desc)
{ … }
static const struct irq_chip hisi_gpio_irq_chip = …;
static void hisi_gpio_init_irq(struct hisi_gpio *hisi_gpio)
{ … }
static const struct acpi_device_id hisi_gpio_acpi_match[] = …;
MODULE_DEVICE_TABLE(acpi, hisi_gpio_acpi_match);
static const struct of_device_id hisi_gpio_dts_match[] = …;
MODULE_DEVICE_TABLE(of, hisi_gpio_dts_match);
static void hisi_gpio_get_pdata(struct device *dev,
struct hisi_gpio *hisi_gpio)
{ … }
static int hisi_gpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver hisi_gpio_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;