已绑定手机 已实名认证
|
发表于 2019-12-10 17:54:39
|
显示全部楼层
|阅读模式
来自 广东省深圳市宝安区
我这有2个指纹驱动,2个主要的驱动如下驱动一static struct spi_board_info spi_board_cdfinger[] __initdata = { [0] = { .modalias = "cdfinger", .bus_num = 0, .chip_select = 1, .mode = SPI_MODE_0, .max_speed_hz = 5000000, },};static int reMOVe_driver(void){ spi_unregister_driver(&cdfinger_driver);}static int finger_local_init(void){ printk("==finger_local_init1==\n"); spi_register_driver(&cdfinger_driver);}static struct finger_driver_t finger_device_driver = { .finger_device_name = SPI_DRV_NAME, .finger_local_init = finger_local_init,
};static int cdfinger_spi_init(void){ spi_register_board_info(spi_board_cdfinger, ARRAY_SIZE(spi_board_cdfinger)); if(finger_driver_add(&finger_device_driver) < 0) printk("add finger driver failed\n"); return 0;}
驱动二
struct spi_board_info smt_info[] __initdata = { [0] = { .modalias = "cdfinger2", .max_speed_hz = (6*1000000), .bus_num = 0, .chip_select = 0, .mode = SPI_MODE_0, .controller_data = &smt_conf, },};static int finger_local_init(void){ ret = spi_register_driver(&sdrv); if(ret) { MALOGE("spi_register_driver"); } return ret;}static struct finger_driver_t finger_device_driver = { .finger_device_name = MA_DRV_NAME, .finger_local_init = finger_local_init,
};int mas_get_platform(void) { ret = spi_register_board_info(smt_info, ARRAY_SIZE(smt_info)); if(ret){ MALOGE("spi_register_board_info"); } if(finger_driver_add(&finger_device_driver) < 0) printk("add finger driver failed\n"); return ret;}软件发现谁先注册 就用谁。另外一个驱动更笨注册不了我这个兼容是能读ID,主要是无法挂载同chip_select 的设备。软件和这可能有关 .chip_select = 0,,或者 spi_register_board_info 同一个chip_select 后其他的不能注册都不知道怎么兼容??有那位高手做个SPI兼容。指点指点一二
我知道答案
回答被采纳将会获得 5 RD币 已有3人回答
|
|