Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
pinconf.h
Go to the documentation of this file.
1 /*
2  * Interface the pinconfig portions of the pinctrl subsystem
3  *
4  * Copyright (C) 2011 ST-Ericsson SA
5  * Written on behalf of Linaro for ST-Ericsson
6  * This interface is used in the core to keep track of pins.
7  *
8  * Author: Linus Walleij <[email protected]>
9  *
10  * License terms: GNU General Public License (GPL) version 2
11  */
12 #ifndef __LINUX_PINCTRL_PINCONF_H
13 #define __LINUX_PINCTRL_PINCONF_H
14 
15 #ifdef CONFIG_PINCONF
16 
17 struct pinctrl_dev;
18 struct seq_file;
19 
38 struct pinconf_ops {
39 #ifdef CONFIG_GENERIC_PINCONF
40  bool is_generic;
41 #endif
42  int (*pin_config_get) (struct pinctrl_dev *pctldev,
43  unsigned pin,
44  unsigned long *config);
45  int (*pin_config_set) (struct pinctrl_dev *pctldev,
46  unsigned pin,
47  unsigned long config);
48  int (*pin_config_group_get) (struct pinctrl_dev *pctldev,
49  unsigned selector,
50  unsigned long *config);
51  int (*pin_config_group_set) (struct pinctrl_dev *pctldev,
52  unsigned selector,
53  unsigned long config);
54  void (*pin_config_dbg_show) (struct pinctrl_dev *pctldev,
55  struct seq_file *s,
56  unsigned offset);
57  void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev,
58  struct seq_file *s,
59  unsigned selector);
60  void (*pin_config_config_dbg_show) (struct pinctrl_dev *pctldev,
61  struct seq_file *s,
62  unsigned long config);
63 };
64 
65 #endif
66 
67 #endif /* __LINUX_PINCTRL_PINCONF_H */