]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/pinctrl/pinmux.h
pinctrl: Store mapping table as a list of chunks
[mirror_ubuntu-artful-kernel.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);
2744e8af
LW
16void pinmux_init_device_debugfs(struct dentry *devroot,
17 struct pinctrl_dev *pctldev);
befe5bdf
LW
18int pinmux_request_gpio(struct pinctrl_dev *pctldev,
19 struct pinctrl_gpio_range *range,
20 unsigned pin, unsigned gpio);
21void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
22 struct pinctrl_gpio_range *range);
23int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
24 struct pinctrl_gpio_range *range,
25 unsigned pin, bool input);
26static inline void pinmux_init_pinctrl_handle(struct pinctrl *p)
27{
28 p->func_selector = UINT_MAX;
29 INIT_LIST_HEAD(&p->groups);
30}
31int pinmux_apply_muxmap(struct pinctrl_dev *pctldev,
32 struct pinctrl *p,
33 struct device *dev,
34 const char *devname,
35 struct pinctrl_map const *map);
36void pinmux_put(struct pinctrl *p);
37int pinmux_enable(struct pinctrl *p);
38void pinmux_disable(struct pinctrl *p);
39void pinmux_dbg_show(struct seq_file *s, struct pinctrl *p);
2744e8af
LW
40
41#else
42
b9130b77 43static inline int pinmux_check_ops(struct pinctrl_dev *pctldev)
2744e8af
LW
44{
45 return 0;
46}
47
48static inline void pinmux_init_device_debugfs(struct dentry *devroot,
49 struct pinctrl_dev *pctldev)
50{
51}
52
befe5bdf
LW
53static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev,
54 struct pinctrl_gpio_range *range,
55 unsigned pin, unsigned gpio)
56{
57 return 0;
58}
59
60static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev,
61 unsigned pin,
62 struct pinctrl_gpio_range *range)
63{
64}
65
66static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
67 struct pinctrl_gpio_range *range,
68 unsigned pin, bool input)
69{
70 return 0;
71}
72
73static inline void pinmux_init_pinctrl_handle(struct pinctrl *p)
2744e8af
LW
74{
75}
76
befe5bdf
LW
77static inline int pinmux_apply_muxmap(struct pinctrl_dev *pctldev,
78 struct pinctrl *p,
79 struct device *dev,
80 const char *devname,
81 struct pinctrl_map const *map)
2744e8af
LW
82{
83 return 0;
84}
85
befe5bdf
LW
86static inline void pinmux_put(struct pinctrl *p)
87{
88}
89
90static inline int pinmux_enable(struct pinctrl *p)
91{
92}
93
94static inline void pinmux_disable(struct pinctrl *p)
95{
96}
97
98void pinmux_dbg_show(struct seq_file *s, struct pinctrl *p)
2744e8af
LW
99{
100}
101
102#endif