2022-06-07 17:11:30 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2013-08-06 17:12:33 +04:00
/*
* Utils functions to implement the pincontrol driver .
*
* Copyright ( c ) 2013 , NVIDIA Corporation .
*
* Author : Laxman Dewangan < ldewangan @ nvidia . com >
*/
# ifndef __PINCTRL_UTILS_H__
# define __PINCTRL_UTILS_H__
2022-10-07 12:53:44 +03:00
# include <linux/pinctrl/machine.h>
struct pinctrl_dev ;
struct pinctrl_map ;
2013-08-06 17:12:33 +04:00
int pinctrl_utils_reserve_map ( struct pinctrl_dev * pctldev ,
2023-11-29 19:06:46 +03:00
struct pinctrl_map * * map , unsigned int * reserved_maps ,
unsigned int * num_maps , unsigned int reserve ) ;
2013-08-06 17:12:33 +04:00
int pinctrl_utils_add_map_mux ( struct pinctrl_dev * pctldev ,
2023-11-29 19:06:46 +03:00
struct pinctrl_map * * map , unsigned int * reserved_maps ,
unsigned int * num_maps , const char * group ,
2013-08-06 17:12:33 +04:00
const char * function ) ;
int pinctrl_utils_add_map_configs ( struct pinctrl_dev * pctldev ,
2023-11-29 19:06:46 +03:00
struct pinctrl_map * * map , unsigned int * reserved_maps ,
unsigned int * num_maps , const char * group ,
unsigned long * configs , unsigned int num_configs ,
2013-08-06 17:12:33 +04:00
enum pinctrl_map_type type ) ;
int pinctrl_utils_add_config ( struct pinctrl_dev * pctldev ,
2023-11-29 19:06:46 +03:00
unsigned long * * configs , unsigned int * num_configs ,
2013-08-06 17:12:33 +04:00
unsigned long config ) ;
2016-03-31 14:44:42 +03:00
void pinctrl_utils_free_map ( struct pinctrl_dev * pctldev ,
2023-11-29 19:06:46 +03:00
struct pinctrl_map * map , unsigned int num_maps ) ;
2013-08-06 17:12:33 +04:00
# endif /* __PINCTRL_UTILS_H__ */