root/drivers/pinctrl/berlin/berlin.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Marvell Berlin SoC pinctrl driver.
   4  *
   5  * Copyright (C) 2014 Marvell Technology Group Ltd.
   6  *
   7  * Antoine Ténart <antoine.tenart@free-electrons.com>
   8  */
   9 
  10 #ifndef __PINCTRL_BERLIN_H
  11 #define __PINCTRL_BERLIN_H
  12 
  13 struct berlin_desc_function {
  14         const char      *name;
  15         u8              muxval;
  16 };
  17 
  18 struct berlin_desc_group {
  19         const char                      *name;
  20         u8                              offset;
  21         u8                              bit_width;
  22         u8                              lsb;
  23         struct berlin_desc_function     *functions;
  24 };
  25 
  26 struct berlin_pinctrl_desc {
  27         const struct berlin_desc_group  *groups;
  28         unsigned                        ngroups;
  29 };
  30 
  31 struct berlin_pinctrl_function {
  32         const char      *name;
  33         const char      **groups;
  34         unsigned        ngroups;
  35 };
  36 
  37 #define BERLIN_PINCTRL_GROUP(_name, _offset, _width, _lsb, ...)         \
  38         {                                                               \
  39                 .name = _name,                                          \
  40                 .offset = _offset,                                      \
  41                 .bit_width = _width,                                    \
  42                 .lsb = _lsb,                                            \
  43                 .functions = (struct berlin_desc_function[]){           \
  44                         __VA_ARGS__, { } },                             \
  45         }
  46 
  47 #define BERLIN_PINCTRL_FUNCTION(_muxval, _name)         \
  48         {                                               \
  49                 .name = _name,                          \
  50                 .muxval = _muxval,                      \
  51         }
  52 
  53 #define BERLIN_PINCTRL_FUNCTION_UNKNOWN         {}
  54 
  55 int berlin_pinctrl_probe(struct platform_device *pdev,
  56                          const struct berlin_pinctrl_desc *desc);
  57 
  58 int berlin_pinctrl_probe_regmap(struct platform_device *pdev,
  59                                 const struct berlin_pinctrl_desc *desc,
  60                                 struct regmap *regmap);
  61 
  62 #endif /* __PINCTRL_BERLIN_H */

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