pio:表示GPIO的控制器,该节点定义在其它dts文件中。 79: GPIO的ID,表示GPIO的编号 对于GPIO_ACTIVE_HIGH的属性值,需要重点介绍如下: 该位有两种属性取值:GPIO_ACTIVE_HIGH和GPIO_ACTIVE_LOW。 #include #defineGPIO_ACTIVE_HIGH 0 #defineGPIO_ACTIVE_LOW 1 GPIO_ACTIVE_HIGH表示高有效,GPIO_ACTIVE_LOW表示低有...
下面是逻辑电平,只需要输出1表示要active,0表示inactive,而不用管具体电路的电平,具体的电路的电平会通过上面dts中设置的GPIO_ACTIVE_HIGH或GPIO_ACTIVE_LOW来进行转换。 gpiod_direction_output(struct gpio_desc *desc, int value); gpio_set_value(struct gpio_desc *desc, int value); 参考: kernel/Documenta...
可以使用gpio_to_irq或gpiod_to_irq获得中断号。 举例,假设在设备树中有如下节点: 代码语言:javascript 复制 gpio-keys{compatible="gpio-keys";pinctrl-names="default";user{label="User Button";gpios=<&gpio51GPIO_ACTIVE_HIGH>;gpio-key,wakeup;linux,code=<KEY_1>;};}; 那么可以使用下面的函数获得引脚...
GPIO1连接到GIC,GPIO2连接到GIC,所以GPIO1的父亲是GIC,GPIO2的父亲是GIC。 假设GPIO1有32个中断源,但是它把其中的16个汇聚起来向GIC发出一个中断,把另外16个汇聚起来向GIC发出另一个中断。这就意味着GPIO1会用到GIC的两个中断,会涉及GIC里的2个hwirq。 这些层级关系、中断号(hwirq),都会在设备树中有所体现。
4 = active high level-sensitive,高电平触发 8 = active low level-sensitive,低电平触发 示例如下: vic: intc@10140000 { compatible = "arm,versatile-vic"; interrupt-controller; #interrupt-cells = <1>; reg = <0x10140000 0x1000>; };
GPIO_ACTIVE_HIGH : 高电平有效 GPIO_ACTIVE_LOW : 低电平有效 查看电路原理图确定所用引脚,在设备树中指定:添加”[name]-gpios”属性,指定使用的是哪一个GPIO Controller里的哪一个引脚,还有其他Flag信息,比如GPIO_ACTIVE_LOW等。具体需要多少个cell来描述一个引脚,需要查看设备树中这个GPIO Controller节点里的“...
gpio-restart { compatible = "gpio-restart"; gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&ap_warm_reset_h>; priority = <200>; }; emmc_pwrseq: emmc-pwrseq { compatible = "mmc-pwrseq-emmc"; ...
fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;,这个是我对复位IO的定义 我的程序代码片段...
gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&sd_s0_...
gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; default-state = "on"; }; };LED device注册后,会在/sys/devices/platform/leds-gpio/目录中,产生对应的led灯的控制目录:(红灯和绿灯)通过echo 1 > brightness,就可以控制灯亮; echo 0 > brightness,就可以控制灯灭 。//openwrt/build_dir/target-arm_cortex...