[PATCH] media: ccs: Accommodate C-PHY into the calculation

David Heidelberg via B4 Relay posted 1 patch 1 month ago
There is a newer version of this series
drivers/media/i2c/ccs/ccs-core.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
[PATCH] media: ccs: Accommodate C-PHY into the calculation
Posted by David Heidelberg via B4 Relay 1 month ago
From: David Heidelberg <david@ixit.cz>

We need to set correct mode for PLL to calculate correct frequency.
Signalling mode is known at this point, so use it for that.

Fixes: 47b6eaf36eba ("media: ccs-pll: Differentiate between CSI-2 D-PHY and C-PHY")
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/media/i2c/ccs/ccs-core.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index f8523140784c7..2d689e47ed094 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -3425,7 +3425,14 @@ static int ccs_probe(struct i2c_client *client)
 	sensor->scale_m = CCS_LIM(sensor, SCALER_N_MIN);
 
 	/* prepare PLL configuration input values */
-	sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
+	switch (sensor->hwcfg.csi_signalling_mode) {
+	case CCS_CSI_SIGNALING_MODE_CSI_2_CPHY:
+		sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_CPHY;
+		break;
+	case CCS_CSI_SIGNALING_MODE_CSI_2_DPHY:
+		sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
+		break;
+	}
 	sensor->pll.csi2.lanes = sensor->hwcfg.lanes;
 	if (CCS_LIM(sensor, CLOCK_CALCULATION) &
 	    CCS_CLOCK_CALCULATION_LANE_SPEED) {

---
base-commit: 6cd6c12031130a349a098dbeb19d8c3070d2dfbe
change-id: 20260106-ccs-account-for-cphy-af9788b6029f

Best regards,
-- 
David Heidelberg <david@ixit.cz>
Re: [PATCH] media: ccs: Accommodate C-PHY into the calculation
Posted by Mehdi Djait 1 month ago
Hi David,

Thank you for the patch

On Tue, Jan 06, 2026 at 04:14:05PM +0100, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
> 
> We need to set correct mode for PLL to calculate correct frequency.
> Signalling mode is known at this point, so use it for that.
> 
> Fixes: 47b6eaf36eba ("media: ccs-pll: Differentiate between CSI-2 D-PHY and C-PHY")
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  drivers/media/i2c/ccs/ccs-core.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index f8523140784c7..2d689e47ed094 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -3425,7 +3425,14 @@ static int ccs_probe(struct i2c_client *client)
>  	sensor->scale_m = CCS_LIM(sensor, SCALER_N_MIN);
>  
>  	/* prepare PLL configuration input values */
> -	sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
> +	switch (sensor->hwcfg.csi_signalling_mode) {
> +	case CCS_CSI_SIGNALING_MODE_CSI_2_CPHY:
> +		sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_CPHY;
> +		break;
> +	case CCS_CSI_SIGNALING_MODE_CSI_2_DPHY:
> +		sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
> +		break;

I think it is safer to add a default case here

--
Kind Regards
Mehdi Djait