From 03955f9e63eade807fbd0c96350da7ef1d0a6b37 Mon Sep 17 00:00:00 2001 From: Wang Panzhenzhuan Date: Thu, 3 Apr 2025 17:43:13 +0800 Subject: [PATCH] video: rockchip: vehicle: dts config virtual channel support Signed-off-by: Wang Panzhenzhuan Change-Id: I72d08995ebe700555617fba2554f0587145da70c --- drivers/video/rockchip/vehicle/vehicle_cif.c | 15 +++++++++++++-- drivers/video/rockchip/vehicle/vehicle_cif.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/video/rockchip/vehicle/vehicle_cif.c b/drivers/video/rockchip/vehicle/vehicle_cif.c index 887d35fa827e..f0dd1b7dc987 100644 --- a/drivers/video/rockchip/vehicle/vehicle_cif.c +++ b/drivers/video/rockchip/vehicle/vehicle_cif.c @@ -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); diff --git a/drivers/video/rockchip/vehicle/vehicle_cif.h b/drivers/video/rockchip/vehicle/vehicle_cif.h index 372a30da80a2..1bf7e2ab80da 100644 --- a/drivers/video/rockchip/vehicle/vehicle_cif.h +++ b/drivers/video/rockchip/vehicle/vehicle_cif.h @@ -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];