Re: [PATCH v5 1/4] media: dt-bindings: nxp,imx8mq-mipi-csi2: Add i.MX8ULP compatible string
From: Frank Li <Frank.li@nxp.com>
Date: 2025-09-02 11:53:11
Also in:
imx, linux-devicetree, linux-media, lkml
On Tue, Sep 02, 2025 at 10:35:54AM +0200, Laurent Pinchart wrote:
On Mon, Sep 01, 2025 at 09:45:39PM -0400, Frank Li wrote:quoted
On Mon, Sep 01, 2025 at 05:46:10PM +0200, Laurent Pinchart wrote:quoted
On Mon, Sep 01, 2025 at 02:25:29PM +0800, Guoniu Zhou wrote:quoted
The CSI-2 receiver in the i.MX8ULP is almost identical to the version present in the i.MX8QXP/QM, but i.MX8ULP CSI-2 controller needs pclk clock as the input clock for its APB interface of Control and Status register(CSR). So add compatible string fsl,imx8ulp-mipi-csi2 and increase maxItems of Clocks (clock-names) to 4 from 3. And keep the same restriction for existed compatible.s/existed/existing/quoted
Signed-off-by: Guoniu Zhou <redacted> --- .../bindings/media/nxp,imx8mq-mipi-csi2.yaml | 46 ++++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-)diff --git a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml index 3389bab266a9adbda313c8ad795b998641df12f3..412cedddb0efee1a49d1b90b02baa7a625c797ec 100644 --- a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml +++ b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml@@ -21,7 +21,9 @@ properties: - fsl,imx8mq-mipi-csi2 - fsl,imx8qxp-mipi-csi2 - items: - - const: fsl,imx8qm-mipi-csi2 + - enum: + - fsl,imx8qm-mipi-csi2 + - fsl,imx8ulp-mipi-csi2 - const: fsl,imx8qxp-mipi-csi2According to this, the ULP version is compatible with the QXP version.quoted
reg:@@ -39,12 +41,16 @@ properties: clock that the RX DPHY receives. - description: ui is the pixel clock (phy_ref up to 333Mhz). See the reference manual for details. + - description: pclk is clock for csr APB interface. + minItems: 3 clock-names: items: - const: core - const: esc - const: ui + - const: pclk + minItems: 3 power-domains: maxItems: 1@@ -130,19 +136,53 @@ allOf: compatible: contains: enum: - - fsl,imx8qxp-mipi-csi2 + - fsl,imx8ulp-mipi-csi2 + then: + properties: + reg: + minItems: 2 + resets: + minItems: 2 + maxItems: 2 + clocks: + minItems: 4 + clock-names: + minItems: 4But according to this, the ULP version requires more clocks than the QXP version.If only clock number difference, generally, it is still compatible and can be fallback, especialy driver use devm_bulk_clk_get_all().That's a driver-specific implementation decision, so I don't think it should be taken into account to decide on compatibility.
It is easy to follow to decide if fallback to existing compatible string. If driver can work with fallback string for new compatible string, we can add it as fallback string. Use fallback string don't affect ABI if we find new feature or bugs need handle specific in drivers. Anyways, at other binding review, most only clk number difference can treat as back compatible string. Frank
quoted
If driver have not sperated drvdata for it, we can fallback to it. It is quite common.quoted
quoted
+ + - if: + properties: + compatible: + contains: + enum: + - fsl,imx8qm-mipi-csi2QM is compatible with the QXP, so you don't need to list it here. contains: const: fsl,imx8qxp-mipi-csi2 is enough to cover both.quoted
+ const: fsl,imx8qxp-mipi-csi2 then: properties: reg: minItems: 2 resets: maxItems: 1 - else: + clocks: + maxItems: 3 + clock-names: + maxItems: 3 + + - if: + properties: + compatible: + contains: + enum: + - fsl,imx8mq-mipi-csi2 + then: properties: reg: maxItems: 1 resets: minItems: 3 + clocks: + maxItems: 3 + clock-names: + maxItems: 3 required: - fsl,mipi-phy-gpr-- Regards, Laurent Pinchart