2016-05-11 13 views
0

私はPECが必要なI2C/SMBusデバイスを持っており、そのためのカーネルスペースドライバを作成しています。デバイスツリーのPECフラグをSMバスに設定するには?

Linux 2.6.37では、クライアントをインスタンス化してそこにフラグを設定するのに、i2c_board_infoを使用しましたが、ドライバが3.14に移植されていて、PECフラグのデバイスツリーバインディングが見つかりませんでした。

実際に私はこのような拘束があるとは思わないのでthe I2C core is not getting any property from device tree other than reg and wakeup-sourceです。

デバイスドライバでi2c_client->flags |= I2C_CLIENT_PECを実行するだけですか?現在主流のカーネル(4.5)コードで

+0

'のioctl(ファイル、I2C_PEC、長い選択) 選択SMBusのPEC(パケット・エラーチェック)生成と検証 選択は0に等しいていない場合は、選択は唯一のSMBusトランザクションに使用される0デフォルトは0です。 に等しい場合は無効になります。この要求は、 アダプタにI2C_FUNC_SMBUS_PECがある場合にのみ有効です。まだ安全でない場合は、 には何の効果もありません。https://www.kernel.org/doc/Documentation/i2c/dev-interface – 0andriy

+0

@AndyShevchenkoただしhttp://lxr.free -electrons.com/source/drivers/i2c/i2c-dev.c#L438それはユーザスペースのI2C APIであり、カーネルスペースのi2cデバイスには影響しないようです。 – user3528438

+0

そして、それはなぜカーネルレベルで正確に必要なのですか? – 0andriy

答えて

0

、少なくとも三つのI2Cクライアントドライバは(ipmi_ssiflm90及びpmbus_core)ドライバでI2C_CLIENT_PECフラグを有効にし、そのうちの一つ(lm90)はSYSFSにそれを露出させます。

i2c_client->flags |= I2C_CLIENT_PECをクライアントドライバで実行することは安全だと思います。

+0

私は同意しません。ユーザー空間で何かできることがあれば、それを防ぐのは何ですか? – 0andriy

関連する問題