디바이스 드라이버
I2C에 연결된 장치를 확인하기 위한 유틸리티로 i2cdetect, i2cdump, i2cset, i2cget 가 있습니다.
사용법은 다음과 같습니다.
1. i2cdetect
i2c bus 에 연결된 장치의 ID를 읽어 옵니다.
[root@linux /]# i2cdetect -l
i2c-0 i2c OMAP I2C adapter I2C adapter
i2c-1 i2c OMAP I2C adapter I2C adapter
i2c bus 0 에 연결되어 있는 장치를 보기 위해서는 다음 명령을 사용하면 됩니다.
[root@linux /]# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 49 -- -- -- -- -- --
50: 50 51 52 -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
2. i2cdump
i2c bus 에 연결된 장치의 내용을 dump 합니다.
i2cdump <bus> <chipid>
[root@linux /]# i2cdump 0 0x2d
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x2d, mode byte
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: 8a 8b de bb c9 d8 d0 1d ff ff aa c1 9e c1 9e e3
30: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
40: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
50: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
60: 8a 8b de bb c9 d6 d1 1d ff ff aa c1 9e c1 9e e3
70: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: 8b 8b de bb c8 d9 d1 1d ff ff ab c1 9e c1 9e e3
b0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
c0: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
d0: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
e0: 8a 8a de bb c9 d8 d1 1d ff ff aa c1 9e c1 9e e3
f0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
3. i2cget과 i2cset
i2c bus 에 연결된 장치의 레지스트를 읽어오거나, 설정할 수 있습니다.
i2cget <bus> <chip> <register>
i2cset <bus> <chip> <register> <value>
[root@linux /]# i2cset 0 0x2d 0x10 0x22
위의 자세한 내용은 http://www.lm-sensors.org/wiki/i2cToolsDocumentation 를 참조하세요.
다음에 위의 유틸리티를 ARM 크로스 컴파일 하는 방법을 해 보도록 하겠습니다.