video: rockchip: vehicle: dts config virtual channel support

Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
Change-Id: I72d08995ebe700555617fba2554f0587145da70c
This commit is contained in:
Wang Panzhenzhuan
2025-04-03 17:43:13 +08:00
committed by Tao Huang
parent 2d31a747d3
commit 03955f9e63
2 changed files with 14 additions and 2 deletions

View File

@@ -3221,7 +3221,10 @@ static int vehicle_cif_stream_start(struct vehicle_cif *cif)
/* just need init virtual channel 0 */
channel = &cif->channels[0];
channel->id = 0;
channel->id = cif->vc;
VEHICLE_INFO("@%s channel->id: %d.\n", __func__, channel->id);
vehicle_cif_csi_channel_init(cif, channel);
if (cif->chip_id < CHIP_RK3588_VEHICLE_CIF)
vehicle_cif_csi_channel_set(cif, channel, V4L2_MBUS_CSI2_DPHY);
@@ -5118,12 +5121,20 @@ static int cif_parse_dt(struct vehicle_cif *cif)
VEHICLE_INFO("%s:Get cif, drop-frames failed!\n", __func__);
cif->drop_frames = 0; //default drop frames;
}
if (of_property_read_u32(dev->of_node, "cif,chip-id",
&cif->chip_id)) {
VEHICLE_INFO("%s:Get cif, chip_id failed!\n", __func__);
cif->chip_id = CHIP_RK3588_VEHICLE_CIF; //default rk3588;
}
if (of_property_read_u32(dev->of_node, "cif,virtual-channel",
&cif->vc)) {
VEHICLE_INFO("%s:Get cif, virtual-channel failed!\n", __func__);
cif->vc = 0; //default virtual channel;
}
if ((cif->vc < 0) || (cif->vc > 3)) {
VEHICLE_DGERR("virtual-channel over range, use default 0!\n");
cif->vc = 0;
}
cif_node = of_parse_phandle(dev->of_node, "rockchip,cif", 0);
cif->base = (char *)of_iomap(cif_node, 0);

View File

@@ -134,6 +134,7 @@ struct vehicle_cif {
struct csi2_dphy_hw *dphy_hw;
int num_channels;
int chip_id;
int vc;
int inf_id;
unsigned int csi_host_idx;
struct vehicle_csi_channel_info channels[RKCIF_MAX_CSI_CHANNEL];