기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
mv6410 보드에 i2c 포트에 특정 디바이스를 연결하고,
디바이스 드라이버를 구현할려고 합니다.
i2c_add_driver로 특정 디바이스 등록을 하였으나
probe의 함수로 들어오지 않습니다. 그래서 정상적으로
등록이 안된것 같아 분석 중
kernelarcharmmach-s3c6410cpu.c 파일 안에
s3c6410_map_io (첨부파일 참조)
빨간 네모를 보면 "s3c2440-i2c" 만 등록 되는 것 같습니다.
그래서 내가 만든 디바이스 드라이버 네임을 "s3c2440-i2c"로 변경
했더니 probe 까지는 들어 옵니다.
제가 꼭 i2c_add_driver를 하고 싶은데..
할 수 있는 방법이 있을까요?
허접한 질문 드려 죄송합니다.
arch/arm/mach-s3c6410/mach-s3c6410.c
static struct i2c_board_info i2c_devs0[] __initdata = {
{ I2C_BOARD_INFO("24c08", 0x50), },
{ I2C_BOARD_INFO("birdkiller", 0x2c), },
};
driver/xx/xx.c
static const struct i2c_device_id birdkiller_ids[] = {
{"birdkiller", 0},
{},
};
static struct i2c_driver birdkiller_driver = {
.driver = {
.name = "birdkiller",
.owner = THIS_MODULE,
},
.probe = birdkiller_probe,
.remove = birdkiller_remove,
.suspend = NULL,
.resume = NULL,
.id_table = birdkiller_ids,
};
static int __init birdkiller_init(void)
{
return i2c_add_driver(&birdkiller_driver);
}
수고하세용~