/* Set one or zero to the selected GPIO pin.  */
int32_t csi_gpio_pin_write(gpio_pin_handle_t pin, bool value)
/* Set one or zero to the selected GPIO pin.  */
int32_t csi_gpio_pin_write(gpio_pin_handle_t pin, bool value)
{
    GPIO_NULL_PARAM_CHK(pin);
    if (value < 0) {
        return ERR_GPIO(EDRV_PARAMETER);
    }
    dw_gpio_pin_priv_t *gpio_pin_priv = pin;
    dw_gpio_priv_t *gpio_priv = gpio_pin_priv->handle;
    uint8_t offset = gpio_pin_priv->idx;
    uint32_t port_value = value << offset;
    gpio_priv->value = port_value;
    gpio_write(gpio_priv, (1 << offset));
    return 0;
}