Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.3-rc7 160 lines 4.1 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Internal interface between the core pin control system and the 4 * pinmux 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#ifdef CONFIG_PINMUX 13 14int pinmux_check_ops(struct pinctrl_dev *pctldev); 15 16int pinmux_validate_map(const struct pinctrl_map *map, int i); 17 18int pinmux_request_gpio(struct pinctrl_dev *pctldev, 19 struct pinctrl_gpio_range *range, 20 unsigned pin, unsigned gpio); 21void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin, 22 struct pinctrl_gpio_range *range); 23int pinmux_gpio_direction(struct pinctrl_dev *pctldev, 24 struct pinctrl_gpio_range *range, 25 unsigned pin, bool input); 26 27int pinmux_map_to_setting(const struct pinctrl_map *map, 28 struct pinctrl_setting *setting); 29void pinmux_free_setting(const struct pinctrl_setting *setting); 30int pinmux_enable_setting(const struct pinctrl_setting *setting); 31void pinmux_disable_setting(const struct pinctrl_setting *setting); 32 33#else 34 35static inline int pinmux_check_ops(struct pinctrl_dev *pctldev) 36{ 37 return 0; 38} 39 40static inline int pinmux_validate_map(const struct pinctrl_map *map, int i) 41{ 42 return 0; 43} 44 45static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev, 46 struct pinctrl_gpio_range *range, 47 unsigned pin, unsigned gpio) 48{ 49 return 0; 50} 51 52static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev, 53 unsigned pin, 54 struct pinctrl_gpio_range *range) 55{ 56} 57 58static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev, 59 struct pinctrl_gpio_range *range, 60 unsigned pin, bool input) 61{ 62 return 0; 63} 64 65static inline int pinmux_map_to_setting(const struct pinctrl_map *map, 66 struct pinctrl_setting *setting) 67{ 68 return 0; 69} 70 71static inline void pinmux_free_setting(const struct pinctrl_setting *setting) 72{ 73} 74 75static inline int pinmux_enable_setting(const struct pinctrl_setting *setting) 76{ 77 return 0; 78} 79 80static inline void pinmux_disable_setting(const struct pinctrl_setting *setting) 81{ 82} 83 84#endif 85 86#if defined(CONFIG_PINMUX) && defined(CONFIG_DEBUG_FS) 87 88void pinmux_show_map(struct seq_file *s, const struct pinctrl_map *map); 89void pinmux_show_setting(struct seq_file *s, 90 const struct pinctrl_setting *setting); 91void pinmux_init_device_debugfs(struct dentry *devroot, 92 struct pinctrl_dev *pctldev); 93 94#else 95 96static inline void pinmux_show_map(struct seq_file *s, 97 const struct pinctrl_map *map) 98{ 99} 100 101static inline void pinmux_show_setting(struct seq_file *s, 102 const struct pinctrl_setting *setting) 103{ 104} 105 106static inline void pinmux_init_device_debugfs(struct dentry *devroot, 107 struct pinctrl_dev *pctldev) 108{ 109} 110 111#endif 112 113#ifdef CONFIG_GENERIC_PINMUX_FUNCTIONS 114 115/** 116 * struct function_desc - generic function descriptor 117 * @name: name of the function 118 * @group_names: array of pin group names 119 * @num_group_names: number of pin group names 120 * @data: pin controller driver specific data 121 */ 122struct function_desc { 123 const char *name; 124 const char **group_names; 125 int num_group_names; 126 void *data; 127}; 128 129int pinmux_generic_get_function_count(struct pinctrl_dev *pctldev); 130 131const char * 132pinmux_generic_get_function_name(struct pinctrl_dev *pctldev, 133 unsigned int selector); 134 135int pinmux_generic_get_function_groups(struct pinctrl_dev *pctldev, 136 unsigned int selector, 137 const char * const **groups, 138 unsigned * const num_groups); 139 140struct function_desc *pinmux_generic_get_function(struct pinctrl_dev *pctldev, 141 unsigned int selector); 142 143int pinmux_generic_add_function(struct pinctrl_dev *pctldev, 144 const char *name, 145 const char **groups, 146 unsigned const num_groups, 147 void *data); 148 149int pinmux_generic_remove_function(struct pinctrl_dev *pctldev, 150 unsigned int selector); 151 152void pinmux_generic_free_functions(struct pinctrl_dev *pctldev); 153 154#else 155 156static inline void pinmux_generic_free_functions(struct pinctrl_dev *pctldev) 157{ 158} 159 160#endif /* CONFIG_GENERIC_PINMUX_FUNCTIONS */