Document the MIPI CSI2 controller device tree bindings for Tesla
FSD SoC
Signed-off-by: Inbaraj E <inbaraj.e@samsung.com>
---
.../bindings/media/nxp,imx-mipi-csi2.yaml | 88 ++++++++++++++-----
1 file changed, 68 insertions(+), 20 deletions(-)
diff --git a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
index 03a23a26c4f3..802fb1bd150d 100644
--- a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
+++ b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
@@ -14,7 +14,7 @@ description: |-
The NXP i.MX7 and i.MX8 families contain SoCs that include a MIPI CSI-2
receiver IP core named CSIS. The IP core originates from Samsung, and may be
compatible with some of the Exynos4 and S5P SoCs. i.MX7 SoCs use CSIS version
- 3.3, and i.MX8 SoCs use CSIS version 3.6.3.
+ 3.3, i.MX8 SoCs use CSIS version 3.6.3 and FSD SoC uses CSIS version 4.3.
While the CSI-2 receiver is separate from the MIPI D-PHY IP core, the PHY is
completely wrapped by the CSIS and doesn't expose a control interface of its
@@ -26,6 +26,7 @@ properties:
- enum:
- fsl,imx7-mipi-csi2
- fsl,imx8mm-mipi-csi2
+ - tesla,fsd-mipi-csi2
- items:
- enum:
- fsl,imx8mp-mipi-csi2
@@ -38,24 +39,21 @@ properties:
maxItems: 1
clocks:
- minItems: 3
- items:
- - description: The peripheral clock (a.k.a. APB clock)
- - description: The external clock (optionally used as the pixel clock)
- - description: The MIPI D-PHY clock
- - description: The AXI clock
+ minItems: 2
+ maxItems: 4
clock-names:
- minItems: 3
- items:
- - const: pclk
- - const: wrap
- - const: phy
- - const: axi
+ minItems: 2
+ maxItems: 4
power-domains:
maxItems: 1
+ samsung,syscon-csis:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description:
+ Syscon used to hold and release the reset of MIPI D-PHY
+
phy-supply:
description: The MIPI D-PHY digital power supply
@@ -85,7 +83,8 @@ properties:
properties:
data-lanes:
description:
- Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines.
+ Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data
+ lines.
minItems: 1
items:
- const: 1
@@ -107,7 +106,6 @@ required:
- interrupts
- clocks
- clock-names
- - power-domains
- ports
additionalProperties: false
@@ -116,20 +114,70 @@ allOf:
- if:
properties:
compatible:
- contains:
- const: fsl,imx7-mipi-csi2
+ const: fsl,imx7-mipi-csi2
then:
+ properties:
+ clocks:
+ items:
+ - description: The peripheral clock (a.k.a. APB clock)
+ - description: The external clock (optionally used as the pixel
+ clock)
+ - description: The MIPI D-PHY clock
+ clock-names:
+ items:
+ - const: pclk
+ - const: wrap
+ - const: phy
+ samsung,syscon-csis: false
required:
+ - power-domains
- phy-supply
- resets
- else:
+
+ - if:
+ properties:
+ compatible:
+ const: fsl,imx8mm-mipi-csi2
+ then:
properties:
clocks:
- minItems: 4
+ items:
+ - description: The peripheral clock (a.k.a. APB clock)
+ - description: The external clock (optionally used as the pixel
+ clock)
+ - description: The MIPI D-PHY clock
+ - description: The AXI clock
clock-names:
- minItems: 4
+ items:
+ - const: pclk
+ - const: wrap
+ - const: phy
+ - const: axi
+ samsung,syscon-csis: false
phy-supply: false
resets: false
+ required:
+ - power-domains
+
+ - if:
+ properties:
+ compatible:
+ const: tesla,fsd-mipi-csi2
+ then:
+ properties:
+ clocks:
+ items:
+ - description: The peripheral clock (a.k.a. APB clock)
+ - description: The DMA clock
+ clocks-names:
+ items:
+ - const: pclk
+ - const: aclk
+ phy-supply: false
+ resets: false
+ power-domains: false
+ required:
+ - samsung,syscon-csis
examples:
- |
--
2.49.0
On 14/08/2025 16:09, Inbaraj E wrote: > Document the MIPI CSI2 controller device tree bindings for Tesla > FSD SoC Explain the hardware. > > Signed-off-by: Inbaraj E <inbaraj.e@samsung.com> > --- > .../bindings/media/nxp,imx-mipi-csi2.yaml | 88 ++++++++++++++----- > 1 file changed, 68 insertions(+), 20 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > index 03a23a26c4f3..802fb1bd150d 100644 > --- a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > +++ b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > @@ -14,7 +14,7 @@ description: |- > The NXP i.MX7 and i.MX8 families contain SoCs that include a MIPI CSI-2 > receiver IP core named CSIS. The IP core originates from Samsung, and may be > compatible with some of the Exynos4 and S5P SoCs. i.MX7 SoCs use CSIS version > - 3.3, and i.MX8 SoCs use CSIS version 3.6.3. > + 3.3, i.MX8 SoCs use CSIS version 3.6.3 and FSD SoC uses CSIS version 4.3. > > While the CSI-2 receiver is separate from the MIPI D-PHY IP core, the PHY is > completely wrapped by the CSIS and doesn't expose a control interface of its > @@ -26,6 +26,7 @@ properties: > - enum: > - fsl,imx7-mipi-csi2 > - fsl,imx8mm-mipi-csi2 > + - tesla,fsd-mipi-csi2 Isn't this Samsung CSI IP? Why are you adding it to NXP? Nothing in commit msg helps me to understand that. > - items: > - enum: > - fsl,imx8mp-mipi-csi2 > @@ -38,24 +39,21 @@ properties: > maxItems: 1 > > clocks: > - minItems: 3 > - items: > - - description: The peripheral clock (a.k.a. APB clock) > - - description: The external clock (optionally used as the pixel clock) > - - description: The MIPI D-PHY clock > - - description: The AXI clock > + minItems: 2 > + maxItems: 4 > > clock-names: > - minItems: 3 > - items: > - - const: pclk > - - const: wrap > - - const: phy > - - const: axi > + minItems: 2 > + maxItems: 4 > > power-domains: > maxItems: 1 > > + samsung,syscon-csis: samsung, so not nxp. Even more confusing. Best regards, Krzysztof
Hi Krzysztof, Thanks for the review. > > Explain the hardware. I'll explain in the next patchset. > > > > > Signed-off-by: Inbaraj E <inbaraj.e@samsung.com> > > --- > > .../bindings/media/nxp,imx-mipi-csi2.yaml | 88 ++++++++++++++----- > > 1 file changed, 68 insertions(+), 20 deletions(-) > > > > diff --git > > a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > > b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > > index 03a23a26c4f3..802fb1bd150d 100644 > > --- a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > > +++ b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml > > @@ -14,7 +14,7 @@ description: |- > > The NXP i.MX7 and i.MX8 families contain SoCs that include a MIPI CSI-2 > > receiver IP core named CSIS. The IP core originates from Samsung, and > may be > > compatible with some of the Exynos4 and S5P SoCs. i.MX7 SoCs use > > CSIS version > > - 3.3, and i.MX8 SoCs use CSIS version 3.6.3. > > + 3.3, i.MX8 SoCs use CSIS version 3.6.3 and FSD SoC uses CSIS version 4.3. > > > > While the CSI-2 receiver is separate from the MIPI D-PHY IP core, the PHY > is > > completely wrapped by the CSIS and doesn't expose a control > > interface of its @@ -26,6 +26,7 @@ properties: > > - enum: > > - fsl,imx7-mipi-csi2 > > - fsl,imx8mm-mipi-csi2 > > + - tesla,fsd-mipi-csi2 > > > Isn't this Samsung CSI IP? Yes, it is Samsung CSI IP. Why are you adding it to NXP? Samsung CSIS IP core present in Exynos(samsung/exynos4-is/mipi-csis.c) series is completely different from the one in the Tesla FSD SoC. However, it is compatible with the samsung CSIS IP used in the NXP SoC. For better code reusability, I am integrating it with the NXP imx-mipi-csis driver. > Nothing in commit, msg helps me to understand that. I'll explain the same in commit description as well. > > > - items: > > - enum: > > - fsl,imx8mp-mipi-csi2 > > @@ -38,24 +39,21 @@ properties: > > maxItems: 1 > > > > clocks: > > - minItems: 3 > > - items: > > - - description: The peripheral clock (a.k.a. APB clock) > > - - description: The external clock (optionally used as the pixel clock) > > - - description: The MIPI D-PHY clock > > - - description: The AXI clock > > + minItems: 2 > > + maxItems: 4 > > > > clock-names: > > - minItems: 3 > > - items: > > - - const: pclk > > - - const: wrap > > - - const: phy > > - - const: axi > > + minItems: 2 > > + maxItems: 4 > > > > power-domains: > > maxItems: 1 > > > > + samsung,syscon-csis: > > samsung, so not nxp. Even more confusing. > I used samsung,syscon-csis because the system controller on Tesla FSD follows Samsung's sysreg design. > > Best regards, > Krzysztof Regards, Inbaraj E
On 22/08/2025 15:39, Inbaraj E wrote: >>> >>> power-domains: >>> maxItems: 1 >>> >>> + samsung,syscon-csis: >> >> samsung, so not nxp. Even more confusing. >> > > I used samsung,syscon-csis because the system controller on Tesla FSD > follows Samsung's sysreg design. OK, this is property for Tesla though, so please use tesla prefix. Best regards, Krzysztof
> On 22/08/2025 15:39, Inbaraj E wrote: > >>> > >>> power-domains: > >>> maxItems: 1 > >>> > >>> + samsung,syscon-csis: > >> > >> samsung, so not nxp. Even more confusing. > >> > > > > I used samsung,syscon-csis because the system controller on Tesla FSD > > follows Samsung's sysreg design. > > OK, this is property for Tesla though, so please use tesla prefix. Using tesla,syscon-csis results in a "prefix not found" issue when running dtbs_check Regards, Inbaraj E
On 22/08/2025 16:00, Inbaraj E wrote: >> On 22/08/2025 15:39, Inbaraj E wrote: >>>>> >>>>> power-domains: >>>>> maxItems: 1 >>>>> >>>>> + samsung,syscon-csis: >>>> >>>> samsung, so not nxp. Even more confusing. >>>> >>> >>> I used samsung,syscon-csis because the system controller on Tesla FSD >>> follows Samsung's sysreg design. >> >> OK, this is property for Tesla though, so please use tesla prefix. > > Using tesla,syscon-csis results in a "prefix not found" issue when running dtbs_check Because you develop on ancient, 10 year old downstream kernel? You really do not try enough and this is just wasting our time. Please think and really carefully check your replies. What prefix do you have in compatible? This command: git grep tesla, | wc -l gives '99' results including obviously vendor prefix. So your warning is basically impossible or your code is just broken. Don't just ask maintainers on every little trouble you have. You must debug it. Not we. Best regards, Krzysztof
Hi Krzysztof, > > > > Using tesla,syscon-csis results in a "prefix not found" issue when > > running dtbs_check > Because you develop on ancient, 10 year old downstream kernel? > > You really do not try enough and this is just wasting our time. > > Please think and really carefully check your replies. What prefix do you have > in compatible? This command: > git grep tesla, | wc -l > > gives '99' results including obviously vendor prefix. > > So your warning is basically impossible or your code is just broken. > Don't just ask maintainers on every little trouble you have. You must debug > it. Not we. > Sorry, I made a mistake while running dtbs_check. I'll use the tesla prefix in the next patchset Regards, Inbaraj E
© 2016 - 2025 Red Hat, Inc.