Message ID | 710257e49c4b3d07fa98b3e5a829b807f74b54d7.1571638827.git.eswara.kota@linux.intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | PCI: Add Intel PCIe Driver and respective dt-binding yaml file | expand |
On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: > Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs s/shcemas/schemas/ > which is Synopsys DesignWare based PCIe core. The revision history below doesn't need to be in the commit mesage and so you should add a '---' before the following (and thanks for the detailed history). Besides that: Reviewed-by: Andrew Murray <andrew.murray@arm.com> > > changes on v4: > Add "snps,dw-pcie" compatible. > Rename phy-names property value to pcie. > And maximum and minimum values to num-lanes. > Add ref for reset-assert-ms entry and update the > description for easy understanding. > Remove pcie core interrupt entry. > > changes on v3: > Add the appropriate License-Identifier > Rename intel,rst-interval to 'reset-assert-us' > Add additionalProperties: false > Rename phy-names to 'pciephy' > Remove the dtsi node split of SoC and board in the example > Add #interrupt-cells = <1>; or else interrupt parsing will fail > Name yaml file with compatible name > > Signed-off-by: Dilip Kota <eswara.kota@linux.intel.com> > --- > .../devicetree/bindings/pci/intel-gw-pcie.yaml | 135 +++++++++++++++++++++ > 1 file changed, 135 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > > diff --git a/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > new file mode 100644 > index 000000000000..49dd87ec1e3d > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > @@ -0,0 +1,135 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: PCIe RC controller on Intel Gateway SoCs > + > +maintainers: > + - Dilip Kota <eswara.kota@linux.intel.com> > + > +properties: > + compatible: > + items: > + - const: intel,lgm-pcie > + - const: snps,dw-pcie > + > + device_type: > + const: pci > + > + "#address-cells": > + const: 3 > + > + "#size-cells": > + const: 2 > + > + reg: > + items: > + - description: Controller control and status registers. > + - description: PCIe configuration registers. > + - description: Controller application registers. > + > + reg-names: > + items: > + - const: dbi > + - const: config > + - const: app > + > + ranges: > + description: Ranges for the PCI memory and I/O regions. > + > + resets: > + maxItems: 1 > + > + clocks: > + description: PCIe registers interface clock. > + > + phys: > + maxItems: 1 > + > + phy-names: > + const: pcie > + > + reset-gpios: > + maxItems: 1 > + > + num-lanes: > + minimum: 1 > + maximum: 2 > + description: Number of lanes to use for this port. > + > + linux,pci-domain: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: PCI domain ID. > + > + '#interrupt-cells': > + const: 1 > + > + interrupt-map-mask: > + description: Standard PCI IRQ mapping properties. > + > + interrupt-map: > + description: Standard PCI IRQ mapping properties. > + > + max-link-speed: > + description: Specify PCI Gen for link capability. > + > + bus-range: > + description: Range of bus numbers associated with this controller. > + > + reset-assert-ms: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + Delay after asserting reset to the PCIe device. > + Some devices need an interval upto 500ms. By default it is 100ms. > + > +required: > + - compatible > + - device_type > + - reg > + - reg-names > + - ranges > + - resets > + - clocks > + - phys > + - phy-names > + - reset-gpios > + - num-lanes > + - linux,pci-domain > + - interrupt-map > + - interrupt-map-mask > + > +additionalProperties: false > + > +examples: > + - | > + pcie10:pcie@d0e00000 { > + compatible = "intel,lgm-pcie", "snps,dw-pcie"; > + device_type = "pci"; > + #address-cells = <3>; > + #size-cells = <2>; > + reg = <0xd0e00000 0x1000>, > + <0xd2000000 0x800000>, > + <0xd0a41000 0x1000>; > + reg-names = "dbi", "config", "app"; > + linux,pci-domain = <0>; > + max-link-speed = <4>; > + bus-range = <0x00 0x08>; > + interrupt-parent = <&ioapic1>; > + #interrupt-cells = <1>; > + interrupt-map-mask = <0 0 0 0x7>; > + interrupt-map = <0 0 0 1 &ioapic1 27 1>, > + <0 0 0 2 &ioapic1 28 1>, > + <0 0 0 3 &ioapic1 29 1>, > + <0 0 0 4 &ioapic1 30 1>; > + ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>; > + resets = <&rcu0 0x50 0>; > + clocks = <&cgu0 LGM_GCLK_PCIE10>; > + phys = <&cb0phy0>; > + phy-names = "pcie"; > + status = "okay"; > + reset-assert-ms = <500>; > + reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; > + num-lanes = <2>; > + }; > -- > 2.11.0 >
Hi Andrew Murray, On 10/21/2019 7:19 PM, Andrew Murray wrote: > On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: >> Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs > s/shcemas/schemas/ > >> which is Synopsys DesignWare based PCIe core. > The revision history below doesn't need to be in the commit mesage and > so you should add a '---' before the following (and thanks for the > detailed history). > > Besides that: > > Reviewed-by: Andrew Murray <andrew.murray@arm.com> Thank you for the review. I will fix the conventions Regards, Dilip > >> changes on v4: >> Add "snps,dw-pcie" compatible. >> Rename phy-names property value to pcie. >> And maximum and minimum values to num-lanes. >> Add ref for reset-assert-ms entry and update the >> description for easy understanding. >> Remove pcie core interrupt entry. >> >> changes on v3: >> Add the appropriate License-Identifier >> Rename intel,rst-interval to 'reset-assert-us' >> Add additionalProperties: false >> Rename phy-names to 'pciephy' >> Remove the dtsi node split of SoC and board in the example >> Add #interrupt-cells = <1>; or else interrupt parsing will fail >> Name yaml file with compatible name >> >> Signed-off-by: Dilip Kota <eswara.kota@linux.intel.com> >> --- >> .../devicetree/bindings/pci/intel-gw-pcie.yaml | 135 +++++++++++++++++++++ >> 1 file changed, 135 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml >> >> diff --git a/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml >> new file mode 100644 >> index 000000000000..49dd87ec1e3d >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml >> @@ -0,0 +1,135 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: PCIe RC controller on Intel Gateway SoCs >> + >> +maintainers: >> + - Dilip Kota <eswara.kota@linux.intel.com> >> + >> +properties: >> + compatible: >> + items: >> + - const: intel,lgm-pcie >> + - const: snps,dw-pcie >> + >> + device_type: >> + const: pci >> + >> + "#address-cells": >> + const: 3 >> + >> + "#size-cells": >> + const: 2 >> + >> + reg: >> + items: >> + - description: Controller control and status registers. >> + - description: PCIe configuration registers. >> + - description: Controller application registers. >> + >> + reg-names: >> + items: >> + - const: dbi >> + - const: config >> + - const: app >> + >> + ranges: >> + description: Ranges for the PCI memory and I/O regions. >> + >> + resets: >> + maxItems: 1 >> + >> + clocks: >> + description: PCIe registers interface clock. >> + >> + phys: >> + maxItems: 1 >> + >> + phy-names: >> + const: pcie >> + >> + reset-gpios: >> + maxItems: 1 >> + >> + num-lanes: >> + minimum: 1 >> + maximum: 2 >> + description: Number of lanes to use for this port. >> + >> + linux,pci-domain: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: PCI domain ID. >> + >> + '#interrupt-cells': >> + const: 1 >> + >> + interrupt-map-mask: >> + description: Standard PCI IRQ mapping properties. >> + >> + interrupt-map: >> + description: Standard PCI IRQ mapping properties. >> + >> + max-link-speed: >> + description: Specify PCI Gen for link capability. >> + >> + bus-range: >> + description: Range of bus numbers associated with this controller. >> + >> + reset-assert-ms: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: | >> + Delay after asserting reset to the PCIe device. >> + Some devices need an interval upto 500ms. By default it is 100ms. >> + >> +required: >> + - compatible >> + - device_type >> + - reg >> + - reg-names >> + - ranges >> + - resets >> + - clocks >> + - phys >> + - phy-names >> + - reset-gpios >> + - num-lanes >> + - linux,pci-domain >> + - interrupt-map >> + - interrupt-map-mask >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + pcie10:pcie@d0e00000 { >> + compatible = "intel,lgm-pcie", "snps,dw-pcie"; >> + device_type = "pci"; >> + #address-cells = <3>; >> + #size-cells = <2>; >> + reg = <0xd0e00000 0x1000>, >> + <0xd2000000 0x800000>, >> + <0xd0a41000 0x1000>; >> + reg-names = "dbi", "config", "app"; >> + linux,pci-domain = <0>; >> + max-link-speed = <4>; >> + bus-range = <0x00 0x08>; >> + interrupt-parent = <&ioapic1>; >> + #interrupt-cells = <1>; >> + interrupt-map-mask = <0 0 0 0x7>; >> + interrupt-map = <0 0 0 1 &ioapic1 27 1>, >> + <0 0 0 2 &ioapic1 28 1>, >> + <0 0 0 3 &ioapic1 29 1>, >> + <0 0 0 4 &ioapic1 30 1>; >> + ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>; >> + resets = <&rcu0 0x50 0>; >> + clocks = <&cgu0 LGM_GCLK_PCIE10>; >> + phys = <&cb0phy0>; >> + phy-names = "pcie"; >> + status = "okay"; >> + reset-assert-ms = <500>; >> + reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; >> + num-lanes = <2>; >> + }; >> -- >> 2.11.0 >>
Hi Dilip, thank you for the update two nit-picks below, apart from those it looks good to me On Mon, Oct 21, 2019 at 8:39 AM Dilip Kota <eswara.kota@linux.intel.com> wrote: [...] > +examples: > + - | > + pcie10:pcie@d0e00000 { why no space between pcie10 and pcie@d0e00000? [...] > + status = "okay"; examples should not use the status property, see commit 4da722ca19f30f ("dt-bindings: Remove "status" from examples") Martin
On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: > Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs > which is Synopsys DesignWare based PCIe core. > > changes on v4: > Add "snps,dw-pcie" compatible. > Rename phy-names property value to pcie. > And maximum and minimum values to num-lanes. > Add ref for reset-assert-ms entry and update the > description for easy understanding. > Remove pcie core interrupt entry. > > changes on v3: > Add the appropriate License-Identifier > Rename intel,rst-interval to 'reset-assert-us' > Add additionalProperties: false > Rename phy-names to 'pciephy' > Remove the dtsi node split of SoC and board in the example > Add #interrupt-cells = <1>; or else interrupt parsing will fail > Name yaml file with compatible name > > Signed-off-by: Dilip Kota <eswara.kota@linux.intel.com> > --- > .../devicetree/bindings/pci/intel-gw-pcie.yaml | 135 +++++++++++++++++++++ > 1 file changed, 135 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml Fails to validate: Error: Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dts:38.27-28 syntax error FATAL ERROR: Unable to parse input tree scripts/Makefile.lib:321: recipe for target 'Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dt.yaml' failed Please run 'make -k dt_binding_check' (-k because there are some unrelated failures). > > diff --git a/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > new file mode 100644 > index 000000000000..49dd87ec1e3d > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > @@ -0,0 +1,135 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: PCIe RC controller on Intel Gateway SoCs > + > +maintainers: > + - Dilip Kota <eswara.kota@linux.intel.com> > + > +properties: > + compatible: > + items: > + - const: intel,lgm-pcie > + - const: snps,dw-pcie > + > + device_type: > + const: pci > + > + "#address-cells": > + const: 3 > + > + "#size-cells": > + const: 2 > + > + reg: > + items: > + - description: Controller control and status registers. > + - description: PCIe configuration registers. > + - description: Controller application registers. > + > + reg-names: > + items: > + - const: dbi > + - const: config > + - const: app > + > + ranges: > + description: Ranges for the PCI memory and I/O regions. How many entries do you expect? Add a 'maxItems' to define. > + > + resets: > + maxItems: 1 > + > + clocks: > + description: PCIe registers interface clock. How many clocks? > + > + phys: > + maxItems: 1 > + > + phy-names: > + const: pcie > + > + reset-gpios: > + maxItems: 1 > + > + num-lanes: > + minimum: 1 > + maximum: 2 > + description: Number of lanes to use for this port. > + > + linux,pci-domain: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: PCI domain ID. Just a value of 'true' is fine here. > + > + '#interrupt-cells': > + const: 1 > + > + interrupt-map-mask: > + description: Standard PCI IRQ mapping properties. > + > + interrupt-map: > + description: Standard PCI IRQ mapping properties. > + > + max-link-speed: > + description: Specify PCI Gen for link capability. Allowed values? Default? > + > + bus-range: > + description: Range of bus numbers associated with this controller. > + > + reset-assert-ms: > + $ref: /schemas/types.yaml#/definitions/uint32 Don't need a type for standard units. > + description: | > + Delay after asserting reset to the PCIe device. > + Some devices need an interval upto 500ms. By default it is 100ms. Express as a schema: maximum: 500 default: 100 > + > +required: > + - compatible > + - device_type > + - reg > + - reg-names > + - ranges > + - resets > + - clocks > + - phys > + - phy-names > + - reset-gpios > + - num-lanes Shouldn't be required. It should have a default. > + - linux,pci-domain Is this really required? AIUI, domains are optional and only used if you have more than one host. > + - interrupt-map > + - interrupt-map-mask > + > +additionalProperties: false > + > +examples: > + - | > + pcie10:pcie@d0e00000 { space ^ > + compatible = "intel,lgm-pcie", "snps,dw-pcie"; > + device_type = "pci"; > + #address-cells = <3>; > + #size-cells = <2>; > + reg = <0xd0e00000 0x1000>, > + <0xd2000000 0x800000>, > + <0xd0a41000 0x1000>; > + reg-names = "dbi", "config", "app"; > + linux,pci-domain = <0>; > + max-link-speed = <4>; > + bus-range = <0x00 0x08>; > + interrupt-parent = <&ioapic1>; > + #interrupt-cells = <1>; > + interrupt-map-mask = <0 0 0 0x7>; > + interrupt-map = <0 0 0 1 &ioapic1 27 1>, > + <0 0 0 2 &ioapic1 28 1>, > + <0 0 0 3 &ioapic1 29 1>, > + <0 0 0 4 &ioapic1 30 1>; > + ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>; > + resets = <&rcu0 0x50 0>; > + clocks = <&cgu0 LGM_GCLK_PCIE10>; You need to include any defines you use. That's why the example fails to build. > + phys = <&cb0phy0>; > + phy-names = "pcie"; > + status = "okay"; Don't show status in examples. > + reset-assert-ms = <500>; > + reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; > + num-lanes = <2>; > + }; > -- > 2.11.0 >
Hi Martin, On 10/25/2019 4:31 AM, Martin Blumenstingl wrote: > Hi Dilip, > > thank you for the update > two nit-picks below, apart from those it looks good to me Thanks for reviewing it. > > On Mon, Oct 21, 2019 at 8:39 AM Dilip Kota <eswara.kota@linux.intel.com> wrote: > [...] >> +examples: >> + - | >> + pcie10:pcie@d0e00000 { > why no space between pcie10 and pcie@d0e00000? Agree, will fix it in the next patch version. > > [...] >> + status = "okay"; > examples should not use the status property, see commit 4da722ca19f30f > ("dt-bindings: Remove "status" from examples") Agree, will fix it in the next patch version. (sorry for the late reply, i am back today from sick leave). Regards, Dilip > > > Martin
On 10/26/2019 12:53 AM, Rob Herring wrote: > On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: >> Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs >> which is Synopsys DesignWare based PCIe core. >> >> changes on v4: >> Add "snps,dw-pcie" compatible. >> Rename phy-names property value to pcie. >> And maximum and minimum values to num-lanes. >> Add ref for reset-assert-ms entry and update the >> description for easy understanding. >> Remove pcie core interrupt entry. >> >> changes on v3: >> Add the appropriate License-Identifier >> Rename intel,rst-interval to 'reset-assert-us' >> Add additionalProperties: false >> Rename phy-names to 'pciephy' >> Remove the dtsi node split of SoC and board in the example >> Add #interrupt-cells = <1>; or else interrupt parsing will fail >> Name yaml file with compatible name >> >> Signed-off-by: Dilip Kota <eswara.kota@linux.intel.com> >> --- >> .../devicetree/bindings/pci/intel-gw-pcie.yaml | 135 +++++++++++++++++++++ >> 1 file changed, 135 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml > Fails to validate: > > Error: Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dts:38.27-28 syntax error > FATAL ERROR: Unable to parse input tree > scripts/Makefile.lib:321: recipe for target 'Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dt.yaml' failed > > Please run 'make -k dt_binding_check' (-k because there are some > unrelated failures). > >> diff --git a/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml >> new file mode 100644 >> index 000000000000..49dd87ec1e3d >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml >> @@ -0,0 +1,135 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: PCIe RC controller on Intel Gateway SoCs >> + >> +maintainers: >> + - Dilip Kota <eswara.kota@linux.intel.com> >> + >> +properties: >> + compatible: >> + items: >> + - const: intel,lgm-pcie >> + - const: snps,dw-pcie >> + >> + device_type: >> + const: pci >> + >> + "#address-cells": >> + const: 3 >> + >> + "#size-cells": >> + const: 2 >> + >> + reg: >> + items: >> + - description: Controller control and status registers. >> + - description: PCIe configuration registers. >> + - description: Controller application registers. >> + >> + reg-names: >> + items: >> + - const: dbi >> + - const: config >> + - const: app >> + >> + ranges: >> + description: Ranges for the PCI memory and I/O regions. > How many entries do you expect? Add a 'maxItems' to define. Agree will add it. > >> + >> + resets: >> + maxItems: 1 >> + >> + clocks: >> + description: PCIe registers interface clock. > How many clocks? One. I will mention maxItems: 1 > >> + >> + phys: >> + maxItems: 1 >> + >> + phy-names: >> + const: pcie >> + >> + reset-gpios: >> + maxItems: 1 >> + >> + num-lanes: >> + minimum: 1 >> + maximum: 2 >> + description: Number of lanes to use for this port. >> + >> + linux,pci-domain: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: PCI domain ID. > Just a value of 'true' is fine here. Ok. > >> + >> + '#interrupt-cells': >> + const: 1 >> + >> + interrupt-map-mask: >> + description: Standard PCI IRQ mapping properties. >> + >> + interrupt-map: >> + description: Standard PCI IRQ mapping properties. >> + >> + max-link-speed: >> + description: Specify PCI Gen for link capability. > Allowed values? Default? Sure, will add it. > >> + >> + bus-range: >> + description: Range of bus numbers associated with this controller. >> + >> + reset-assert-ms: >> + $ref: /schemas/types.yaml#/definitions/uint32 > Don't need a type for standard units. Ok. > >> + description: | >> + Delay after asserting reset to the PCIe device. >> + Some devices need an interval upto 500ms. By default it is 100ms. > Express as a schema: > > maximum: 500 > default: 100 Sure i will update it. > >> + >> +required: >> + - compatible >> + - device_type >> + - reg >> + - reg-names >> + - ranges >> + - resets >> + - clocks >> + - phys >> + - phy-names >> + - reset-gpios >> + - num-lanes > Shouldn't be required. It should have a default. Agree, will fix it. > >> + - linux,pci-domain > Is this really required? AIUI, domains are optional and only used if > you have more than one host. Yes, not required. I will update, > >> + - interrupt-map >> + - interrupt-map-mask >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + pcie10:pcie@d0e00000 { > space ^ Agree, i will fix it. > >> + compatible = "intel,lgm-pcie", "snps,dw-pcie"; >> + device_type = "pci"; >> + #address-cells = <3>; >> + #size-cells = <2>; >> + reg = <0xd0e00000 0x1000>, >> + <0xd2000000 0x800000>, >> + <0xd0a41000 0x1000>; >> + reg-names = "dbi", "config", "app"; >> + linux,pci-domain = <0>; >> + max-link-speed = <4>; >> + bus-range = <0x00 0x08>; >> + interrupt-parent = <&ioapic1>; >> + #interrupt-cells = <1>; >> + interrupt-map-mask = <0 0 0 0x7>; >> + interrupt-map = <0 0 0 1 &ioapic1 27 1>, >> + <0 0 0 2 &ioapic1 28 1>, >> + <0 0 0 3 &ioapic1 29 1>, >> + <0 0 0 4 &ioapic1 30 1>; >> + ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>; >> + resets = <&rcu0 0x50 0>; >> + clocks = <&cgu0 LGM_GCLK_PCIE10>; > You need to include any defines you use. That's why the example fails to > build. Yes, i will add it. > >> + phys = <&cb0phy0>; >> + phy-names = "pcie"; >> + status = "okay"; > Don't show status in examples. OK, will fix it. Thanks for reviewing it. Regards, Dilip > >> + reset-assert-ms = <500>; >> + reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; >> + num-lanes = <2>; >> + }; >> -- >> 2.11.0 >>
On 10/29/2019 4:34 PM, Dilip Kota wrote: > > On 10/26/2019 12:53 AM, Rob Herring wrote: >> On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: >>> Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs >>> which is Synopsys DesignWare based PCIe core. >>> [...] >>> >> >> + >> + linux,pci-domain: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: PCI domain ID. >> Just a value of 'true' is fine here. > Ok. dt_binding_check is failing for adding 'true' alone. It is passing only if "$ref" is mentioned. Regards, Dilip
On Thu, Oct 31, 2019 at 5:51 AM Dilip Kota <eswara.kota@linux.intel.com> wrote: > > > On 10/29/2019 4:34 PM, Dilip Kota wrote: > > > > On 10/26/2019 12:53 AM, Rob Herring wrote: > >> On Mon, Oct 21, 2019 at 02:39:18PM +0800, Dilip Kota wrote: > >>> Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs > >>> which is Synopsys DesignWare based PCIe core. > >>> > [...] > >>> > >> > >> + > >> + linux,pci-domain: > >> + $ref: /schemas/types.yaml#/definitions/uint32 > >> + description: PCI domain ID. > >> Just a value of 'true' is fine here. > > Ok. > dt_binding_check is failing for adding 'true' alone. > It is passing only if "$ref" is mentioned. Update dtschema. That should be fixed. Rob
diff --git a/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml new file mode 100644 index 000000000000..49dd87ec1e3d --- /dev/null +++ b/Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml @@ -0,0 +1,135 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: PCIe RC controller on Intel Gateway SoCs + +maintainers: + - Dilip Kota <eswara.kota@linux.intel.com> + +properties: + compatible: + items: + - const: intel,lgm-pcie + - const: snps,dw-pcie + + device_type: + const: pci + + "#address-cells": + const: 3 + + "#size-cells": + const: 2 + + reg: + items: + - description: Controller control and status registers. + - description: PCIe configuration registers. + - description: Controller application registers. + + reg-names: + items: + - const: dbi + - const: config + - const: app + + ranges: + description: Ranges for the PCI memory and I/O regions. + + resets: + maxItems: 1 + + clocks: + description: PCIe registers interface clock. + + phys: + maxItems: 1 + + phy-names: + const: pcie + + reset-gpios: + maxItems: 1 + + num-lanes: + minimum: 1 + maximum: 2 + description: Number of lanes to use for this port. + + linux,pci-domain: + $ref: /schemas/types.yaml#/definitions/uint32 + description: PCI domain ID. + + '#interrupt-cells': + const: 1 + + interrupt-map-mask: + description: Standard PCI IRQ mapping properties. + + interrupt-map: + description: Standard PCI IRQ mapping properties. + + max-link-speed: + description: Specify PCI Gen for link capability. + + bus-range: + description: Range of bus numbers associated with this controller. + + reset-assert-ms: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Delay after asserting reset to the PCIe device. + Some devices need an interval upto 500ms. By default it is 100ms. + +required: + - compatible + - device_type + - reg + - reg-names + - ranges + - resets + - clocks + - phys + - phy-names + - reset-gpios + - num-lanes + - linux,pci-domain + - interrupt-map + - interrupt-map-mask + +additionalProperties: false + +examples: + - | + pcie10:pcie@d0e00000 { + compatible = "intel,lgm-pcie", "snps,dw-pcie"; + device_type = "pci"; + #address-cells = <3>; + #size-cells = <2>; + reg = <0xd0e00000 0x1000>, + <0xd2000000 0x800000>, + <0xd0a41000 0x1000>; + reg-names = "dbi", "config", "app"; + linux,pci-domain = <0>; + max-link-speed = <4>; + bus-range = <0x00 0x08>; + interrupt-parent = <&ioapic1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &ioapic1 27 1>, + <0 0 0 2 &ioapic1 28 1>, + <0 0 0 3 &ioapic1 29 1>, + <0 0 0 4 &ioapic1 30 1>; + ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>; + resets = <&rcu0 0x50 0>; + clocks = <&cgu0 LGM_GCLK_PCIE10>; + phys = <&cb0phy0>; + phy-names = "pcie"; + status = "okay"; + reset-assert-ms = <500>; + reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; + num-lanes = <2>; + };
Add YAML shcemas for PCIe RC controller on Intel Gateway SoCs which is Synopsys DesignWare based PCIe core. changes on v4: Add "snps,dw-pcie" compatible. Rename phy-names property value to pcie. And maximum and minimum values to num-lanes. Add ref for reset-assert-ms entry and update the description for easy understanding. Remove pcie core interrupt entry. changes on v3: Add the appropriate License-Identifier Rename intel,rst-interval to 'reset-assert-us' Add additionalProperties: false Rename phy-names to 'pciephy' Remove the dtsi node split of SoC and board in the example Add #interrupt-cells = <1>; or else interrupt parsing will fail Name yaml file with compatible name Signed-off-by: Dilip Kota <eswara.kota@linux.intel.com> --- .../devicetree/bindings/pci/intel-gw-pcie.yaml | 135 +++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml