diff options
author | Maoguang Meng <maoguang.meng@mediatek.com> | 2015-01-21 13:28:16 +0800 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-03-18 02:02:15 +0100 |
commit | d9819eb9cd3252fe45d52500f0f12980ee040177 (patch) | |
tree | f0f75f8fc38700bea1868d0458453c793bdd0dad /drivers/pinctrl/mediatek/pinctrl-mtk-common.h | |
parent | a6df410d420aa4ff316797d352f69e7ebae5ff98 (diff) | |
download | lwn-d9819eb9cd3252fe45d52500f0f12980ee040177.tar.gz lwn-d9819eb9cd3252fe45d52500f0f12980ee040177.zip |
pinctrl: mediatek: Add EINT support to MTK pinctrl driver.
MTK SoC support external interrupt(EINT) from most SoC pins.
Add EINT support to pinctrl driver.
Signed-off-by: Maoguang Meng <maoguang.meng@mediatek.com>
Signed-off-by: Hongzhou Yang <hongzhou.yang@mediatek.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/mediatek/pinctrl-mtk-common.h')
-rw-r--r-- | drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.h b/drivers/pinctrl/mediatek/pinctrl-mtk-common.h index 95a9d57ca1fd..8d7d32b68da5 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.h +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.h @@ -16,10 +16,16 @@ #define __PINCTRL_MTK_COMMON_H #include <linux/pinctrl/pinctrl.h> -#include <linux/spinlock.h> #include <linux/regmap.h> #define NO_EINT_SUPPORT 255 +#define MTK_CHIP_TYPE_BASE 0 +#define MTK_CHIP_TYPE_PMIC 1 +#define MT_EDGE_SENSITIVE 0 +#define MT_LEVEL_SENSITIVE 1 +#define EINT_DBNC_SET_DBNC_BITS 4 +#define EINT_DBNC_RST_BIT (0x1 << 1) +#define EINT_DBNC_SET_EN (0x1 << 0) struct mtk_desc_function { const char *name; @@ -115,6 +121,27 @@ struct mtk_pin_drv_grp { .grp = _grp, \ } +struct mtk_eint_offsets { + const char *name; + unsigned int stat; + unsigned int ack; + unsigned int mask; + unsigned int mask_set; + unsigned int mask_clr; + unsigned int sens; + unsigned int sens_set; + unsigned int sens_clr; + unsigned int pol; + unsigned int pol_set; + unsigned int pol_clr; + unsigned int dom_en; + unsigned int dbnc_ctrl; + unsigned int dbnc_set; + unsigned int dbnc_clr; + u8 port_mask; + u8 ports; +}; + /** * struct mtk_pinctrl_devdata - Provide HW GPIO related data. * @pins: An array describing all pins the pin controller affects. @@ -165,6 +192,10 @@ struct mtk_pinctrl_devdata { unsigned char port_shf; unsigned char port_mask; unsigned char port_align; + unsigned char chip_type; + struct mtk_eint_offsets eint_offsets; + unsigned int ap_num; + unsigned int db_cnt; }; struct mtk_pinctrl { @@ -177,6 +208,8 @@ struct mtk_pinctrl { const char **grp_names; struct pinctrl_dev *pctl_dev; const struct mtk_pinctrl_devdata *devdata; + void __iomem *eint_reg_base; + struct irq_domain *domain; }; int mtk_pctrl_init(struct platform_device *pdev, |