シェルからデバイス ドライバーを使用しようとしたときに、そのデバイス ドライバーがカーネルによってすでに使用されている場合はどうなりますか?

シェルからデバイス ドライバーを使用しようとしたときに、そのデバイス ドライバーがカーネルによってすでに使用されている場合はどうなりますか?

状況はこうです。私は組み込み Linux の初心者で、LED ドライバー LP5521 のコマンドをいくつかテストしようとしています。私が持っているボードには、このコントローラー IC を備えた RGB LED があり、デバイス ツリーで直接「ハートビート」パターンを使用して初期化されています。そのため、ボードが起動するとすぐに LED が点滅し始めます。

コントローラーの点滅パターンをコマンド ラインから変更し、LP5521 に慣れるために、LP5521 を全体的に操作してみるように求められました。

LP5521ドライバのドキュメントで見つけたhttps://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/leds/leds-lp55xx.txtこの例:

For example, run blinking pattern in engine #1 of LP5521
echo 1 > /sys/bus/i2c/devices/xxxx/select_engine
echo 1 > /sys/class/firmware/lp5521/loading
echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
echo 0 > /sys/class/firmware/lp5521/loading
echo 1 > /sys/bus/i2c/devices/xxxx/run_engine

問題は、最初の行を試みるとエラーが発生することです:

lp5521 の直接ファームウェア ロードがエラー -2 で失敗しました

なぜこのようなことが起こるのか、まったくわかりません。カーネルがすでにハートビート パターンのドライバーを使用しているため、シェルから何も送信できないのではないかと思いますが、よくわかりません。

ありがとう!!

関連情報