blob: 1500ae88f87cf34d75dab424616996458243d815 [file] [log] [blame]
Linus Walleij2744e8a2011-05-02 20:50:54 +02001/*
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
Tony Lindgrenb9130b72012-01-24 16:28:08 -080015int pinmux_check_ops(struct pinctrl_dev *pctldev);
Stephen Warren7ecdb162012-03-02 13:05:45 -070016
Linus Walleijbefe5bd2012-02-09 19:47:48 +010017int pinmux_request_gpio(struct pinctrl_dev *pctldev,
18 struct pinctrl_gpio_range *range,
19 unsigned pin, unsigned gpio);
20void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
21 struct pinctrl_gpio_range *range);
22int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
23 struct pinctrl_gpio_range *range,
24 unsigned pin, bool input);
Stephen Warren7ecdb162012-03-02 13:05:45 -070025
26int pinmux_map_to_setting(struct pinctrl_map const *map,
27 struct pinctrl_setting *setting);
28void pinmux_free_setting(struct pinctrl_setting const *setting);
29int pinmux_enable_setting(struct pinctrl_setting const *setting);
30void pinmux_disable_setting(struct pinctrl_setting const *setting);
31
32void pinmux_dbg_show(struct seq_file *s, struct pinctrl_setting const *setting);
Stephen Warren03665e02012-02-19 23:45:45 -070033void pinmux_init_device_debugfs(struct dentry *devroot,
34 struct pinctrl_dev *pctldev);
Linus Walleij2744e8a2011-05-02 20:50:54 +020035
36#else
37
Tony Lindgrenb9130b72012-01-24 16:28:08 -080038static inline int pinmux_check_ops(struct pinctrl_dev *pctldev)
Linus Walleij2744e8a2011-05-02 20:50:54 +020039{
40 return 0;
41}
42
Linus Walleijbefe5bd2012-02-09 19:47:48 +010043static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev,
44 struct pinctrl_gpio_range *range,
45 unsigned pin, unsigned gpio)
Linus Walleij2744e8a2011-05-02 20:50:54 +020046{
47 return 0;
48}
49
Linus Walleijbefe5bd2012-02-09 19:47:48 +010050static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev,
51 unsigned pin,
52 struct pinctrl_gpio_range *range)
53{
54}
55
56static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
57 struct pinctrl_gpio_range *range,
58 unsigned pin, bool input)
59{
60 return 0;
61}
62
Stephen Warren7ecdb162012-03-02 13:05:45 -070063static inline int pinmux_map_to_setting(struct pinctrl_map const *map,
64 struct pinctrl_setting *setting)
Linus Walleijbefe5bd2012-02-09 19:47:48 +010065{
66 return 0;
67}
68
Stephen Warren7ecdb162012-03-02 13:05:45 -070069static inline void pinmux_free_setting(struct pinctrl_setting const *setting)
Linus Walleijbefe5bd2012-02-09 19:47:48 +010070{
71}
72
Stephen Warren7ecdb162012-03-02 13:05:45 -070073static inline int pinmux_enable_setting(struct pinctrl_setting const *setting)
Linus Walleijbefe5bd2012-02-09 19:47:48 +010074{
Stephen Warren7ecdb162012-03-02 13:05:45 -070075 return 0;
Linus Walleijbefe5bd2012-02-09 19:47:48 +010076}
77
Stephen Warren7ecdb162012-03-02 13:05:45 -070078static inline void pinmux_disable_setting(
79 struct pinctrl_setting const *setting)
Linus Walleijbefe5bd2012-02-09 19:47:48 +010080{
81}
82
Stephen Warren03665e02012-02-19 23:45:45 -070083static inline void pinmux_init_device_debugfs(struct dentry *devroot,
84 struct pinctrl_dev *pctldev)
85{
86}
87
88static inline void pinmux_dbg_show(struct seq_file *s, struct pinctrl *p)
Linus Walleij2744e8a2011-05-02 20:50:54 +020089{
90}
91
92#endif