Linux Audio

Check our new training course

Loading...
v5.9
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * Internal interface between the core pin control system and the
  4 * pin config portions
  5 *
  6 * Copyright (C) 2011 ST-Ericsson SA
  7 * Written on behalf of Linaro for ST-Ericsson
  8 * Based on bits of regulator core, gpio core and clk core
  9 *
 10 * Author: Linus Walleij <linus.walleij@linaro.org>
 11 */
 12
 
 
 
 
 
 
 
 
 
 
 13#ifdef CONFIG_PINCONF
 14
 15int pinconf_check_ops(struct pinctrl_dev *pctldev);
 16int pinconf_validate_map(const struct pinctrl_map *map, int i);
 17int pinconf_map_to_setting(const struct pinctrl_map *map,
 18			  struct pinctrl_setting *setting);
 19void pinconf_free_setting(const struct pinctrl_setting *setting);
 20int pinconf_apply_setting(const struct pinctrl_setting *setting);
 21
 22int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned pin,
 23		       unsigned long *configs, size_t nconfigs);
 24
 25/*
 26 * You will only be interested in these if you're using PINCONF
 27 * so don't supply any stubs for these.
 28 */
 29int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
 30			   unsigned long *config);
 31int pin_config_group_get(const char *dev_name, const char *pin_group,
 32			 unsigned long *config);
 33
 34#else
 35
 36static inline int pinconf_check_ops(struct pinctrl_dev *pctldev)
 37{
 38	return 0;
 39}
 40
 41static inline int pinconf_validate_map(const struct pinctrl_map *map, int i)
 42{
 43	return 0;
 44}
 45
 46static inline int pinconf_map_to_setting(const struct pinctrl_map *map,
 47			  struct pinctrl_setting *setting)
 48{
 49	return 0;
 50}
 51
 52static inline void pinconf_free_setting(const struct pinctrl_setting *setting)
 53{
 54}
 55
 56static inline int pinconf_apply_setting(const struct pinctrl_setting *setting)
 57{
 58	return 0;
 59}
 60
 61static inline int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned pin,
 62				     unsigned long *configs, size_t nconfigs)
 63{
 64	return -ENOTSUPP;
 65}
 66
 67#endif
 68
 69#if defined(CONFIG_PINCONF) && defined(CONFIG_DEBUG_FS)
 70
 71void pinconf_show_map(struct seq_file *s, const struct pinctrl_map *map);
 72void pinconf_show_setting(struct seq_file *s,
 73			  const struct pinctrl_setting *setting);
 74void pinconf_init_device_debugfs(struct dentry *devroot,
 75				 struct pinctrl_dev *pctldev);
 76
 77#else
 78
 79static inline void pinconf_show_map(struct seq_file *s,
 80				    const struct pinctrl_map *map)
 81{
 82}
 83
 84static inline void pinconf_show_setting(struct seq_file *s,
 85					const struct pinctrl_setting *setting)
 86{
 87}
 88
 89static inline void pinconf_init_device_debugfs(struct dentry *devroot,
 90					       struct pinctrl_dev *pctldev)
 91{
 92}
 93
 94#endif
 95
 96/*
 97 * The following functions are available if the driver uses the generic
 98 * pin config.
 99 */
100
101#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_DEBUG_FS)
102
103void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
104			       struct seq_file *s, const char *gname,
105			       unsigned pin);
106
107void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
108				 struct seq_file *s, unsigned long config);
109#else
110
111static inline void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
112					     struct seq_file *s,
113					     const char *gname, unsigned pin)
114{
115	return;
116}
117
118static inline void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
119					       struct seq_file *s,
120					       unsigned long config)
121{
122	return;
123}
124#endif
125
126#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_OF)
127int pinconf_generic_parse_dt_config(struct device_node *np,
128				    struct pinctrl_dev *pctldev,
129				    unsigned long **configs,
130				    unsigned int *nconfigs);
131#endif
v6.8
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * Internal interface between the core pin control system and the
  4 * pin config portions
  5 *
  6 * Copyright (C) 2011 ST-Ericsson SA
  7 * Written on behalf of Linaro for ST-Ericsson
  8 * Based on bits of regulator core, gpio core and clk core
  9 *
 10 * Author: Linus Walleij <linus.walleij@linaro.org>
 11 */
 12
 13#include <linux/errno.h>
 14
 15struct dentry;
 16struct device_node;
 17struct seq_file;
 18
 19struct pinctrl_dev;
 20struct pinctrl_map;
 21struct pinctrl_setting;
 22
 23#ifdef CONFIG_PINCONF
 24
 25int pinconf_check_ops(struct pinctrl_dev *pctldev);
 26int pinconf_validate_map(const struct pinctrl_map *map, int i);
 27int pinconf_map_to_setting(const struct pinctrl_map *map,
 28			  struct pinctrl_setting *setting);
 29void pinconf_free_setting(const struct pinctrl_setting *setting);
 30int pinconf_apply_setting(const struct pinctrl_setting *setting);
 31
 32int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned int pin,
 33		       unsigned long *configs, size_t nconfigs);
 34
 35/*
 36 * You will only be interested in these if you're using PINCONF
 37 * so don't supply any stubs for these.
 38 */
 39int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned int pin,
 40			   unsigned long *config);
 41int pin_config_group_get(const char *dev_name, const char *pin_group,
 42			 unsigned long *config);
 43
 44#else
 45
 46static inline int pinconf_check_ops(struct pinctrl_dev *pctldev)
 47{
 48	return 0;
 49}
 50
 51static inline int pinconf_validate_map(const struct pinctrl_map *map, int i)
 52{
 53	return 0;
 54}
 55
 56static inline int pinconf_map_to_setting(const struct pinctrl_map *map,
 57			  struct pinctrl_setting *setting)
 58{
 59	return 0;
 60}
 61
 62static inline void pinconf_free_setting(const struct pinctrl_setting *setting)
 63{
 64}
 65
 66static inline int pinconf_apply_setting(const struct pinctrl_setting *setting)
 67{
 68	return 0;
 69}
 70
 71static inline int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned int pin,
 72				     unsigned long *configs, size_t nconfigs)
 73{
 74	return -ENOTSUPP;
 75}
 76
 77#endif
 78
 79#if defined(CONFIG_PINCONF) && defined(CONFIG_DEBUG_FS)
 80
 81void pinconf_show_map(struct seq_file *s, const struct pinctrl_map *map);
 82void pinconf_show_setting(struct seq_file *s,
 83			  const struct pinctrl_setting *setting);
 84void pinconf_init_device_debugfs(struct dentry *devroot,
 85				 struct pinctrl_dev *pctldev);
 86
 87#else
 88
 89static inline void pinconf_show_map(struct seq_file *s,
 90				    const struct pinctrl_map *map)
 91{
 92}
 93
 94static inline void pinconf_show_setting(struct seq_file *s,
 95					const struct pinctrl_setting *setting)
 96{
 97}
 98
 99static inline void pinconf_init_device_debugfs(struct dentry *devroot,
100					       struct pinctrl_dev *pctldev)
101{
102}
103
104#endif
105
106/*
107 * The following functions are available if the driver uses the generic
108 * pin config.
109 */
110
111#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_DEBUG_FS)
112
113void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
114			       struct seq_file *s, const char *gname,
115			       unsigned int pin);
116
117void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
118				 struct seq_file *s, unsigned long config);
119#else
120
121static inline void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
122					     struct seq_file *s,
123					     const char *gname, unsigned int pin)
124{
125	return;
126}
127
128static inline void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
129					       struct seq_file *s,
130					       unsigned long config)
131{
132	return;
133}
134#endif
135
136#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_OF)
137int pinconf_generic_parse_dt_config(struct device_node *np,
138				    struct pinctrl_dev *pctldev,
139				    unsigned long **configs,
140				    unsigned int *nconfigs);
141#endif