我在用户空间中有某种驱动程序:
通过某些接口(rs232)与设备进行程序对话。我也有 pin(gpio) 来打开/关闭这个设备。
我不在我的程序中编写具体的 gpio 代码,以使其更便携,
所以我修改了我的板的设备树描述,并描述了调节器固定,之后我想使用用户空间消费者驱动程序来控制电源开/关,但看起来这不是内核开发人员所期望的(链接到类似问题的讨论,不是我的): http: //patchwork.ozlabs.org/patch/374912/
那么我应该如何从用户空间控制我的设备的打开/关闭而不向我的程序添加有关用于打开/关闭设备的具体 gpio 的信息?
更多详细信息:在我的板 dts 中,我这样描述了我的引脚:
regulator-deviceX {
status = "okay";
compatible = "regulator-fixed";
regulator-name = "DEV_X_ON#";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio5 4 GPIO_ACTIVE_LOW>;
};
当然,开机后"gpio = <&gpio5 4 GPIO_ACTIVE_LOW>" 被内核锁定,无法通过/sys/class/gpio接口使用。
考虑这种方法不好,这是不可能的(或者我不明白如何)从用户空间更改调节器状态,因为您可以看到“状态”是只读文件。
root@board:/sys/class/regulator/regulator.1# ls -l
lrwxrwxrwx 1 root root 0 May 3 03:32 device -> ../../../regulator-deviceX
-r--r--r-- 1 root root 4096 May 3 03:32 microvolts
-r--r--r-- 1 root root 4096 May 3 03:32 name
-r--r--r-- 1 root root 4096 May 3 03:32 num_users
drwxr-xr-x 2 root root 0 May 3 03:32 power
-r--r--r-- 1 root root 4096 May 3 03:32 state
lrwxrwxrwx 1 root root 0 May 3 03:25 subsystem -> ../../../../class/regulator
-r--r--r-- 1 root root 4096 May 3 03:32 suspend_disk_state
-r--r--r-- 1 root root 4096 May 3 03:32 suspend_mem_state
-r--r--r-- 1 root root 4096 May 3 03:32 suspend_standby_state
-r--r--r-- 1 root root 4096 May 3 03:32 type
-rw-r--r-- 1 root root 4096 May 3 03:25 uevent