Re: [PATCH v2 03/14] dt-bindings: PCI: Add bindings for more Brcmstb chips

From: Rob Herring
Date: Fri May 29 2020 - 13:46:41 EST


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
>