linux/drivers/pinctrl/pinmux.h
<<
>>
Prefs
   1/*
   2 * Internal interface between the core pin control system and the
   3 * pinmux portions
   4 *
   5 * Copyright (C) 2011 ST-Ericsson SA
   6 * Written on behalf of Linaro for ST-Ericsson
   7 * Based on bits of regulator core, gpio core and clk core
   8 *
   9 * Author: Linus Walleij <linus.walleij@linaro.org>
  10 *
  11 * License terms: GNU General Public License (GPL) version 2
  12 */
  13#ifdef CONFIG_PINMUX
  14
  15int pinmux_check_ops(struct pinctrl_dev *pctldev);
  16
  17int pinmux_validate_map(struct pinctrl_map const *map, int i);
  18
  19int pinmux_request_gpio(struct pinctrl_dev *pctldev,
  20                        struct pinctrl_gpio_range *range,
  21                        unsigned pin, unsigned gpio);
  22void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
  23                      struct pinctrl_gpio_range *range);
  24int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
  25                          struct pinctrl_gpio_range *range,
  26                          unsigned pin, bool input);
  27
  28int pinmux_map_to_setting(struct pinctrl_map const *map,
  29                          struct pinctrl_setting *setting);
  30void pinmux_free_setting(struct pinctrl_setting const *setting);
  31int pinmux_enable_setting(struct pinctrl_setting const *setting);
  32void pinmux_disable_setting(struct pinctrl_setting const *setting);
  33
  34#else
  35
  36static inline int pinmux_check_ops(struct pinctrl_dev *pctldev)
  37{
  38        return 0;
  39}
  40
  41static inline int pinmux_validate_map(struct pinctrl_map const *map, int i)
  42{
  43        return 0;
  44}
  45
  46static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev,
  47                        struct pinctrl_gpio_range *range,
  48                        unsigned pin, unsigned gpio)
  49{
  50        return 0;
  51}
  52
  53static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev,
  54                                    unsigned pin,
  55                                    struct pinctrl_gpio_range *range)
  56{
  57}
  58
  59static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
  60                                        struct pinctrl_gpio_range *range,
  61                                        unsigned pin, bool input)
  62{
  63        return 0;
  64}
  65
  66static inline int pinmux_map_to_setting(struct pinctrl_map const *map,
  67                          struct pinctrl_setting *setting)
  68{
  69        return 0;
  70}
  71
  72static inline void pinmux_free_setting(struct pinctrl_setting const *setting)
  73{
  74}
  75
  76static inline int pinmux_enable_setting(struct pinctrl_setting const *setting)
  77{
  78        return 0;
  79}
  80
  81static inline void pinmux_disable_setting(
  82                        struct pinctrl_setting const *setting)
  83{
  84}
  85
  86#endif
  87
  88#if defined(CONFIG_PINMUX) && defined(CONFIG_DEBUG_FS)
  89
  90void pinmux_show_map(struct seq_file *s, struct pinctrl_map const *map);
  91void pinmux_show_setting(struct seq_file *s,
  92                         struct pinctrl_setting const *setting);
  93void pinmux_init_device_debugfs(struct dentry *devroot,
  94                                struct pinctrl_dev *pctldev);
  95
  96#else
  97
  98static inline void pinmux_show_map(struct seq_file *s,
  99                                   struct pinctrl_map const *map)
 100{
 101}
 102
 103static inline void pinmux_show_setting(struct seq_file *s,
 104                                       struct pinctrl_setting const *setting)
 105{
 106}
 107
 108static inline void pinmux_init_device_debugfs(struct dentry *devroot,
 109                                              struct pinctrl_dev *pctldev)
 110{
 111}
 112
 113#endif
 114