I2C 클라이언트 드라이버를 최신 바인딩 모델로 업그레이드

I2C 클라이언트 드라이버를 최신 바인딩 모델로 업그레이드

최신 I2C 바인딩 모델을 사용하기 위해 다른 커널용으로 작성한 일부 I2C 장치 드라이버를 포팅하려고 합니다. 커널 문서에는 이를 수행하는 단계가 자세히 설명되어 있습니다.http://www.mjmwired.net/kernel/Documentation/i2c/upgrading-clients

제가 이해하지 못하는 것은 이 새로운 모델을 사용할 때 장치의 I2C 주소를 어떻게 지정합니까? 이전에는 다음과 같이 수행되었습니다.

static unsigned short normal_i2c[] = { 0x67, I2C_CLIENT_END };

I2C_CLIENT_INSMOD;

내 버스/장치가 감지를 지원하지 않는 것 같습니다.

답변1

결국 모든 I2C 장치를 플랫폼 장치로 등록하게 되었습니다. Board 파일의 항목은 다음과 같습니다.

static struct i2c_board_info __initdata my_i2c_device = {
        I2C_BOARD_INFO("my_i2c_device", 0x60)
};

(여기서 I2C 주소 = 0x60)

if (i2c_register_board_info(I2C_MY_BUS_ID, &my_i2c_device, 1) < 0) {
    printk(KERN_ERR "i2c_init: cannot register my I2C device\n");
}

바라보다http://www.mjmwired.net/kernel/Documentation/driver-model/platform.txt

관련 정보