Merge tag 'fcoe' into for-linus
[deliverable/linux.git] / drivers / pinctrl / pinconf.c
index 694c3ace45204c11eeed4518f82b901c92489b59..e875f21a5908a7aca89ca13fa75c4dcab5e7b0d3 100644 (file)
@@ -75,98 +75,6 @@ int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
        return ops->pin_config_get(pctldev, pin, config);
 }
 
-/**
- * pin_config_get() - get the configuration of a single pin parameter
- * @dev_name: name of the pin controller device for this pin
- * @name: name of the pin to get the config for
- * @config: the config pointed to by this argument will be filled in with the
- *     current pin state, it can be used directly by drivers as a numeral, or
- *     it can be dereferenced to any struct.
- */
-int pin_config_get(const char *dev_name, const char *name,
-                         unsigned long *config)
-{
-       struct pinctrl_dev *pctldev;
-       int pin;
-
-       pctldev = get_pinctrl_dev_from_devname(dev_name);
-       if (!pctldev) {
-               pin = -EINVAL;
-               return pin;
-       }
-
-       mutex_lock(&pctldev->mutex);
-
-       pin = pin_get_from_name(pctldev, name);
-       if (pin < 0)
-               goto unlock;
-
-       pin = pin_config_get_for_pin(pctldev, pin, config);
-
-unlock:
-       mutex_unlock(&pctldev->mutex);
-       return pin;
-}
-EXPORT_SYMBOL(pin_config_get);
-
-static int pin_config_set_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
-                          unsigned long config)
-{
-       const struct pinconf_ops *ops = pctldev->desc->confops;
-       int ret;
-
-       if (!ops || !ops->pin_config_set) {
-               dev_err(pctldev->dev, "cannot configure pin, missing "
-                       "config function in driver\n");
-               return -EINVAL;
-       }
-
-       ret = ops->pin_config_set(pctldev, pin, config);
-       if (ret) {
-               dev_err(pctldev->dev,
-                       "unable to set pin configuration on pin %d\n", pin);
-               return ret;
-       }
-
-       return 0;
-}
-
-/**
- * pin_config_set() - set the configuration of a single pin parameter
- * @dev_name: name of pin controller device for this pin
- * @name: name of the pin to set the config for
- * @config: the config in this argument will contain the desired pin state, it
- *     can be used directly by drivers as a numeral, or it can be dereferenced
- *     to any struct.
- */
-int pin_config_set(const char *dev_name, const char *name,
-                  unsigned long config)
-{
-       struct pinctrl_dev *pctldev;
-       int pin, ret;
-
-       pctldev = get_pinctrl_dev_from_devname(dev_name);
-       if (!pctldev) {
-               ret = -EINVAL;
-               return ret;
-       }
-
-       mutex_lock(&pctldev->mutex);
-
-       pin = pin_get_from_name(pctldev, name);
-       if (pin < 0) {
-               ret = pin;
-               goto unlock;
-       }
-
-       ret = pin_config_set_for_pin(pctldev, pin, config);
-
-unlock:
-       mutex_unlock(&pctldev->mutex);
-       return ret;
-}
-EXPORT_SYMBOL(pin_config_set);
-
 int pin_config_group_get(const char *dev_name, const char *pin_group,
                         unsigned long *config)
 {
@@ -204,88 +112,6 @@ unlock:
        mutex_unlock(&pctldev->mutex);
        return ret;
 }
-EXPORT_SYMBOL(pin_config_group_get);
-
-int pin_config_group_set(const char *dev_name, const char *pin_group,
-                        unsigned long config)
-{
-       struct pinctrl_dev *pctldev;
-       const struct pinconf_ops *ops;
-       const struct pinctrl_ops *pctlops;
-       int selector;
-       const unsigned *pins;
-       unsigned num_pins;
-       int ret;
-       int i;
-
-       pctldev = get_pinctrl_dev_from_devname(dev_name);
-       if (!pctldev) {
-               ret = -EINVAL;
-               return ret;
-       }
-
-       mutex_lock(&pctldev->mutex);
-
-       ops = pctldev->desc->confops;
-       pctlops = pctldev->desc->pctlops;
-
-       if (!ops || (!ops->pin_config_group_set && !ops->pin_config_set)) {
-               dev_err(pctldev->dev, "cannot configure pin group, missing "
-                       "config function in driver\n");
-               ret = -EINVAL;
-               goto unlock;
-       }
-
-       selector = pinctrl_get_group_selector(pctldev, pin_group);
-       if (selector < 0) {
-               ret = selector;
-               goto unlock;
-       }
-
-       ret = pctlops->get_group_pins(pctldev, selector, &pins, &num_pins);
-       if (ret) {
-               dev_err(pctldev->dev, "cannot configure pin group, error "
-                       "getting pins\n");
-               goto unlock;
-       }
-
-       /*
-        * If the pin controller supports handling entire groups we use that
-        * capability.
-        */
-       if (ops->pin_config_group_set) {
-               ret = ops->pin_config_group_set(pctldev, selector, config);
-               /*
-                * If the pin controller prefer that a certain group be handled
-                * pin-by-pin as well, it returns -EAGAIN.
-                */
-               if (ret != -EAGAIN)
-                       goto unlock;
-       }
-
-       /*
-        * If the controller cannot handle entire groups, we configure each pin
-        * individually.
-        */
-       if (!ops->pin_config_set) {
-               ret = 0;
-               goto unlock;
-       }
-
-       for (i = 0; i < num_pins; i++) {
-               ret = ops->pin_config_set(pctldev, pins[i], config);
-               if (ret < 0)
-                       goto unlock;
-       }
-
-       ret = 0;
-
-unlock:
-       mutex_unlock(&pctldev->mutex);
-
-       return ret;
-}
-EXPORT_SYMBOL(pin_config_group_set);
 
 int pinconf_map_to_setting(struct pinctrl_map const *map,
                          struct pinctrl_setting *setting)
This page took 0.056324 seconds and 5 git commands to generate.