GPIO控制问题

背景

  • Platform: IMX6
  • OS: Linux
  • Kernel: v4.1.35

问题

用GPIO去控制一个外扩板的复位引脚,开始直接在用户态使用export去控制GPIO,但Kernel起来时的默认状态没法控制,Uboot是高电平,但到Kernel起来变成低电平,需修改进Kernel的默认电平

分析与解决

改用leds-gpio的方式去控制。
dts类似如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;

reset-ctl {
gpios = <&gpio4 30 0>;
label = "reset_ctl";
default-state = "on";
};
}
...
pinctrl_gpio_leds: gpio_ledsgrp {
fsl,pins = <
MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x80000000 /* reset-ctl */
>;
};

注意:

  1. gpios = <&gpio4 30 0>;
    第3个参数为有效电平, 0即为低电平有效
  2. default-state = "on"
    "on""off"对应上面的有效电平
Donate comment here