linux/drivers/gpio/gpio-lpc18xx.c

// SPDX-License-Identifier: GPL-2.0
/*
 * GPIO driver for NXP LPC18xx/43xx.
 *
 * Copyright (C) 2018 Vladimir Zapolskiy <[email protected]>
 * Copyright (C) 2015 Joachim Eastwood <[email protected]>
 *
 */

#include <linux/clk.h>
#include <linux/gpio/driver.h>
#include <linux/io.h>
#include <linux/irqdomain.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>

/* LPC18xx GPIO register offsets */
#define LPC18XX_REG_DIR(n)

#define LPC18XX_MAX_PORTS
#define LPC18XX_PINS_PER_PORT

/* LPC18xx GPIO pin interrupt controller register offsets */
#define LPC18XX_GPIO_PIN_IC_ISEL
#define LPC18XX_GPIO_PIN_IC_IENR
#define LPC18XX_GPIO_PIN_IC_SIENR
#define LPC18XX_GPIO_PIN_IC_CIENR
#define LPC18XX_GPIO_PIN_IC_IENF
#define LPC18XX_GPIO_PIN_IC_SIENF
#define LPC18XX_GPIO_PIN_IC_CIENF
#define LPC18XX_GPIO_PIN_IC_RISE
#define LPC18XX_GPIO_PIN_IC_FALL
#define LPC18XX_GPIO_PIN_IC_IST

#define NR_LPC18XX_GPIO_PIN_IC_IRQS

struct lpc18xx_gpio_pin_ic {};

struct lpc18xx_gpio_chip {};

static inline void lpc18xx_gpio_pin_ic_isel(struct lpc18xx_gpio_pin_ic *ic,
					    u32 pin, bool set)
{}

static inline void lpc18xx_gpio_pin_ic_set(struct lpc18xx_gpio_pin_ic *ic,
					   u32 pin, u32 reg)
{}

static void lpc18xx_gpio_pin_ic_mask(struct irq_data *d)
{}

static void lpc18xx_gpio_pin_ic_unmask(struct irq_data *d)
{}

static void lpc18xx_gpio_pin_ic_eoi(struct irq_data *d)
{}

static int lpc18xx_gpio_pin_ic_set_type(struct irq_data *d, unsigned int type)
{}

static struct irq_chip lpc18xx_gpio_pin_ic =;

static int lpc18xx_gpio_pin_ic_domain_alloc(struct irq_domain *domain,
					    unsigned int virq,
					    unsigned int nr_irqs, void *data)
{}

static const struct irq_domain_ops lpc18xx_gpio_pin_ic_domain_ops =;

static int lpc18xx_gpio_pin_ic_probe(struct lpc18xx_gpio_chip *gc)
{}

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

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

static int lpc18xx_gpio_direction(struct gpio_chip *chip, unsigned offset,
				  bool out)
{}

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

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

static const struct gpio_chip lpc18xx_chip =;

static int lpc18xx_gpio_probe(struct platform_device *pdev)
{}

static void lpc18xx_gpio_remove(struct platform_device *pdev)
{}

static const struct of_device_id lpc18xx_gpio_match[] =;
MODULE_DEVICE_TABLE(of, lpc18xx_gpio_match);

static struct platform_driver lpc18xx_gpio_driver =;
module_platform_driver();

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