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 15 int pinmux_check_ops(struct pinctrl_dev *pctldev); 16 17 int pinmux_validate_map(struct pinctrl_map const *map, int i); 18 19 int pinmux_request_gpio(struct pinctrl_dev *pctldev, 20 struct pinctrl_gpio_range *range, 21 unsigned pin, unsigned gpio); 22 void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin, 23 struct pinctrl_gpio_range *range); 24 int pinmux_gpio_direction(struct pinctrl_dev *pctldev, 25 struct pinctrl_gpio_range *range, 26 unsigned pin, bool input); 27 28 int pinmux_map_to_setting(struct pinctrl_map const *map, 29 struct pinctrl_setting *setting); 30 void pinmux_free_setting(struct pinctrl_setting const *setting); 31 int pinmux_enable_setting(struct pinctrl_setting const *setting); 32 void pinmux_disable_setting(struct pinctrl_setting const *setting); 33 34 #else 35 36 static inline int pinmux_check_ops(struct pinctrl_dev *pctldev) 37 { 38 return 0; 39 } 40 41 static inline int pinmux_validate_map(struct pinctrl_map const *map, int i) 42 { 43 return 0; 44 } 45 46 static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev, 47 struct pinctrl_gpio_range *range, 48 unsigned pin, unsigned gpio) 49 { 50 return 0; 51 } 52 53 static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev, 54 unsigned pin, 55 struct pinctrl_gpio_range *range) 56 { 57 } 58 59 static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev, 60 struct pinctrl_gpio_range *range, 61 unsigned pin, bool input) 62 { 63 return 0; 64 } 65 66 static inline int pinmux_map_to_setting(struct pinctrl_map const *map, 67 struct pinctrl_setting *setting) 68 { 69 return 0; 70 } 71 72 static inline void pinmux_free_setting(struct pinctrl_setting const *setting) 73 { 74 } 75 76 static inline int pinmux_enable_setting(struct pinctrl_setting const *setting) 77 { 78 return 0; 79 } 80 81 static inline void pinmux_disable_setting( 82 struct pinctrl_setting const *setting) 83 { 84 } 85 86 #endif 87 88 #if defined(CONFIG_PINMUX) && defined(CONFIG_DEBUG_FS) 89 90 void pinmux_show_map(struct seq_file *s, struct pinctrl_map const *map); 91 void pinmux_show_setting(struct seq_file *s, 92 struct pinctrl_setting const *setting); 93 void pinmux_init_device_debugfs(struct dentry *devroot, 94 struct pinctrl_dev *pctldev); 95 96 #else 97 98 static inline void pinmux_show_map(struct seq_file *s, 99 struct pinctrl_map const *map) 100 { 101 } 102 103 static inline void pinmux_show_setting(struct seq_file *s, 104 struct pinctrl_setting const *setting) 105 { 106 } 107 108 static inline void pinmux_init_device_debugfs(struct dentry *devroot, 109 struct pinctrl_dev *pctldev) 110 { 111 } 112 113 #endif 114