These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / include / linux / pinctrl / pinmux.h
index 511bda9..ace60d7 100644 (file)
@@ -56,6 +56,9 @@ struct pinctrl_dev;
  *     depending on whether the GPIO is configured as input or output,
  *     a direction selector function may be implemented as a backing
  *     to the GPIO controllers that need pin muxing.
+ * @strict: do not allow simultaneous use of the same pin for GPIO and another
+ *     function. Check both gpio_owner and mux_owner strictly before approving
+ *     the pin request.
  */
 struct pinmux_ops {
        int (*request) (struct pinctrl_dev *pctldev, unsigned offset);
@@ -66,7 +69,7 @@ struct pinmux_ops {
        int (*get_function_groups) (struct pinctrl_dev *pctldev,
                                  unsigned selector,
                                  const char * const **groups,
-                                 unsigned * const num_groups);
+                                 unsigned *num_groups);
        int (*set_mux) (struct pinctrl_dev *pctldev, unsigned func_selector,
                        unsigned group_selector);
        int (*gpio_request_enable) (struct pinctrl_dev *pctldev,
@@ -79,6 +82,7 @@ struct pinmux_ops {
                                   struct pinctrl_gpio_range *range,
                                   unsigned offset,
                                   bool input);
+       bool strict;
 };
 
 #endif /* CONFIG_PINMUX */