私は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)コードで
'のioctl(ファイル、I2C_PEC、長い選択) 選択SMBusのPEC(パケット・エラーチェック)生成と検証 選択は0に等しいていない場合は、選択は唯一のSMBusトランザクションに使用される0デフォルトは0です。 に等しい場合は無効になります。この要求は、 アダプタにI2C_FUNC_SMBUS_PECがある場合にのみ有効です。まだ安全でない場合は、 には何の効果もありません。https://www.kernel.org/doc/Documentation/i2c/dev-interface – 0andriy
@AndyShevchenkoただしhttp://lxr.free -electrons.com/source/drivers/i2c/i2c-dev.c#L438それはユーザスペースのI2C APIであり、カーネルスペースのi2cデバイスには影響しないようです。 – user3528438
そして、それはなぜカーネルレベルで正確に必要なのですか? – 0andriy