* [PATCH v3 0/3] phy: rockchip: inno-csidphy: fix 2500 Mbps support and add clock lane phase tuning
@ 2026-06-30 7:48 Gerald Loacker
2026-06-30 7:48 ` [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table Gerald Loacker
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Gerald Loacker @ 2026-06-30 7:48 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel,
devicetree, Gerald Loacker
This series fixes and extends the Rockchip Innosilicon CSI D-PHY driver
to support data rates up to 2500 Mbps and adds optional board-specific
clock lane phase tuning for signal integrity.
Patch 1 fixes an off-by-one error in the rk1808 hsfreq range table:
the final entry was capped at 2499 Mbps, causing a rejection of the
maximum supported rate of 2500 Mbps.
Patches 2 and 3 add an optional rockchip,clk-lane-phase device tree
property that allows tuning the clock lane sampling phase in ~40 ps
steps to compensate for board-level signal integrity variations.
---
Changes in v3:
- dt-bindings: add default for rockchip,clk-lane-phase
- Link to v2: https://patch.msgid.link/20260619-feature-mipi-csi-dphy-4k60-v2-0-323356c2cc2e@wolfvision.net
Changes in v2:
- dt-bindings: improve rockchip,clk-lane-phase description wording
(Conor Dooley)
- Link to v1: https://patch.msgid.link/20260617-feature-mipi-csi-dphy-4k60-v1-0-4611ff00b0ff@wolfvision.net
To: Vinod Koul <vkoul@kernel.org>
To: Neil Armstrong <neil.armstrong@linaro.org>
To: Heiko Stuebner <heiko@sntech.de>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
Cc: linux-phy@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
---
Gerald Loacker (3):
phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table
dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property
phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning
.../bindings/phy/rockchip-inno-csi-dphy.yaml | 10 ++++++++
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 27 +++++++++++++++++++++-
2 files changed, 36 insertions(+), 1 deletion(-)
---
base-commit: 8cd9520d35a6c38db6567e97dd93b1f11f185dc6
change-id: 20260617-feature-mipi-csi-dphy-4k60-9879c3d1fe4f
Best regards,
--
Gerald Loacker <gerald.loacker@wolfvision.net>
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table 2026-06-30 7:48 [PATCH v3 0/3] phy: rockchip: inno-csidphy: fix 2500 Mbps support and add clock lane phase tuning Gerald Loacker @ 2026-06-30 7:48 ` Gerald Loacker 2026-07-10 9:28 ` Michael Riesch 2026-06-30 7:48 ` [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property Gerald Loacker 2026-06-30 7:48 ` [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning Gerald Loacker 2 siblings, 1 reply; 8+ messages in thread From: Gerald Loacker @ 2026-06-30 7:48 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree, Gerald Loacker The rk1808 hsfreq table capped at 2499 Mbps, preventing a data rate of exactly 2500 Mbps. Extend the final entry to 2500 Mbps to support this rate. This is essential for RK3588 reusing this array and fully supporting rates up to 2500 Mbps. Fixes: bd1f775d6027 ("phy/rockchip: add Innosilicon-based CSI dphy") Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> --- drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c index c79fb53d8ee5c..5281f8dea0ad3 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c @@ -170,7 +170,7 @@ static const struct hsfreq_range rk1808_mipidphy_hsfreq_ranges[] = { { 299, 0x06}, { 399, 0x08}, { 499, 0x0b}, { 599, 0x0e}, { 699, 0x10}, { 799, 0x12}, { 999, 0x16}, {1199, 0x1e}, {1399, 0x23}, {1599, 0x2d}, {1799, 0x32}, {1999, 0x37}, - {2199, 0x3c}, {2399, 0x41}, {2499, 0x46} + {2199, 0x3c}, {2399, 0x41}, {2500, 0x46} }; static const struct hsfreq_range rk3326_mipidphy_hsfreq_ranges[] = { -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table 2026-06-30 7:48 ` [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table Gerald Loacker @ 2026-07-10 9:28 ` Michael Riesch 0 siblings, 0 replies; 8+ messages in thread From: Michael Riesch @ 2026-07-10 9:28 UTC (permalink / raw) To: Gerald Loacker, Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree Hi Gerald, Thanks for your work. On 6/30/26 09:48, Gerald Loacker wrote: > The rk1808 hsfreq table capped at 2499 Mbps, preventing a data rate of > exactly 2500 Mbps. Extend the final entry to 2500 Mbps to support this > rate. > > This is essential for RK3588 reusing this array and fully supporting > rates up to 2500 Mbps. Makes sense to me. > > Fixes: bd1f775d6027 ("phy/rockchip: add Innosilicon-based CSI dphy") > Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> Reviewed-by: Michael Riesch <michael.riesch@collabora.com> Best regards, Michael > --- > drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > index c79fb53d8ee5c..5281f8dea0ad3 100644 > --- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > +++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > @@ -170,7 +170,7 @@ static const struct hsfreq_range rk1808_mipidphy_hsfreq_ranges[] = { > { 299, 0x06}, { 399, 0x08}, { 499, 0x0b}, { 599, 0x0e}, > { 699, 0x10}, { 799, 0x12}, { 999, 0x16}, {1199, 0x1e}, > {1399, 0x23}, {1599, 0x2d}, {1799, 0x32}, {1999, 0x37}, > - {2199, 0x3c}, {2399, 0x41}, {2499, 0x46} > + {2199, 0x3c}, {2399, 0x41}, {2500, 0x46} > }; > > static const struct hsfreq_range rk3326_mipidphy_hsfreq_ranges[] = { > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property 2026-06-30 7:48 [PATCH v3 0/3] phy: rockchip: inno-csidphy: fix 2500 Mbps support and add clock lane phase tuning Gerald Loacker 2026-06-30 7:48 ` [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table Gerald Loacker @ 2026-06-30 7:48 ` Gerald Loacker 2026-06-30 19:25 ` Rob Herring (Arm) 2026-07-10 9:30 ` Michael Riesch 2026-06-30 7:48 ` [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning Gerald Loacker 2 siblings, 2 replies; 8+ messages in thread From: Gerald Loacker @ 2026-06-30 7:48 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree, Gerald Loacker Add support for the optional rockchip,clk-lane-phase device tree property to allow board-specific tuning of the clock lane sampling phase for improved signal integrity across supported data rates. Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> --- .../devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml b/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml index 03950b3cad08c..913aa688c0ae9 100644 --- a/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml +++ b/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml @@ -56,6 +56,16 @@ properties: description: Some additional phy settings are access through GRF regs. + rockchip,clk-lane-phase: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 7 + default: 3 + description: + Clock lane sampling phase selection (hardware tap index 0–7). Each step + corresponds to an approximately 40 ps delay as described in the hardware + specification. + required: - compatible - reg -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property 2026-06-30 7:48 ` [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property Gerald Loacker @ 2026-06-30 19:25 ` Rob Herring (Arm) 2026-07-10 9:30 ` Michael Riesch 1 sibling, 0 replies; 8+ messages in thread From: Rob Herring (Arm) @ 2026-06-30 19:25 UTC (permalink / raw) To: Gerald Loacker Cc: Conor Dooley, linux-kernel, Krzysztof Kozlowski, Neil Armstrong, linux-arm-kernel, linux-rockchip, Vinod Koul, devicetree, Heiko Stuebner, linux-phy On Tue, 30 Jun 2026 09:48:25 +0200, Gerald Loacker wrote: > Add support for the optional rockchip,clk-lane-phase device tree property > to allow board-specific tuning of the clock lane sampling phase for > improved signal integrity across supported data rates. > > Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> > --- > .../devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml | 10 ++++++++++ > 1 file changed, 10 insertions(+) > Acked-by: Rob Herring (Arm) <robh@kernel.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property 2026-06-30 7:48 ` [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property Gerald Loacker 2026-06-30 19:25 ` Rob Herring (Arm) @ 2026-07-10 9:30 ` Michael Riesch 1 sibling, 0 replies; 8+ messages in thread From: Michael Riesch @ 2026-07-10 9:30 UTC (permalink / raw) To: Gerald Loacker, Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree Hi Gerald, On 6/30/26 09:48, Gerald Loacker wrote: > Add support for the optional rockchip,clk-lane-phase device tree property > to allow board-specific tuning of the clock lane sampling phase for > improved signal integrity across supported data rates. > > Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> Acked-by: Michael Riesch <michael.riesch@collabora.com> Thanks and best regards, Michael > --- > .../devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml b/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml > index 03950b3cad08c..913aa688c0ae9 100644 > --- a/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml > +++ b/Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml > @@ -56,6 +56,16 @@ properties: > description: > Some additional phy settings are access through GRF regs. > > + rockchip,clk-lane-phase: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 7 > + default: 3 > + description: > + Clock lane sampling phase selection (hardware tap index 0–7). Each step > + corresponds to an approximately 40 ps delay as described in the hardware > + specification. > + > required: > - compatible > - reg > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning 2026-06-30 7:48 [PATCH v3 0/3] phy: rockchip: inno-csidphy: fix 2500 Mbps support and add clock lane phase tuning Gerald Loacker 2026-06-30 7:48 ` [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table Gerald Loacker 2026-06-30 7:48 ` [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property Gerald Loacker @ 2026-06-30 7:48 ` Gerald Loacker 2026-07-10 9:31 ` Michael Riesch 2 siblings, 1 reply; 8+ messages in thread From: Gerald Loacker @ 2026-06-30 7:48 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree, Gerald Loacker At high data rates like 4K60 (2500 Mbps), such as when using an LT6911GXD bridge chip on an RK3588 board, fixed default timing parameters can cause signal integrity issues and clock-data recovery failures. The driver currently lacks a mechanism to adjust the clock lane sampling phase to compensate for board-specific trace variations. Resolve this by parsing and applying the optional 'rockchip,clk-lane-phase' device tree property. This enables board-specific tuning of the clock lane sampling phase in ~40 ps steps (range 0-7) to optimize link stability. If the property is absent, the driver falls back to the hardware default. Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> --- drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c index 5281f8dea0ad3..3a15840e86cad 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c @@ -69,6 +69,10 @@ #define RK1808_CSIDPHY_CLK_CALIB_EN 0x168 #define RK3568_CSIDPHY_CLK_CALIB_EN 0x168 +#define CSIDPHY_LANE_CLK_3_PHASE 0x38 +#define CSIDPHY_CLK_PHASE_MASK GENMASK(6, 4) +#define CSIDPHY_CLK_PHASE_DEFAULT 3 + #define RESETS_MAX 2 /* @@ -151,6 +155,7 @@ struct rockchip_inno_csidphy { const struct dphy_drv_data *drv_data; struct phy_configure_opts_mipi_dphy config; u8 hsfreq; + int clk_phase; }; static inline void write_grf_reg(struct rockchip_inno_csidphy *priv, @@ -304,6 +309,13 @@ static int rockchip_inno_csidphy_power_on(struct phy *phy) rockchip_inno_csidphy_ths_settle(priv, priv->hsfreq, CSIDPHY_LANE_THS_SETTLE(i)); + if (priv->clk_phase >= 0) { + val = readl(priv->phy_base + CSIDPHY_LANE_CLK_3_PHASE); + val &= ~CSIDPHY_CLK_PHASE_MASK; + val |= FIELD_PREP(CSIDPHY_CLK_PHASE_MASK, priv->clk_phase); + writel(val, priv->phy_base + CSIDPHY_LANE_CLK_3_PHASE); + } + write_grf_reg(priv, GRF_DPHY_CSIPHY_CLKLANE_EN, 0x1); write_grf_reg(priv, GRF_DPHY_CSIPHY_DATALANE_EN, GENMASK(priv->config.lanes - 1, 0)); @@ -449,6 +461,7 @@ static int rockchip_inno_csidphy_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct phy_provider *phy_provider; struct phy *phy; + u32 phase; int ret; priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); @@ -464,6 +477,18 @@ static int rockchip_inno_csidphy_probe(struct platform_device *pdev) return -ENODEV; } + priv->clk_phase = -1; + if (device_property_read_u32(dev, "rockchip,clk-lane-phase", + &phase) == 0) { + if (phase >= BIT(3)) { + dev_err(dev, + "rockchip,clk-lane-phase %u out of range [0,7]\n", + phase); + return -EINVAL; + } + priv->clk_phase = phase; + } + priv->grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,grf"); if (IS_ERR(priv->grf)) { -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning 2026-06-30 7:48 ` [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning Gerald Loacker @ 2026-07-10 9:31 ` Michael Riesch 0 siblings, 0 replies; 8+ messages in thread From: Michael Riesch @ 2026-07-10 9:31 UTC (permalink / raw) To: Gerald Loacker, Vinod Koul, Neil Armstrong, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-phy, linux-arm-kernel, linux-rockchip, linux-kernel, devicetree Hi Gerald, Thanks for your patch. On 6/30/26 09:48, Gerald Loacker wrote: > At high data rates like 4K60 (2500 Mbps), such as when using an > LT6911GXD bridge chip on an RK3588 board, fixed default timing parameters > can cause signal integrity issues and clock-data recovery failures. > The driver currently lacks a mechanism to adjust the clock lane sampling > phase to compensate for board-specific trace variations. > > Resolve this by parsing and applying the optional 'rockchip,clk-lane-phase' > device tree property. This enables board-specific tuning of the clock > lane sampling phase in ~40 ps steps (range 0-7) to optimize link > stability. If the property is absent, the driver falls back to the > hardware default. > > Signed-off-by: Gerald Loacker <gerald.loacker@wolfvision.net> > --- > drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 25 ++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > index 5281f8dea0ad3..3a15840e86cad 100644 > --- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > +++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c > @@ -69,6 +69,10 @@ > #define RK1808_CSIDPHY_CLK_CALIB_EN 0x168 > #define RK3568_CSIDPHY_CLK_CALIB_EN 0x168 > > +#define CSIDPHY_LANE_CLK_3_PHASE 0x38 > +#define CSIDPHY_CLK_PHASE_MASK GENMASK(6, 4) > +#define CSIDPHY_CLK_PHASE_DEFAULT 3 This default value definition is unused right now, but... > + > #define RESETS_MAX 2 > > /* > @@ -151,6 +155,7 @@ struct rockchip_inno_csidphy { > const struct dphy_drv_data *drv_data; > struct phy_configure_opts_mipi_dphy config; > u8 hsfreq; > + int clk_phase; > }; > > static inline void write_grf_reg(struct rockchip_inno_csidphy *priv, > @@ -304,6 +309,13 @@ static int rockchip_inno_csidphy_power_on(struct phy *phy) > rockchip_inno_csidphy_ths_settle(priv, priv->hsfreq, > CSIDPHY_LANE_THS_SETTLE(i)); > > + if (priv->clk_phase >= 0) { ...you can make sure that clk_phase has a valid value in any case (apply default value defined above if DT does not define it or defines something invalid) and write the register unconditionally. > + val = readl(priv->phy_base + CSIDPHY_LANE_CLK_3_PHASE); > + val &= ~CSIDPHY_CLK_PHASE_MASK; > + val |= FIELD_PREP(CSIDPHY_CLK_PHASE_MASK, priv->clk_phase); > + writel(val, priv->phy_base + CSIDPHY_LANE_CLK_3_PHASE); > + } > + > write_grf_reg(priv, GRF_DPHY_CSIPHY_CLKLANE_EN, 0x1); > write_grf_reg(priv, GRF_DPHY_CSIPHY_DATALANE_EN, > GENMASK(priv->config.lanes - 1, 0)); > @@ -449,6 +461,7 @@ static int rockchip_inno_csidphy_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > struct phy_provider *phy_provider; > struct phy *phy; > + u32 phase; > int ret; > > priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); > @@ -464,6 +477,18 @@ static int rockchip_inno_csidphy_probe(struct platform_device *pdev) > return -ENODEV; > } > > + priv->clk_phase = -1; > + if (device_property_read_u32(dev, "rockchip,clk-lane-phase", > + &phase) == 0) { > + if (phase >= BIT(3)) { if (phase > 7) > + dev_err(dev, > + "rockchip,clk-lane-phase %u out of range [0,7]\n", > + phase); > + return -EINVAL; Seems a bit harsh. What would you think about printing a warning and applying the default value? > + } > + priv->clk_phase = phase; > + } Maybe ret = device_property_read_u32(dev, "rockchip,clk-lane-phase", &priv->clk_phase); if (ret < 0 || priv->clk_phase > 7) { dev_info(dev, "found %s value for rockchip,clk-lane-phase," "assuming default value", ret < 0 ? "no" : "invalid"); priv->clk_phase = CSIDPHY_CLK_PHASE_DEFAULT; } would do the trick too? Best regards, Michael > + > priv->grf = syscon_regmap_lookup_by_phandle(dev->of_node, > "rockchip,grf"); > if (IS_ERR(priv->grf)) { > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-07-10 9:31 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-30 7:48 [PATCH v3 0/3] phy: rockchip: inno-csidphy: fix 2500 Mbps support and add clock lane phase tuning Gerald Loacker 2026-06-30 7:48 ` [PATCH v3 1/3] phy: rockchip: phy-rockchip-inno-csidphy: fix rk1808 hsfreq table Gerald Loacker 2026-07-10 9:28 ` Michael Riesch 2026-06-30 7:48 ` [PATCH v3 2/3] dt-bindings: phy: rockchip-inno-csi-dphy: add rockchip,clk-lane-phase property Gerald Loacker 2026-06-30 19:25 ` Rob Herring (Arm) 2026-07-10 9:30 ` Michael Riesch 2026-06-30 7:48 ` [PATCH v3 3/3] phy: rockchip: phy-rockchip-inno-csidphy: add clock lane phase tuning Gerald Loacker 2026-07-10 9:31 ` Michael Riesch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox