Luckfox Pico Mini B 如何配置GPIO输入输出,高低电平永久生效?
您好,需要间GPIO再内核加载时默认输入高电平或低电平需要将其作为一个类似电源regulator 进行管理,设备树设置如下:
1 在设备树根路径下(/{ }中括号中)创建一个新的节点
2 设置pinctrl 让他输出高电平或低电平
可以参考 rv1103g-luckfox-pico.dts
1 在设备树根路径下(/{ }中括号中)创建一个新的节点
Code: Select all
gpioXpXX:gpioXpXX {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpioX_pXX>;
regulator-name = "gpioX_pXX";
regulator-always-on;
};
Code: Select all
&pinctrl{
gpio {
gpioX_pXX:gpioX-pXX {
rockchip,pins = <X RK_PXX RK_FUNC_GPIO &pcfg_pull_none>;
//pcfg_pull_up 默认高电平
//pcfg_pull_down 默认低电平
};
};
};
如果要设置GPIO为输入模式呢?
[root@luckfox ]# find -name 'gpio1*'
./sys/devices/platform/gpio1pc3
./sys/firmware/devicetree/base/aliases/gpio1
./sys/firmware/devicetree/base/gpio1pc3
./sys/firmware/devicetree/base/pinctrl/gpio/gpio1-pc3
./sys/firmware/devicetree/base/pinctrl/gpio1-pc7
./sys/firmware/devicetree/base/pinctrl/gpio1-pc7/gpio1-pc7
./sys/bus/platform/devices/gpio1pc3
./sys/bus/platform/drivers/reg-fixed-voltage/gpio1pc3
找到了上述文件,请问如果要改变电平应该对哪个文件进行操作呢?
./sys/devices/platform/gpio1pc3
./sys/firmware/devicetree/base/aliases/gpio1
./sys/firmware/devicetree/base/gpio1pc3
./sys/firmware/devicetree/base/pinctrl/gpio/gpio1-pc3
./sys/firmware/devicetree/base/pinctrl/gpio1-pc7
./sys/firmware/devicetree/base/pinctrl/gpio1-pc7/gpio1-pc7
./sys/bus/platform/devices/gpio1pc3
./sys/bus/platform/drivers/reg-fixed-voltage/gpio1pc3
找到了上述文件,请问如果要改变电平应该对哪个文件进行操作呢?
Last edited by XDU_stu on 2025-06-13 2:17, edited 1 time in total.
改变电平就需要修改设备树的rockchip,pins,高电平配置为 pcfg_pull_up 低电平配置为 pcfg_pull_down, 需要动态修改建议不要注册为regulator 直接用sysfs的方式在 /sys/class/gpio 下操作,然后写一个启动脚本每次开机时配置一下电平,写在设备树中和开机脚本只有执行顺序的差别。
配置成 input 需要结合使用场景搭配驱动,比如注册成按键电平变化时上报事件到/dev/input/eventX,建议需求比较简单也用开机脚本实现
配置成 input 需要结合使用场景搭配驱动,比如注册成按键电平变化时上报事件到/dev/input/eventX,建议需求比较简单也用开机脚本实现