こんにちは、チームの皆さん
カーネル 5.10.0-30-amd64 を使用して i.MX 8 のユーザー空間からレギュレータ ピン (gpiochip3-25) を制御しようとしていますしかし、変更は許可されません。
エコーが有効 > /sys/devices/プラットフォーム/regulator-lte-on/regulator/regulator.4/state
sh: /sys/devices/platform/regulator-lte-on/regulator/regulator.4/state:権限が拒否されました
さらに、汎用レギュレータ ドライバー「regulator-fixed」を使用しており、 「 CONFIG_REGULATOR_USERSPACE_CONSUMER」カーネル構成が有効になっていますが、それでも同じです。
さらに、異なるドライバーと特定のデバイス ツリーの変更を使用してこれを行う方法について説明した、ドキュメントレギュレータ ユーザースペース コンシューマー - NXPコミュニティが1 つあります。
質問:
上記のリンクに記載されている手順、特に特別な dts の変更を実行せずに、レギュレータ ピンの状態を制御するより良い方法はありますか?
前もって感謝します。
よろしくお願いいたします
パテル
こんにちは@Harshkumar_Patel !
残念ながら、当社は問題のドライバの開発に責任を負っていないため、パッチを提供する予定はありません。
コミュニティで共有されるすべてのリソースは参照目的のみを目的としていることにご注意ください。NXP から公式にサポートされているソフトウェアは GitHub で入手でき、通常、特定のCASEごとにユーザーに使用する方法を説明するマニュアルが提供されます。
よろしくお願いします、
チャビラ
こんにちは、チャビラさん。
迅速かつ明確なご回答ありがとうございます。
さらに、ご存知のとおり、
ユーザー空間からレギュレータを制御することが最も一般的なニーズであるため、userspace_regulatorパッチをi.MX8 Yocto SDK の次のリビジョンの一部にする予定はありますか?
ありがとう
こんにちは@Harshkumar_Patel !
gpio-led ドライバを使用して GPIO トグルを確認していただきありがとうございます。
gpiochip3-25 はモデムの電源を制御し、オンのままにしておく必要があるため、regulator-fixed を使用することをお勧めします。電源管理フレームワークとの統合が向上し、サスペンド/再開、カーネルの停止、またはシステムの高負荷時の安定性が確保されます。このようなシナリオでは、gpio 主導のドライバは GPIO 状態を確実に維持できない可能性があります。
ただし、アクティブ モード時にのみ電源レールを維持するだけで十分な場合は、プルアップ抵抗を備えた gpio-led ドライバを使用して信号を HIGH に保ち、不要になったときにレールをオフにすることができます。
よろしくお願いします、
チャビラ
こんにちは、チャビラさん。
非常に速くて明確な回答をありがとうございます。
gpio-led ドライバを使用して、予想される gpio トグルを検証しましたが、このオプションを使用する前に専門家の意見が必要です。
お気づきかもしれませんが、モデムの電源を有効にするために gpiochi3-25 を使用しており、オンのままにしておく必要があります。
これを「regulator-fixed」ではなく「gpio-led」として使用すると、カーネルのストールやオーバーロード、レイテンシ、低電力モードのCASEに何か問題が発生しますか?
ありがとう
こんにちは@Harshkumar_Patelさん、
デフォルトでは、レギュレータ固定ドライバはユーザー空間からの直接制御を許可しません。この機能を有効にするには、通常、ドライバを変更するか、デバイス ツリーを調整して、レギュレータ - ユーザー空間 - コンシューマー ノードを含める必要があります。
ただし、よりシンプルで柔軟な代替案は、gpio-led ドライバを使用してレギュレーターの GPIO 有効化を宣言することです。このアプローチにより、レギュレータ フレームワークやデバイス ツリーを大幅に変更することなく、sysfs や libgpiod などの標準インターフェースを使用して、ユーザー空間から GPIO を直接制御できます。
この方法は、基本的なオン/オフ制御のみが必要で、カーネルまたは DTS のより深い変更を避けたい場合に特に便利です。
よろしくお願いします、
チャビラ