root/drivers/pinctrl/mediatek/pinctrl-paris.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (C) 2018 MediaTek Inc.
   4  *
   5  * Author: Sean Wang <sean.wang@mediatek.com>
   6  *         Zhiyong Tao <zhiyong.tao@mediatek.com>
   7  *         Hongzhou.Yang <hongzhou.yang@mediatek.com>
   8  */
   9 #ifndef __PINCTRL_PARIS_H
  10 #define __PINCTRL_PARIS_H
  11 
  12 #include <linux/io.h>
  13 #include <linux/init.h>
  14 #include <linux/of.h>
  15 #include <linux/of_platform.h>
  16 #include <linux/platform_device.h>
  17 #include <linux/pinctrl/pinctrl.h>
  18 #include <linux/pinctrl/pinmux.h>
  19 #include <linux/pinctrl/pinconf.h>
  20 #include <linux/pinctrl/pinconf-generic.h>
  21 
  22 #include "../core.h"
  23 #include "../pinconf.h"
  24 #include "../pinctrl-utils.h"
  25 #include "../pinmux.h"
  26 #include "mtk-eint.h"
  27 #include "pinctrl-mtk-common-v2.h"
  28 
  29 #define MTK_RANGE(_a)           { .range = (_a), .nranges = ARRAY_SIZE(_a), }
  30 
  31 #define MTK_EINT_FUNCTION(_eintmux, _eintnum)                           \
  32         {                                                       \
  33                 .eint_m = _eintmux,                                     \
  34                 .eint_n = _eintnum,                                     \
  35         }
  36 
  37 #define MTK_FUNCTION(_val, _name)                               \
  38         {                                                       \
  39                 .muxval = _val,                                 \
  40                 .name = _name,                                  \
  41         }
  42 
  43 #define MTK_PIN(_number, _name, _eint, _drv_n, ...) {   \
  44                 .number = _number,                      \
  45                 .name = _name,                          \
  46                 .eint = _eint,                          \
  47                 .drv_n = _drv_n,                        \
  48                 .funcs = (struct mtk_func_desc[]){      \
  49                         __VA_ARGS__, { } },                             \
  50         }
  51 
  52 #define PINCTRL_PIN_GROUP(name, id)                     \
  53         {                                               \
  54                 name,                                   \
  55                 id##_pins,                              \
  56                 ARRAY_SIZE(id##_pins),                  \
  57                 id##_funcs,                             \
  58         }
  59 
  60 int mtk_paris_pinctrl_probe(struct platform_device *pdev,
  61                             const struct mtk_pin_soc *soc);
  62 
  63 extern const struct dev_pm_ops mtk_paris_pinctrl_pm_ops;
  64 
  65 #endif /* __PINCTRL_PARIS_H */

/* [<][>][^][v][top][bottom][index][help] */