Luckfox Pico Mini B 如何配置GPIO输入输出,高低电平永久生效?

  • 您好,需要间GPIO再内核加载时默认输入高电平或低电平需要将其作为一个类似电源regulator 进行管理,设备树设置如下:
    1 在设备树根路径下(/{ }中括号中)创建一个新的节点

    Code: Select all

    	gpioXpXX:gpioXpXX {
    		compatible = "regulator-fixed";
    		pinctrl-names = "default";
    		pinctrl-0 = <&gpioX_pXX>;
    		regulator-name = "gpioX_pXX";
    		regulator-always-on;
    	};
    
    2 设置pinctrl 让他输出高电平或低电平

    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 默认低电平
    		};
    	};
    };
    
    可以参考 rv1103g-luckfox-pico.dts
  • 如果要设置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

    找到了上述文件,请问如果要改变电平应该对哪个文件进行操作呢?
    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,建议需求比较简单也用开机脚本实现