devm_fwnode_gpiod_get 函数首先根据传入的 fwnode、con_id 和index 参数,在设备树或 ACPI 表中查找对应的 GPIO。找到后,它会调用底层的 GPIO 子系统函数来获取 GPIO 描述符(gpio_desc)。然后,它会使用设备资源管理函数(devres_alloc 和devres_add)来管理这个 GPIO 描述符,确保在设备驱动程序卸载时自动释放资源...
panel->enable_gpio = devm_gpiod_get_optional(dev,"enable",0); 在使用mipi屏幕的主dts就有enable pin的定义 rk3399-firefly-mipi.dts: enable-gpios = <&gpio11GPIO_ACTIVE_HIGH>; 那么index又有什么用呢? 内核文档有个例子,比如gpio如下定义: led-gpios = <&gpio15GPIO_ACTIVE_HIGH>,/*red*/<&g...
panel->enable_gpio = devm_gpiod_get_optional(dev,"enable",0); 在使用mipi屏幕的主dts就有enable pin的定义 rk3399-firefly-mipi.dts: enable-gpios = <&gpio11GPIO_ACTIVE_HIGH>; 那么index又有什么用呢? 内核文档有个例子,比如gpio如下定义: led-gpios = <&gpio15GPIO_ACTIVE_HIGH>,/*red*/<&g...
[gpio]devm_gpiod_get_optional用法 2018-08-16 09:54 −... aaronGao 0 12599 optional 2019-12-23 00:08 −optional - 在实际开发中,我们经常会遇到无效值的情况,例如函数并不是总能返回有效值,很多函数正确执行了,但结果却不是合理的值,如果用数学语言开解释的话,就是返回值位于函数解空间之外。
priv->ulpi_reset = devm_gpiod_get_optional(dev->parent, "reset", GPIOD_ACTIVE_LOW); /* property is optional, don't return error! */ if (priv->ulpi_reset) { /* Toggle ulpi to reset the phy. */ rc = dm_gpio_set_value(priv->ulpi_reset, 1); ...
RK3399 GPIO控制 涉及文件: 选择GPIO4_C6引脚,对该IO引脚进行控制。该引脚在OK3399上做edp屏的pwm背光,不过只在选择主或副屏选择edp显示的情况下才做pwm,默认情况下是做GPIO。 原理图接口如下: 查阅用户资料-原厂资料中的《Rockchip RK3399 TRM V1.4 Part1》文档,检索gpio4c6,查看该引脚的功能复用: 可以...
+++ b/drivers/gpio/gpiolib-devres.c @@ -185,12 +185,11 @@ struct gpio_desc *devm_gpiod_get_from_of_node(struct device *dev, EXPORT_SYMBOL(devm_gpiod_get_from_of_node); /** - * devm_fwnode_get_index_gpiod_from_child - get a GPIO descriptor from a ...
可以看到devm_gpiod_get_optional只是对gpiod_get_index的包装而已,并且index为0。index参数后面会提。 函数参数: structgpio_desc *__must_check devm_gpiod_get_index(structdevice *dev,constchar*con_id, unsignedintidx,enumgpiod_flags flags); ...