사용자 공간에서 커널이 사용하는 i2c 장치에 액세스

사용자 공간에서 커널이 사용하는 i2c 장치에 액세스

내 ARM 보드에는 코어에서 사용되는 I2C PMIC가 있습니다.

# i2cdetect -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

하지만 아무것도 읽을 수 없습니다.

# i2cget -a 1 0x33 0x25 b
Error: Could not set address to 0x33: Device or resource busy

커널이 장치를 사용하고 있기 때문인 것 같습니다. 읽을 수 있는 방법이 있나요? "사용 중"이 아닐 때 장치에 액세스하기 위한 뮤텍스나 그와 유사한 것을 의미합니까?

목표는 레지스터를 읽어 전압 및 오류 플래그와 같은 정보를 얻는 것입니다.

답변1

ARM 보드의 경우 코어는 I2C PMIC를 사용하므로 ARM 보드에서는 이 i2c 버스를 사용할 수 없습니다.

이것이 귀하의 질문에 대한 답변입니다.

따라서 다른 i2c 버스를 사용하십시오.

$ i2cdetect -r 2
$ i2cdetect -r 3

관련 정보