[Armadillo:00570] Re: RTC レジスタアクセス方法
Masahiro Hanada
email@hidden
2005年 10月 25日 (火) 17:32:15 JST
花田です
email@hidden wrote:
> RTCのINT出力を使用したいと考えているのですが、
> RTCのINTレジスタやステータスレジスタにアクセス
> するにはどのようにすれば良いのでしょうか?
標準ではINTステータスを直接使用するためのインターフェースは用意されていません。
なんらかの手を入れてドライバを拡張する必要があります。
とりあえずINTステータスをユーザランドから操作するだけなら、
簡単なパッチで実現できますので、作ってみました。
添付のi2c-armadillo9.c.patchはlinux-2.4.31-a9-2用のパッチです。
カーネルソースのdrivers/i2cディレクトリで
pc# patch -p0 <i2c-armadillo9.c.patch
という風にして、i2c-armadillo9.cにパッチをあて、
カーネルを作り直してみてArmadillo-9のカーネルを置き換えてください。
また、rtctest.cが簡単なサンプルアプリケーションです。
このアプリケーションで、STATUSレジスタを表示できます。
pc# arm-linux-gcc -I[カーネルソースパス]/drivers/i2c rtctest.c -o rtctest
とすれば、rtctestという実行ファイルができます。
これをArmadillo-9に転送して、実行してみてください。
注意点をいくつか書きます。
・ioctlコマンドについては、カーネルソースのdrivers/i2c/i2c-s3531a.hを
参照してください。
S-3531AではRTC_GETSTATUS/RTC_SETSTATUSを、
S-35380A/35390AではRTC_GETSTATUS1/RTC_GETSTATUS2/RTC_SETSTATUS1/RTC_GETSTATUS2
でINTステータスの参照・操作ができます。
・コードを書く際は、Armadillo-9に実際に搭載されている
RTCのデバイスタイプを意識するようにしてください。
サンプルコードにあるように、RTC_GETDEVTYPEでS-3531か35380/35390かを
判断することができます。
(35380と35390はレジスタ構造は一緒ですので、区別しません)
・S-3531の際はGET/SETSTATUS(1/2はつかない)を使用してください。
S-353X0の場合、STATUS1またはSTATUS2を使用してください。
詳しくは書くデバイスのデータシートを参照してください。
____________________________________________________
花田 政弘 (はなだ まさひろ)
(株)アットマークテクノ IT開発部
TEL: 011-207-6550 FAX: 011-207-6570
URL: http://www.atmark-techno.com/
E-mail: email@hidden
____________________________________________________
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: i2c-armadillo9.c.patch
型: application/octet-stream
サイズ: 926 バイト
説明: 無し
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20051025/97df300e/attachment.obj>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: rtctest.c
型: application/octet-stream
サイズ: 1054 バイト
説明: 無し
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20051025/97df300e/attachment-0001.obj>
armadillo メーリングリストの案内