Linux 内核设备驱动之GPIO驱动之GPIO 获取GPIO方向

    xiaoxiao2021-03-25  101

    /**  * gpiod_get_direction - return the current direction of a GPIO  * @desc: GPIO to get the direction of  *  * Return GPIOF_DIR_IN or GPIOF_DIR_OUT, or an error code in case of error.  *  * This function may sleep if gpiod_cansleep() is true.  */ int gpiod_get_direction(struct gpio_desc *desc) {  struct gpio_chip *chip;  unsigned  offset;  int   status = -EINVAL;

     chip = gpiod_to_chip(desc);  offset = gpio_chip_hwgpio(desc);

     if (!chip->get_direction)   return status;

     status = chip->get_direction(chip, offset);  if (status > 0) {   /* GPIOF_DIR_IN, or other positive */   status = 1;   clear_bit(FLAG_IS_OUT, &desc->flags);  }  if (status == 0) {   /* GPIOF_DIR_OUT */   set_bit(FLAG_IS_OUT, &desc->flags);  }  return status; }

               
    转载请注明原文地址: https://ju.6miu.com/read-17854.html

    最新回复(0)