RE: [PATCH v2 06/10] dt-bindings: PCI: Add bindings support for Tesla FSD SoC

From: Shradha Todi
Date: Tue Jul 01 2025 - 07:12:50 EST




> -----Original Message-----
> From: Rob Herring <robh@xxxxxxxxxx>
> Sent: 28 June 2025 02:43
> To: Shradha Todi <shradha.t@xxxxxxxxxxx>
> Cc: linux-pci@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
linux-
> samsung-soc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-phy@xxxxxxxxxxxxxxxxxxx; linux-
> fsd@xxxxxxxxx; manivannan.sadhasivam@xxxxxxxxxx; lpieralisi@xxxxxxxxxx; kw@xxxxxxxxx;
> bhelgaas@xxxxxxxxxx; jingoohan1@xxxxxxxxx; krzk+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx;
> alim.akhtar@xxxxxxxxxxx; vkoul@xxxxxxxxxx; kishon@xxxxxxxxxx; arnd@xxxxxxxx;
> m.szyprowski@xxxxxxxxxxx; jh80.chung@xxxxxxxxxxx; pankaj.dubey@xxxxxxxxxxx
> Subject: Re: [PATCH v2 06/10] dt-bindings: PCI: Add bindings support for Tesla FSD SoC
>
> On Wed, Jun 25, 2025 at 10:22:25PM +0530, Shradha Todi wrote:
> > Document the PCIe controller device tree bindings for Tesla FSD
> > SoC for both RC and EP.
>
> Drop 'bindings support for ' in the subject.
>
> >
> > Signed-off-by: Shradha Todi <shradha.t@xxxxxxxxxxx>
> > ---
> > .../bindings/pci/samsung,exynos-pcie.yaml | 121 ++++++++++++------
>
> I think this should be its own schema file. There's not much shared.
>

Will make 2 new bindings - samsung,exynos-pcie-common.yaml and
tesla,fsd-pcie.yaml
Does that sound okay?

> > .../bindings/pci/tesla,fsd-pcie-ep.yaml | 91 +++++++++++++
> > 2 files changed, 176 insertions(+), 36 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/pci/tesla,fsd-pcie-ep.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
> b/Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
> > index f20ed7e709f7..595156759b06 100644
> > --- a/Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
> > +++ b/Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
> > @@ -11,16 +11,15 @@ maintainers:
> > - Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
> >
> > description: |+
> > - Exynos5433 SoC PCIe host controller is based on the Synopsys DesignWare
> > + Samsung SoCs PCIe host controller is based on the Synopsys DesignWare
> > PCIe IP and thus inherits all the common properties defined in
> > snps,dw-pcie.yaml.
> >
> > -allOf:
> > - - $ref: /schemas/pci/snps,dw-pcie.yaml#
> > -
> > properties:
> > compatible:
> > - const: samsung,exynos5433-pcie
> > + enum:
> > + - samsung,exynos5433-pcie
> > + - tesla,fsd-pcie
> >
> > reg:
> > items:
> > @@ -37,52 +36,102 @@ properties:
> > interrupts:
> > maxItems: 1
> >
> > - clocks:
> > - items:
> > - - description: PCIe bridge clock
> > - - description: PCIe bus clock
> > -
> > - clock-names:
> > - items:
> > - - const: pcie
> > - - const: pcie_bus
> > -
> > phys:
> > maxItems: 1
> >
> > - vdd10-supply:
> > - description:
> > - Phandle to a regulator that provides 1.0V power to the PCIe block.
> > -
> > - vdd18-supply:
> > - description:
> > - Phandle to a regulator that provides 1.8V power to the PCIe block.
> > -
> > - num-lanes:
> > - const: 1
> > -
> > - num-viewport:
> > - const: 3
> > -
> > required:
> > - reg
> > - reg-names
> > - interrupts
> > - "#address-cells"
> > - "#size-cells"
> > - - "#interrupt-cells"
> > - - interrupt-map
> > - - interrupt-map-mask
> > - ranges
> > - - bus-range
> > - device_type
> > - num-lanes
> > - - num-viewport
> > - clocks
> > - clock-names
> > - phys
> > - - vdd10-supply
> > - - vdd18-supply
> > +
> > +allOf:
> > + - $ref: /schemas/pci/snps,dw-pcie.yaml#
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - tesla,fsd-pcie
> > + then:
> > + properties:
> > + clocks:
> > + maxItems: 4
> > +
> > + clock-names:
> > + items:
> > + - const: aux
> > + - const: dbi
> > + - const: mstr
> > + - const: slv
> > +
> > + samsung,syscon-pcie:
> > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > + description: phandle for system control registers, used to
> > + control signals at system level
> > +
> > + num-lanes:
> > + maximum: 4
> > +
> > + required:
> > + - samsung,syscon-pcie
> > +
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - samsung,exynos5433-pcie
> > + then:
> > + properties:
> > + clocks:
> > + items:
> > + - description: pcie bridge clock
> > + - description: pcie bus clock
> > +
> > + clock-names:
> > + items:
> > + - const: pcie
> > + - const: pcie_bus
> > +
> > + vdd10-supply:
> > + description:
> > + phandle to a regulator that provides 1.0v power to the pcie block.
> > +
> > + vdd18-supply:
> > + description:
> > + phandle to a regulator that provides 1.8v power to the pcie block.
> > +
> > + num-lanes:
> > + const: 1
> > +
> > + num-viewport:
> > + const: 3
> > +
> > + assigned-clocks:
> > + maxItems: 2
> > +
> > + assigned-clock-parents:
> > + maxItems: 2
> > +
> > + assigned-clock-rates:
> > + maxItems: 2
> > +
> > + required:
> > + - "#interrupt-cells"
> > + - interrupt-map
> > + - interrupt-map-mask
> > + - bus-range
> > + - num-viewport
> > + - vdd10-supply
> > + - vdd18-supply
> >
> > unevaluatedProperties: false
> >
> > diff --git a/Documentation/devicetree/bindings/pci/tesla,fsd-pcie-ep.yaml
> b/Documentation/devicetree/bindings/pci/tesla,fsd-pcie-ep.yaml
> > new file mode 100644
> > index 000000000000..f85615a0225d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pci/tesla,fsd-pcie-ep.yaml
> > @@ -0,0 +1,91 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: https://protect2.fireeye.com/v1/url?k=48166268-299d775e-4817e927-74fe485fffe0-
> 300a108993374478&q=1&e=3e3a0fc6-8338-4fe3-b352-
> 2e510a3c6aaa&u=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fpci%2Ftesla%2Cfsd-pcie-ep.yaml%23
> > +$schema: https://protect2.fireeye.com/v1/url?k=60c79c47-014c8971-60c61708-74fe485fffe0-
> 2608e7d54b39a025&q=1&e=3e3a0fc6-8338-4fe3-b352-
> 2e510a3c6aaa&u=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23
> > +
> > +title: Samsung SoC series PCIe Endpoint Controller
> > +
> > +maintainers:
> > + - Shradha Todi <shradha.t@xxxxxxxxxxx>
> > +
> > +description: |+
>
> Don't need '|+'
>
> > + Samsung SoCs PCIe endpoint controller is based on the Synopsys DesignWare
> > + PCIe IP and thus inherits all the common properties defined in
> > + snps,dw-pcie-ep.yaml.
> > +
> > +allOf:
> > + - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> > +
> > +properties:
> > + compatible:
> > + const: tesla,fsd-pcie-ep
> > +
> > + reg:
> > + maxItems: 4
> > +
> > + reg-names:
> > + items:
> > + - const: elbi
> > + - const: dbi
> > + - const: dbi2
> > + - const: addr_space
> > +
> > + clocks:
> > + maxItems: 4
> > +
> > + clock-names:
> > + items:
> > + - const: aux
> > + - const: dbi
> > + - const: mstr
> > + - const: slv
> > +
> > + num-lanes:
> > + maximum: 4
> > +
> > + samsung,syscon-pcie:
> > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > + description: phandle for system control registers, used to
> > + control signals at system level
> > +
> > + phys:
> > + maxItems: 1
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - reg-names
> > + - clocks
> > + - clock-names
> > + - num-lanes
> > + - samsung,syscon-pcie
> > + - phys
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/clock/fsd-clk.h>
> > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > + bus {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > + pcieep0: pcie-ep@16a00000 {
> > + compatible = "tesla,fsd-pcie-ep";
> > + reg = <0x0 0x168b0000 0x0 0x1000>,
> > + <0x0 0x16a00000 0x0 0x2000>,
> > + <0x0 0x16a01000 0x0 0x80>,
> > + <0x0 0x17000000 0x0 0xff0000>;
> > + reg-names = "elbi", "dbi", "dbi2", "addr_space";
> > + clocks = <&clock_fsys1 PCIE_LINK0_IPCLKPORT_AUX_ACLK>,
> > + <&clock_fsys1 PCIE_LINK0_IPCLKPORT_DBI_ACLK>,
> > + <&clock_fsys1 PCIE_LINK0_IPCLKPORT_MSTR_ACLK>,
> > + <&clock_fsys1 PCIE_LINK0_IPCLKPORT_SLV_ACLK>;
> > + clock-names = "aux", "dbi", "mstr", "slv";
> > + num-lanes = <4>;
> > + samsung,syscon-pcie = <&sysreg_fsys1 0x50c>;
> > + phys = <&pciephy1>;
> > + };
> > + };
> > +...
> > --
> > 2.49.0
> >