目次
2 デバイスツリーを使用しない場合のプラットフォームデバイスドライバー
3 デバイスツリー使用時のプラットフォームデバイスドライバー
1 ドライバーのセグメント化と分離
ベアメタルプログラムを書く場合、以下のような考え方になりますが、デバイスドライバを何度も書かなければならないという欠点があります。
簡単な方法は、各プラットフォームの I2C コントローラーが統一インターフェイス (ホスト ドライバーとも呼ばれます) を提供し、各デバイスがドライバー (デバイス ドライバー) のみを提供し、各デバイスが統一 I2C インターフェイスによって駆動されるというものです。
これはドライバーの分離です。ドライバーはドライバーに対してのみ責任を負い、デバイスはデバイスに対してのみ責任を負います。この 2 つを一致させる方法を見つけるだけです。これは、Linux のバス、ドライバー、およびデバイス モデルであり、ドライバー分離と呼ばれることがよくあります。
2 デバイスツリーを使用しない場合のプラットフォームデバイスドライバー
まず、デバイスツリーを使用しない場合のプラットフォームバスドライバーの書き方について見ていきますが、実際、デバイスツリーを使用しない場合のプラットフォームデバイスドライバーは主に、bus_type、platform_driver、platform_device の 3 つの構造からなります。この知識点の記憶を深めるために、ただ絵を描いただけです。
3 デバイスツリー使用時のプラットフォームデバイスドライバー
デバイスツリーを使用する場合、デバイス情報をデバイスツリーファイルに記述しますが、このときplatform_device構造体は不要になります。