1e634cf4eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
21eb207a9SLaxman Dewangan /*
31eb207a9SLaxman Dewangan  * Utils functions to implement the pincontrol driver.
41eb207a9SLaxman Dewangan  *
51eb207a9SLaxman Dewangan  * Copyright (c) 2013, NVIDIA Corporation.
61eb207a9SLaxman Dewangan  *
71eb207a9SLaxman Dewangan  * Author: Laxman Dewangan <ldewangan@nvidia.com>
81eb207a9SLaxman Dewangan  */
91eb207a9SLaxman Dewangan #ifndef __PINCTRL_UTILS_H__
101eb207a9SLaxman Dewangan #define __PINCTRL_UTILS_H__
111eb207a9SLaxman Dewangan 
12*e5530adcSAndy Shevchenko #include <linux/pinctrl/machine.h>
13*e5530adcSAndy Shevchenko 
14*e5530adcSAndy Shevchenko struct pinctrl_dev;
15*e5530adcSAndy Shevchenko struct pinctrl_map;
16*e5530adcSAndy Shevchenko 
171eb207a9SLaxman Dewangan int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
181eb207a9SLaxman Dewangan 		struct pinctrl_map **map, unsigned *reserved_maps,
191eb207a9SLaxman Dewangan 		unsigned *num_maps, unsigned reserve);
201eb207a9SLaxman Dewangan int pinctrl_utils_add_map_mux(struct pinctrl_dev *pctldev,
211eb207a9SLaxman Dewangan 		struct pinctrl_map **map, unsigned *reserved_maps,
221eb207a9SLaxman Dewangan 		unsigned *num_maps, const char *group,
231eb207a9SLaxman Dewangan 		const char *function);
241eb207a9SLaxman Dewangan int pinctrl_utils_add_map_configs(struct pinctrl_dev *pctldev,
251eb207a9SLaxman Dewangan 		struct pinctrl_map **map, unsigned *reserved_maps,
261eb207a9SLaxman Dewangan 		unsigned *num_maps, const char *group,
271eb207a9SLaxman Dewangan 		unsigned long *configs, unsigned num_configs,
281eb207a9SLaxman Dewangan 		enum pinctrl_map_type type);
291eb207a9SLaxman Dewangan int pinctrl_utils_add_config(struct pinctrl_dev *pctldev,
301eb207a9SLaxman Dewangan 		unsigned long **configs, unsigned *num_configs,
311eb207a9SLaxman Dewangan 		unsigned long config);
32d32f7fd3SIrina Tirdea void pinctrl_utils_free_map(struct pinctrl_dev *pctldev,
331eb207a9SLaxman Dewangan 		struct pinctrl_map *map, unsigned num_maps);
341eb207a9SLaxman Dewangan 
351eb207a9SLaxman Dewangan #endif /* __PINCTRL_UTILS_H__ */
36