4

ユーザー空間にある種のドライバーがあります:

デバイスとのインターフェース(rs232)を介したプログラムトーク。また、このデバイスのオン/オフを切り替えるピン(gpio)もあります。

移植性を高めるために、プログラムの具体的な gpio にはコーディングしません。

そこで、ボードのデバイス ツリーの記述を変更し、レギュレーターの修正を記述し、その後、ユーザー空間のコンシューマー ドライバーを使用して電源のオン/オフを制御しようと考えましたが、カーネル開発者は期待していないようです (同様の問題の議論へのリンクではなく、私): http://patchwork.ozlabs.org/patch/374912/

では、デバイスのオン/オフの切り替えに使用されたconrete 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
4

1 に答える 1