Message ID | 20200605212706.7361-4-james.quinlan@broadcom.com |
---|---|
State | New |
Headers | show |
Series | PCI: brcmstb: enable PCIe for STB chips | expand |
On Fri, Jun 05, 2020 at 05:26:43PM -0400, Jim Quinlan wrote: > From: Jim Quinlan <jquinlan@broadcom.com> > > - Add compatible strings for three more Broadcom STB chips: 7278, 7216, > 7211 (STB version of RPi4). > - add new property 'brcm,scb-sizes' > - add new property 'resets' > - add new property 'reset-names' for 7216 only > - allow 'ranges' and 'dma-ranges' to have more than one item and update > the example to show this. > > Signed-off-by: Jim Quinlan <jquinlan@broadcom.com> > --- > .../bindings/pci/brcm,stb-pcie.yaml | 58 ++++++++++++++++--- > 1 file changed, 51 insertions(+), 7 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > index 8680a0f86c5a..4a012d77513f 100644 > --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > @@ -9,12 +9,15 @@ title: Brcmstb PCIe Host Controller Device Tree Bindings > maintainers: > - Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > -allOf: > - - $ref: /schemas/pci/pci-bus.yaml# > - > properties: > compatible: > - const: brcm,bcm2711-pcie # The Raspberry Pi 4 > + items: > + - enum: > + - brcm,bcm2711-pcie # The Raspberry Pi 4 > + - brcm,bcm7211-pcie # Broadcom STB version of RPi4 > + - brcm,bcm7278-pcie # Broadcom 7278 Arm > + - brcm,bcm7216-pcie # Broadcom 7216 Arm > + - brcm,bcm7445-pcie # Broadcom 7445 Arm > > reg: > maxItems: 1 > @@ -34,10 +37,12 @@ properties: > - const: msi > > ranges: > - maxItems: 1 > + minItems: 1 > + maxItems: 4 > > dma-ranges: > - maxItems: 1 > + minItems: 1 > + maxItems: 6 > > clocks: > maxItems: 1 > @@ -58,8 +63,33 @@ properties: > > aspm-no-l0s: true > > + resets: > + description: for "brcm,bcm7216-pcie", must be a valid reset > + phandle pointing to the RESCAL reset controller provider node. > + $ref: "/schemas/types.yaml#/definitions/phandle" > + > + reset-names: > + items: > + - const: rescal > + > + brcm,scb-sizes: > + description: u64 giving the 64bit PCIe memory > + viewport size of a memory controller. There may be up to > + three controllers, and each size must be a power of two > + with a size greater or equal to the amount of memory the > + controller supports. Note that each memory controller > + may have two component regions -- base and extended -- so > + this information cannot be deduced from the dma-ranges. > + > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint64-array > + - items: > + minItems: 1 > + maxItems: 3 This can be (dropping 'allOf'): $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 1 maxItems: 3 With that, Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml index 8680a0f86c5a..4a012d77513f 100644 --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml @@ -9,12 +9,15 @@ title: Brcmstb PCIe Host Controller Device Tree Bindings maintainers: - Nicolas Saenz Julienne <nsaenzjulienne@suse.de> -allOf: - - $ref: /schemas/pci/pci-bus.yaml# - properties: compatible: - const: brcm,bcm2711-pcie # The Raspberry Pi 4 + items: + - enum: + - brcm,bcm2711-pcie # The Raspberry Pi 4 + - brcm,bcm7211-pcie # Broadcom STB version of RPi4 + - brcm,bcm7278-pcie # Broadcom 7278 Arm + - brcm,bcm7216-pcie # Broadcom 7216 Arm + - brcm,bcm7445-pcie # Broadcom 7445 Arm reg: maxItems: 1 @@ -34,10 +37,12 @@ properties: - const: msi ranges: - maxItems: 1 + minItems: 1 + maxItems: 4 dma-ranges: - maxItems: 1 + minItems: 1 + maxItems: 6 clocks: maxItems: 1 @@ -58,8 +63,33 @@ properties: aspm-no-l0s: true + resets: + description: for "brcm,bcm7216-pcie", must be a valid reset + phandle pointing to the RESCAL reset controller provider node. + $ref: "/schemas/types.yaml#/definitions/phandle" + + reset-names: + items: + - const: rescal + + brcm,scb-sizes: + description: u64 giving the 64bit PCIe memory + viewport size of a memory controller. There may be up to + three controllers, and each size must be a power of two + with a size greater or equal to the amount of memory the + controller supports. Note that each memory controller + may have two component regions -- base and extended -- so + this information cannot be deduced from the dma-ranges. + + allOf: + - $ref: /schemas/types.yaml#/definitions/uint64-array + - items: + minItems: 1 + maxItems: 3 + required: - reg + - ranges - dma-ranges - "#interrupt-cells" - interrupts @@ -68,6 +98,18 @@ required: - interrupt-map - msi-controller +allOf: + - $ref: /schemas/pci/pci-bus.yaml# + - if: + properties: + compatible: + contains: + const: brcm,bcm7216-pcie + then: + required: + - resets + - reset-names + unevaluatedProperties: false examples: @@ -93,7 +135,9 @@ examples: msi-parent = <&pcie0>; msi-controller; ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>; - dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>; + dma-ranges = <0x42000000 0x1 0x00000000 0x0 0x40000000 0x0 0x80000000>, + <0x42000000 0x1 0x80000000 0x3 0x00000000 0x0 0x80000000>; brcm,enable-ssc; + brcm,scb-sizes = <0x0000000080000000 0x0000000080000000>; }; };