pinctrl: fix and simplify locking
[linux-2.6-block.git] / drivers / pinctrl / pinmux.h
CommitLineData
2744e8af
LW
1/*
2 * Internal interface between the core pin control system and the
3 * pinmux portions
4 *
5 * Copyright (C) 2011 ST-Ericsson SA
6 * Written on behalf of Linaro for ST-Ericsson
7 * Based on bits of regulator core, gpio core and clk core
8 *
9 * Author: Linus Walleij <linus.walleij@linaro.org>
10 *
11 * License terms: GNU General Public License (GPL) version 2
12 */
13#ifdef CONFIG_PINMUX
14
b9130b77 15int pinmux_check_ops(struct pinctrl_dev *pctldev);
befe5bdf
LW
16int pinmux_request_gpio(struct pinctrl_dev *pctldev,
17 struct pinctrl_gpio_range *range,
18 unsigned pin, unsigned gpio);
19void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
20 struct pinctrl_gpio_range *range);
21int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
22 struct pinctrl_gpio_range *range,
23 unsigned pin, bool input);
24static inline void pinmux_init_pinctrl_handle(struct pinctrl *p)
25{
befe5bdf
LW
26 INIT_LIST_HEAD(&p->groups);
27}
28int pinmux_apply_muxmap(struct pinctrl_dev *pctldev,
29 struct pinctrl *p,
30 struct device *dev,
31 const char *devname,
32 struct pinctrl_map const *map);
33void pinmux_put(struct pinctrl *p);
34int pinmux_enable(struct pinctrl *p);
35void pinmux_disable(struct pinctrl *p);
03665e0f
SW
36void pinmux_init_device_debugfs(struct dentry *devroot,
37 struct pinctrl_dev *pctldev);
befe5bdf 38void pinmux_dbg_show(struct seq_file *s, struct pinctrl *p);
2744e8af
LW
39
40#else
41
b9130b77 42static inline int pinmux_check_ops(struct pinctrl_dev *pctldev)
2744e8af
LW
43{
44 return 0;
45}
46
befe5bdf
LW
47static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev,
48 struct pinctrl_gpio_range *range,
49 unsigned pin, unsigned gpio)
50{
51 return 0;
52}
53
54static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev,
55 unsigned pin,
56 struct pinctrl_gpio_range *range)
57{
58}
59
60static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
61 struct pinctrl_gpio_range *range,
62 unsigned pin, bool input)
63{
64 return 0;
65}
66
67static inline void pinmux_init_pinctrl_handle(struct pinctrl *p)
2744e8af
LW
68{
69}
70
befe5bdf
LW
71static inline int pinmux_apply_muxmap(struct pinctrl_dev *pctldev,
72 struct pinctrl *p,
73 struct device *dev,
74 const char *devname,
75 struct pinctrl_map const *map)
2744e8af
LW
76{
77 return 0;
78}
79
befe5bdf
LW
80static inline void pinmux_put(struct pinctrl *p)
81{
82}
83
84static inline int pinmux_enable(struct pinctrl *p)
85{
86}
87
88static inline void pinmux_disable(struct pinctrl *p)
89{
90}
91
03665e0f
SW
92static inline void pinmux_init_device_debugfs(struct dentry *devroot,
93 struct pinctrl_dev *pctldev)
94{
95}
96
97static inline void pinmux_dbg_show(struct seq_file *s, struct pinctrl *p)
2744e8af
LW
98{
99}
100
101#endif