2022-06-07 16:11:30 +02:00
/* SPDX-License-Identifier: GPL-2.0-only */
2013-08-06 18:42:33 +05:30
/*
* 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 18:42:33 +05:30
int pinctrl_utils_reserve_map ( struct pinctrl_dev * pctldev ,
2023-11-29 18:06:46 +02:00
struct pinctrl_map * * map , unsigned int * reserved_maps ,
unsigned int * num_maps , unsigned int reserve ) ;
2013-08-06 18:42:33 +05:30
int pinctrl_utils_add_map_mux ( struct pinctrl_dev * pctldev ,
2023-11-29 18:06:46 +02:00
struct pinctrl_map * * map , unsigned int * reserved_maps ,
unsigned int * num_maps , const char * group ,
2013-08-06 18:42:33 +05:30
const char * function ) ;
int pinctrl_utils_add_map_configs ( struct pinctrl_dev * pctldev ,
2023-11-29 18:06:46 +02: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 18:42:33 +05:30
enum pinctrl_map_type type ) ;
int pinctrl_utils_add_config ( struct pinctrl_dev * pctldev ,
2023-11-29 18:06:46 +02:00
unsigned long * * configs , unsigned int * num_configs ,
2013-08-06 18:42:33 +05:30
unsigned long config ) ;
2016-03-31 14:44:42 +03:00
void pinctrl_utils_free_map ( struct pinctrl_dev * pctldev ,
2023-11-29 18:06:46 +02:00
struct pinctrl_map * map , unsigned int num_maps ) ;
2013-08-06 18:42:33 +05:30
# endif /* __PINCTRL_UTILS_H__ */