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
v4.17
 
  1/*
  2 * Internal interface between the core pin control system and the
  3 * pin config 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
 14#ifdef CONFIG_PINCONF
 15
 16int pinconf_check_ops(struct pinctrl_dev *pctldev);
 17int pinconf_validate_map(const struct pinctrl_map *map, int i);
 18int pinconf_map_to_setting(const struct pinctrl_map *map,
 19			  struct pinctrl_setting *setting);
 20void pinconf_free_setting(const struct pinctrl_setting *setting);
 21int pinconf_apply_setting(const struct pinctrl_setting *setting);
 22
 23int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned pin,
 24		       unsigned long *configs, size_t nconfigs);
 25
 26/*
 27 * You will only be interested in these if you're using PINCONF
 28 * so don't supply any stubs for these.
 29 */
 30int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
 31			   unsigned long *config);
 32int pin_config_group_get(const char *dev_name, const char *pin_group,
 33			 unsigned long *config);
 34
 35#else
 36
 37static inline int pinconf_check_ops(struct pinctrl_dev *pctldev)
 38{
 39	return 0;
 40}
 41
 42static inline int pinconf_validate_map(const struct pinctrl_map *map, int i)
 43{
 44	return 0;
 45}
 46
 47static inline int pinconf_map_to_setting(const struct pinctrl_map *map,
 48			  struct pinctrl_setting *setting)
 49{
 50	return 0;
 51}
 52
 53static inline void pinconf_free_setting(const struct pinctrl_setting *setting)
 54{
 55}
 56
 57static inline int pinconf_apply_setting(const struct pinctrl_setting *setting)
 58{
 59	return 0;
 60}
 61
 62static inline int pinconf_set_config(struct pinctrl_dev *pctldev, unsigned pin,
 63				     unsigned long *configs, size_t nconfigs)
 64{
 65	return -ENOTSUPP;
 66}
 67
 68#endif
 69
 70#if defined(CONFIG_PINCONF) && defined(CONFIG_DEBUG_FS)
 71
 72void pinconf_show_map(struct seq_file *s, const struct pinctrl_map *map);
 73void pinconf_show_setting(struct seq_file *s,
 74			  const struct pinctrl_setting *setting);
 75void pinconf_init_device_debugfs(struct dentry *devroot,
 76				 struct pinctrl_dev *pctldev);
 77
 78#else
 79
 80static inline void pinconf_show_map(struct seq_file *s,
 81				    const struct pinctrl_map *map)
 82{
 83}
 84
 85static inline void pinconf_show_setting(struct seq_file *s,
 86					const struct pinctrl_setting *setting)
 87{
 88}
 89
 90static inline void pinconf_init_device_debugfs(struct dentry *devroot,
 91					       struct pinctrl_dev *pctldev)
 92{
 93}
 94
 95#endif
 96
 97/*
 98 * The following functions are available if the driver uses the generic
 99 * pin config.
100 */
101
102#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_DEBUG_FS)
103
104void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
105			       struct seq_file *s, const char *gname,
106			       unsigned pin);
107
108void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
109				 struct seq_file *s, unsigned long config);
110#else
111
112static inline void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev,
113					     struct seq_file *s,
114					     const char *gname, unsigned pin)
115{
116	return;
117}
118
119static inline void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
120					       struct seq_file *s,
121					       unsigned long config)
122{
123	return;
124}
125#endif
126
127#if defined(CONFIG_GENERIC_PINCONF) && defined(CONFIG_OF)
128int pinconf_generic_parse_dt_config(struct device_node *np,
129				    struct pinctrl_dev *pctldev,
130				    unsigned long **configs,
131				    unsigned int *nconfigs);
132#endif