hi3519多sensor设置说明
mipi接口模式与设备号
3519总共有12-lane输入,从手册上看支持12lane,8lane+4lane,4lane+4x2lane
SDK中从mipi_rx.c文件mipi_print_lane_divide_mode函数可以区分mipi模式
static const char *mipi_print_lane_divide_mode(lane_divide_mode_t mode)
{
switch (mode) {
case LANE_DIVIDE_MODE_0:
return "12";
case LANE_DIVIDE_MODE_1:
return "8+4";
case LANE_DIVIDE_MODE_2:
return "8+2+2";
case LANE_DIVIDE_MODE_3:
return "4+8";
case LANE_DIVIDE_MODE_4:
return "4+4+4";
case LANE_DIVIDE_MODE_5:
return "4+4+2+2";
case LANE_DIVIDE_MODE_6:
return "4+2+2+2+2";
default:
break;
}
return "N/A";
}
LANE_DIVIDE_MODE_4对应的是3个4lane接口
LANE_DIVIDE_MODE_6对应的是5个4lane+2lane+2lane+2lane+2lane接口
目前我只测试了LANE_DIVIDE_MODE_6模式的1个4lane sensor和LANE_DIVIDE_MODE_4模式的2个4lane sensor
由于最开始不了解,默认代码里一个sensor时是使用的LANE_DIVIDE_MODE_6模式
然后通过mipi_rx_hal.c中mipi_rx_drv_is_lane_valid函数可以确认每个通道对应的设备号
int mipi_rx_drv_is_lane_valid(combo_dev_t devno, short lane_id, lane_divide_mode_t mode)
{
int lane_valid = 0;
switch (mode) {
case LANE_DIVIDE_MODE_0:
if (devno == 0) {
if (0 <= lane_id && lane_id <= 11) {
lane_valid = 1;
}
}
break;
case LANE_DIVIDE_MODE_1:
if (devno == 0) {
if (0 <= lane_id && lane_id <= 7) {
lane_valid = 1;
}
} else if (devno == 3) {
if (8 <= lane_id && lane_id <= 11) {
lane_valid = 1;
}
}
break;
case LANE_DIVIDE_MODE_2:
if (devno == 0) {
if (0 <= lane_id && lane_id <= 7) {
lane_valid = 1;
}
} else if (devno == 3) {
if (lane_id == 8 || lane_id == 10) {
lane_valid = 1;