pinmux.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. int pinmux_check_ops(struct pinctrl_dev *pctldev);
  15. int pinmux_validate_map(struct pinctrl_map const *map, int i);
  16. int pinmux_request_gpio(struct pinctrl_dev *pctldev,
  17. struct pinctrl_gpio_range *range,
  18. unsigned pin, unsigned gpio);
  19. void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
  20. struct pinctrl_gpio_range *range);
  21. int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
  22. struct pinctrl_gpio_range *range,
  23. unsigned pin, bool input);
  24. int pinmux_map_to_setting(struct pinctrl_map const *map,
  25. struct pinctrl_setting *setting);
  26. void pinmux_free_setting(struct pinctrl_setting const *setting);
  27. int pinmux_enable_setting(struct pinctrl_setting const *setting);
  28. void pinmux_disable_setting(struct pinctrl_setting const *setting);
  29. void pinmux_show_map(struct seq_file *s, struct pinctrl_map const *map);
  30. void pinmux_show_setting(struct seq_file *s,
  31. struct pinctrl_setting const *setting);
  32. void pinmux_init_device_debugfs(struct dentry *devroot,
  33. struct pinctrl_dev *pctldev);
  34. #else
  35. static inline int pinmux_check_ops(struct pinctrl_dev *pctldev)
  36. {
  37. return 0;
  38. }
  39. static inline int pinmux_validate_map(struct pinctrl_map const *map, int i)
  40. {
  41. return 0;
  42. }
  43. static inline int pinmux_request_gpio(struct pinctrl_dev *pctldev,
  44. struct pinctrl_gpio_range *range,
  45. unsigned pin, unsigned gpio)
  46. {
  47. return 0;
  48. }
  49. static inline void pinmux_free_gpio(struct pinctrl_dev *pctldev,
  50. unsigned pin,
  51. struct pinctrl_gpio_range *range)
  52. {
  53. }
  54. static inline int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
  55. struct pinctrl_gpio_range *range,
  56. unsigned pin, bool input)
  57. {
  58. return 0;
  59. }
  60. static inline int pinmux_map_to_setting(struct pinctrl_map const *map,
  61. struct pinctrl_setting *setting)
  62. {
  63. return 0;
  64. }
  65. static inline void pinmux_free_setting(struct pinctrl_setting const *setting)
  66. {
  67. }
  68. static inline int pinmux_enable_setting(struct pinctrl_setting const *setting)
  69. {
  70. return 0;
  71. }
  72. static inline void pinmux_disable_setting(
  73. struct pinctrl_setting const *setting)
  74. {
  75. }
  76. static inline void pinmux_show_map(struct seq_file *s,
  77. struct pinctrl_map const *map)
  78. {
  79. }
  80. static inline void pinmux_show_setting(struct seq_file *s,
  81. struct pinctrl_setting const *setting)
  82. {
  83. }
  84. static inline void pinmux_init_device_debugfs(struct dentry *devroot,
  85. struct pinctrl_dev *pctldev)
  86. {
  87. }
  88. #endif