/** * 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; mutex_lock(&pinctrl_mutex); pctldev = get_pinctrl_dev_from_devname(dev_name); if (!pctldev) { ret = -EINVAL; goto unlock; } 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(&pinctrl_mutex); return ret; }
/** * 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; pctldev = get_pinctrl_dev_from_dev(NULL, dev_name); if (!pctldev) return -EINVAL; pin = pin_get_from_name(pctldev, name); if (pin < 0) return pin; return pin_config_set_for_pin(pctldev, pin, config); }