/** * gpio_set_value() - [COMPAT] Configure logical value on GPIO pin * gpio: GPIO number * value: Logical value to be set on the GPIO pin. * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_set_value(unsigned gpio, int value) { struct gpio_desc desc; int ret; ret = gpio_to_device(gpio, &desc); if (ret) return ret; return dm_gpio_set_value(&desc, value); }
/** * gpio_get_value() - [COMPAT] Sample GPIO pin and return it's value * gpio: GPIO number * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns the value of the GPIO pin, or negative value * on error. */ int gpio_get_value(unsigned gpio) { int ret; struct gpio_desc desc; ret = gpio_to_device(gpio, &desc); if (ret) return ret; return dm_gpio_get_value(&desc); }
/** * gpio_free() - [COMPAT] Relinquish GPIO * gpio: GPIO number * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_free(unsigned gpio) { struct gpio_desc desc; int ret; ret = gpio_to_device(gpio, &desc); if (ret) return ret; return _dm_gpio_free(desc.dev, desc.offset); }
/** * gpio_request() - [COMPAT] Request GPIO * gpio: GPIO number * label: Name for the requested GPIO * * The label is copied and allocated so the caller does not need to keep * the pointer around. * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_request(unsigned gpio, const char *label) { struct gpio_desc desc; int ret; ret = gpio_to_device(gpio, &desc); if (ret) return ret; return dm_gpio_request(&desc, label); }
/** * gpio_set_value() - [COMPAT] Configure logical value on GPIO pin * gpio: GPIO number * value: Logical value to be set on the GPIO pin. * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_set_value(unsigned gpio, int value) { unsigned int offset; struct device *dev; int ret; ret = gpio_to_device(gpio, &dev, &offset); if (ret) return ret; return gpio_get_ops(dev)->set_value(dev, offset, value); }
/** * gpio_direction_output() - [COMPAT] Set GPIO direction to output and set value * gpio: GPIO number * value: Logical value to be set on the GPIO pin * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_direction_output(unsigned gpio, int value) { unsigned int offset; struct device *dev; int ret; ret = gpio_to_device(gpio, &dev, &offset); if (ret) return ret; return gpio_get_ops(dev)->direction_output(dev, offset, value); }
/** * gpio_direction_input() - [COMPAT] Set GPIO direction to input * gpio: GPIO number * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_direction_input(unsigned gpio) { struct gpio_desc desc; int ret; ret = gpio_to_device(gpio, &desc); if (ret) return ret; ret = check_reserved(&desc, "dir_input"); if (ret) return ret; return gpio_get_ops(desc.dev)->direction_input(desc.dev, desc.offset); }
/** * gpio_free() - [COMPAT] Relinquish GPIO * gpio: GPIO number * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_free(unsigned gpio) { unsigned int offset; struct device *dev; int ret; ret = gpio_to_device(gpio, &dev, &offset); if (ret) return ret; if (!gpio_get_ops(dev)->free) return 0; return gpio_get_ops(dev)->free(dev, offset); }
/** * gpio_request() - [COMPAT] Request GPIO * gpio: GPIO number * label: Name for the requested GPIO * * This function implements the API that's compatible with current * GPIO API used in U-Boot. The request is forwarded to particular * GPIO driver. Returns 0 on success, negative value on error. */ int gpio_request(unsigned gpio, const char *label) { unsigned int offset; struct device *dev; int ret; ret = gpio_to_device(gpio, &dev, &offset); if (ret) return ret; if (!gpio_get_ops(dev)->request) return 0; return gpio_get_ops(dev)->request(dev, offset, label); }