linux/drivers/pinctrl/mediatek/mtk-eint.c

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2014-2018 MediaTek Inc.

/*
 * Library for MediaTek External Interrupt Support
 *
 * Author: Maoguang Meng <[email protected]>
 *	   Sean Wang <[email protected]>
 *
 */

#include <linux/delay.h>
#include <linux/err.h>
#include <linux/gpio/driver.h>
#include <linux/io.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/irqdomain.h>
#include <linux/module.h>
#include <linux/of_irq.h>
#include <linux/platform_device.h>

#include "mtk-eint.h"

#define MTK_EINT_EDGE_SENSITIVE
#define MTK_EINT_LEVEL_SENSITIVE
#define MTK_EINT_DBNC_SET_DBNC_BITS
#define MTK_EINT_DBNC_MAX
#define MTK_EINT_DBNC_RST_BIT
#define MTK_EINT_DBNC_SET_EN

static const struct mtk_eint_regs mtk_generic_eint_regs =;

const unsigned int debounce_time_mt2701[] =;
EXPORT_SYMBOL_GPL();

const unsigned int debounce_time_mt6765[] =;
EXPORT_SYMBOL_GPL();

const unsigned int debounce_time_mt6795[] =;
EXPORT_SYMBOL_GPL();

static void __iomem *mtk_eint_get_offset(struct mtk_eint *eint,
					 unsigned int eint_num,
					 unsigned int offset)
{}

static unsigned int mtk_eint_can_en_debounce(struct mtk_eint *eint,
					     unsigned int eint_num)
{}

static int mtk_eint_flip_edge(struct mtk_eint *eint, int hwirq)
{}

static void mtk_eint_mask(struct irq_data *d)
{}

static void mtk_eint_unmask(struct irq_data *d)
{}

static unsigned int mtk_eint_get_mask(struct mtk_eint *eint,
				      unsigned int eint_num)
{}

static void mtk_eint_ack(struct irq_data *d)
{}

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

static int mtk_eint_irq_set_wake(struct irq_data *d, unsigned int on)
{}

static void mtk_eint_chip_write_mask(const struct mtk_eint *eint,
				     void __iomem *base, u32 *buf)
{}

static int mtk_eint_irq_request_resources(struct irq_data *d)
{}

static void mtk_eint_irq_release_resources(struct irq_data *d)
{}

static struct irq_chip mtk_eint_irq_chip =;

static unsigned int mtk_eint_hw_init(struct mtk_eint *eint)
{}

static inline void
mtk_eint_debounce_process(struct mtk_eint *eint, int index)
{}

static void mtk_eint_irq_handler(struct irq_desc *desc)
{}

int mtk_eint_do_suspend(struct mtk_eint *eint)
{}
EXPORT_SYMBOL_GPL();

int mtk_eint_do_resume(struct mtk_eint *eint)
{}
EXPORT_SYMBOL_GPL();

int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_num,
			  unsigned int debounce)
{}
EXPORT_SYMBOL_GPL();

int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n)
{}
EXPORT_SYMBOL_GPL();

int mtk_eint_do_init(struct mtk_eint *eint)
{}
EXPORT_SYMBOL_GPL();

MODULE_LICENSE();
MODULE_DESCRIPTION();