はじめに
本章では、読み解く照度センサドライバと、そのドライバが制御する照度センサデバイスの概要について、説明します。
読み解く照度センサドライバについて
読み解く照度センサドライバは、Amazonが https://www.amazon.com/gp/help/customer/display.html?nodeId=200203720 で開示している、「Fire HD 10 (9th Generation)」の「Fire_HD10_9th_Gen-7.3.2.7-20230127.tar.bz2」に含まれる、「kernel/mediatek/4.4/drivers/misc/mediatek/sensors-1.0/alsps/ltr578/」になります。
tar.bz2の拡張子は主にLinuxで使われている圧縮関連の形式です。Windowsでも7-Zip等の解凍ソフトを使用すれば中身が確認可能です。主要な2ファイル(ltr578.c, alsps.c)については、本サイト上にも置いてますが、各章を見る時には、ダウンロードしたソースコードと照らし合わせて頂けたら幸いです。
該当のドライバはGPL(GNU General Public License)ライセンスとなり、再配布可能となります。Linux自体がGPLライセンスとなっており、直接リンクさせた場合は、ドライバもGPLライセンスにする必要があります。このGPLライセンスにおいては、ソースコードの公開義務等が発生するので、その点ご注意下さい。
ドライバが制御する照度センサデバイスについて
デバイスの仕様を記載した資料にDataSheetという物があります。制御する照度センサデバイスのDataSheetは、部品ベンダーが https://optoelectronics.liteon.com/upload/download/DS86-2016-0062/LTR-578ALS-02_FINAL_DS_V1.1.PDF で開示しています。このDataSheetの内容を元に、前章でバスを通して信号を送ってデバイスを制御するという部分について、追加で説明します。
前章のレジスタは、SoCのレジスタを示して記載していましたが、デバイス側にも基本的にはレジスタが存在します。この照度センサについてもレジスタがあり、DataSheetのRegisterSetに記載されています。ただ、デバイス側のレジスタは直接プログラムから書き換えることはできないので、前述の通りバス規格であるI2Cで信号を送り書き換えます。
この方法がDataSheetのPrinciples of Operationに記載されています。レジスタを書き換える方法が、I2C Write Protocol (type 2) となります。逆にレジスタを読み込む方法は、I2C Read (Combined format) Protocolとなります。I2Cは組み込み機器で、デバイスを繋げるために多用されているバス規格であり、このレジスタの読み書き方法はI2Cの規格には含まれていないものの、多くのデバイスで同じ手法が採用されている一般的な物です。
コメント