gpio_set_value 设置的是逻辑电平,1有效0无效 如果GPIO_ACTIVE_LOW 那么1有效 就是低电平0无效 就是高电平 (物理电平) 如果GPIO_ACTIVE_HIGH 那么1有效 就是高电平0无效 就是低电平 (物理电平) 总结一下: 在设备树配置GPIO时设置的有效电平指的是实际电路的电平。例如一个LED,拉低点亮。那么在配置设备树的时...
gpio_set_value 设置的是逻辑电平,1有效0无效 如果GPIO_ACTIVE_LOW 那么1有效 就是低电平0无效 就是高电平 (物理电平) 如果GPIO_ACTIVE_HIGH 那么1有效 就是高电平0无效 就是低电平 (物理电平) 1. 2. 3. 4. 5. 6. 7. 8. 9. 总结一下: 在设备树配置GPIO时设置的有效电平指的是实际电路的电平。例...
gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 第一个参数是GPIO编号 第二个参数是GPIO引脚 一般GPIO有32个引脚 定义在 kernel-4.19\include\dt-bindings\pinctrl\rockchip.h #defineRK_GPIO0 0#defineRK_GPIO1 1#defineRK_GPIO2 2#defineRK_GPIO3 3#defineRK_GPIO4 4#defineRK_GPIO6 6#defineRK_PA0 ...
<&gpio 17 GPIO_ACTIVE_HIGH>; /* blue */ power-gpios = <&gpio 1 GPIO_ACTIVE_LOW>; }; 1. 2. 3. 4. 5. 6. 7. 8. 9. 使用函数获得引脚 struct gpio_desc *red, *green, *blue, *power; red = gpiod_get_index(dev, "led", 0, GPIOD_OUT_HIGH); green = gpiod_get_index(d...
“#gpio-cells = <2>”表示这个控制器下每一个引脚要用2个32位的数(cell)来描述。用第1个cell来表示哪一个引脚,用第2个cell来表示有效电平:GPIO_ACTIVE_HIGH(高电平有效),GPIO_ACTIVE_LOW(低电平有效)。 怎么引用某个引脚呢?在自己的设备节点中使用属性"[name]-gpios",示例如下: ...
GPIO_ACTIVE_HIGH : 高电平有效 GPIO_ACTIVE_LOW : 低电平有效 芯片厂家提供的dts文件定义了GPIO Controller,那我们的驱动程序如何引用某个引脚呢? 可以在自己的设备节点中使用属性"[-]gpios",示例如下: // 100ask_imx6ull-14x14.dts, 板级dts文件, 位于Linux 4.9.88 源码目录 arch/arm/boot/dts ...
GPIO_ACTIVE_HIGH GPIO_ACTIVE_LOW GPIO_PULL_UP GPIO_PULL_DOWN GPIO_OPEN_DRAIN GPIO_OPEN_SOURCE 等。 gpio_dt_spec可以通过以下宏由device tree在具有gpio属性的节点中获取 GPIO_DT_SPEC_GET_BY_IDX GPIO_DT_SPEC_GET_BY_IDX_OR GPIO_DT_SPEC_GET ...
<&gpio5 16 GPIO_ACTIVE_HIGH>; /* scl */ i2c-gpio,delay-us = <2>; /* ~100 kHz */ #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c2_gpio>; status = "disabled"; }; i2c@4 { ...
“#gpio-cells = <2>”表示这个控制器下每一个引脚要用2个32位的数(cell)来描述。用第1个cell来表示哪一个引脚,用第2个cell来表示有效电平:GPIO_ACTIVE_HIGH(高电平有效),GPIO_ACTIVE_LOW(低电平有效)。 怎么引用某个引脚呢?在自己的设备节点中使用属性"[name]-gpios",示例如下: ...