1 /* 2 * Internal interface between the core pin control system and the 3 * pin config 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 14 #ifdef CONFIG_PINCONF 15 16 int pinconf_check_ops(struct pinctrl_dev *pctldev); 17 int pinconf_validate_map(struct pinctrl_map const *map, int i); 18 int pinconf_map_to_setting(struct pinctrl_map const *map, 19 struct pinctrl_setting *setting); 20 void pinconf_free_setting(struct pinctrl_setting const *setting); 21 int pinconf_apply_setting(struct pinctrl_setting const *setting); 22 void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map); 23 void pinconf_show_setting(struct seq_file *s, 24 struct pinctrl_setting const *setting); 25 void pinconf_init_device_debugfs(struct dentry *devroot, 26 struct pinctrl_dev *pctldev); 27 28 /* 29 * You will only be interested in these if you're using PINCONF 30 * so don't supply any stubs for these. 31 */ 32 int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned pin, 33 unsigned long *config); 34 int pin_config_group_get(const char *dev_name, const char *pin_group, 35 unsigned long *config); 36 37 #else 38 39 static inline int pinconf_check_ops(struct pinctrl_dev *pctldev) 40 { 41 return 0; 42 } 43 44 static inline int pinconf_validate_map(struct pinctrl_map const *map, int i) 45 { 46 return 0; 47 } 48 49 static inline int pinconf_map_to_setting(struct pinctrl_map const *map, 50 struct pinctrl_setting *setting) 51 { 52 return 0; 53 } 54 55 static inline void pinconf_free_setting(struct pinctrl_setting const *setting) 56 { 57 } 58 59 static inline int pinconf_apply_setting(struct pinctrl_setting const *setting) 60 { 61 return 0; 62 } 63 64 static inline void pinconf_show_map(struct seq_file *s, 65 struct pinctrl_map const *map) 66 { 67 } 68 69 static inline void pinconf_show_setting(struct seq_file *s, 70 struct pinctrl_setting const *setting) 71 { 72 } 73 74 static inline void pinconf_init_device_debugfs(struct dentry *devroot, 75 struct pinctrl_dev *pctldev) 76 { 77 } 78 79 #endif 80 81 /* 82 * The following functions are available if the driver uses the generic 83 * pin config. 84 */ 85 86 #ifdef CONFIG_GENERIC_PINCONF 87 88 void pinconf_generic_dump_pin(struct pinctrl_dev *pctldev, 89 struct seq_file *s, unsigned pin); 90 91 void pinconf_generic_dump_group(struct pinctrl_dev *pctldev, 92 struct seq_file *s, const char *gname); 93 94 #else 95 96 static inline void pinconf_generic_dump_pin(struct pinctrl_dev *pctldev, 97 struct seq_file *s, 98 unsigned pin) 99 { 100 return; 101 } 102 103 static inline void pinconf_generic_dump_group(struct pinctrl_dev *pctldev, 104 struct seq_file *s, 105 const char *gname) 106 { 107 return; 108 } 109 110 #endif 111