[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 メーリングリストの案内