On Tue, May 26, 2020 at 03:12:42PM -0400, Jim Quinlan wrote: > From: Jim Quinlan <jquinlan@xxxxxxxxxxxx> > > - 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' > - allow 'ranges' and 'dma-ranges' to have more than one item and update > the example to show this. > > Signed-off-by: Jim Quinlan <jquinlan@xxxxxxxxxxxx> > --- > .../bindings/pci/brcm,stb-pcie.yaml | 40 +++++++++++++++++-- > 1 file changed, 36 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > index 8680a0f86c5a..66a7df45983d 100644 > --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > @@ -14,7 +14,13 @@ allOf: > > properties: > compatible: > - const: brcm,bcm2711-pcie # The Raspberry Pi 4 > + items: > + - enum: Don't need items here. Just change the const to 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 +40,12 @@ properties: > - const: msi > > ranges: > - maxItems: 1 > + minItems: 1 > + maxItems: 4 > > dma-ranges: > - maxItems: 1 > + minItems: 1 > + maxItems: 6 > > clocks: > maxItems: 1 > @@ -58,8 +66,30 @@ 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 These are going to need to be an if/then schema if they only apply to certain compatible(s). > + > + brcm,scb-sizes: > + description: (u32, u32) tuple 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. This sounds like what dma-ranges should express? If not, we do have 64-bit size if that what you need. > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32-array > + - items: > + minItems: 2 > + maxItems: 6 > + > required: > - reg > + - ranges > - dma-ranges > - "#interrupt-cells" > - interrupts > @@ -93,7 +123,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 = <0x0 0x80000000 0x0 0x80000000>; > }; > }; > -- > 2.17.1 >