[4/6] dt-bindings: net: marvell,prestera: Describe PCI devices of the prestera family
Commit Message
Even though the devices have very little in common beside the name and
the main "switch" feature, Marvell Prestera switch family is also
composed of PCI-only devices which can receive additional static
properties, like nvmem cells to point at MAC addresses, for
instance. Let's describe them.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
.../bindings/net/marvell,prestera.yaml | 55 ++++++++++++++++---
1 file changed, 48 insertions(+), 7 deletions(-)
Comments
On Thu, Nov 17, 2022 at 10:55:55PM +0100, Miquel Raynal wrote:
> Even though the devices have very little in common beside the name and
> the main "switch" feature, Marvell Prestera switch family is also
> composed of PCI-only devices which can receive additional static
> properties, like nvmem cells to point at MAC addresses, for
> instance. Let's describe them.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> ---
> .../bindings/net/marvell,prestera.yaml | 55 ++++++++++++++++---
> 1 file changed, 48 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/marvell,prestera.yaml b/Documentation/devicetree/bindings/net/marvell,prestera.yaml
> index b0a3ecca406e..f159fadf86ec 100644
> --- a/Documentation/devicetree/bindings/net/marvell,prestera.yaml
> +++ b/Documentation/devicetree/bindings/net/marvell,prestera.yaml
> @@ -4,19 +4,24 @@
> $id: http://devicetree.org/schemas/net/marvell,prestera.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Marvell Prestera AlleyCat3 switch
> +title: Marvell Prestera switch family
>
> maintainers:
> - Miquel Raynal <miquel.raynal@bootlin.com>
>
> properties:
> compatible:
> - items:
> + oneOf:
> + - items:
> + - enum:
> + - marvell,prestera-98dx3236
> + - marvell,prestera-98dx3336
> + - marvell,prestera-98dx4251
> + - const: marvell,prestera
> - enum:
> - - marvell,prestera-98dx3236
> - - marvell,prestera-98dx3336
> - - marvell,prestera-98dx4251
> - - const: marvell,prestera
> + - pci11ab,c804
> + - pci11ab,c80c
> + - pci11ab,cc1e
>
> reg:
> maxItems: 1
> @@ -28,10 +33,33 @@ properties:
> description: Reference to the DFX Server bus node.
> $ref: /schemas/types.yaml#/definitions/phandle
>
> + nvmem-cells: true
> +
> + nvmem-cell-names: true
> +
> +if:
> + properties:
> + compatible:
> + contains:
> + const: marvell,prestera
> +
> +# Memory mapped AlleyCat3 family
> +then:
> + properties:
> + nvmem-cells: false
> + nvmem-cell-names: false
> + required:
> + - interrupts
> +
> +# PCI Aldrin family
> +else:
> + properties:
> + interrupts: false
> + dfx: false
> +
> required:
> - compatible
> - reg
> - - interrupts
>
> additionalProperties: false
>
> @@ -43,3 +71,16 @@ examples:
> interrupts = <33>, <34>, <35>;
> dfx = <&dfx>;
> };
> +
> + - |
> + pcie {
> + #address-cells = <3>;
> + #size-cells = <2>;
ranges;
device_type = "pci";
With that,
Reviewed-by: Rob Herring <robh@kernel.org>
> +
> + switch@0,0 {
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + compatible = "pci11ab,c80c";
> + nvmem-cells = <&mac_address 0>;
> + nvmem-cell-names = "mac-address";
> + };
> + };
> --
> 2.34.1
>
>
@@ -4,19 +4,24 @@
$id: http://devicetree.org/schemas/net/marvell,prestera.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: Marvell Prestera AlleyCat3 switch
+title: Marvell Prestera switch family
maintainers:
- Miquel Raynal <miquel.raynal@bootlin.com>
properties:
compatible:
- items:
+ oneOf:
+ - items:
+ - enum:
+ - marvell,prestera-98dx3236
+ - marvell,prestera-98dx3336
+ - marvell,prestera-98dx4251
+ - const: marvell,prestera
- enum:
- - marvell,prestera-98dx3236
- - marvell,prestera-98dx3336
- - marvell,prestera-98dx4251
- - const: marvell,prestera
+ - pci11ab,c804
+ - pci11ab,c80c
+ - pci11ab,cc1e
reg:
maxItems: 1
@@ -28,10 +33,33 @@ properties:
description: Reference to the DFX Server bus node.
$ref: /schemas/types.yaml#/definitions/phandle
+ nvmem-cells: true
+
+ nvmem-cell-names: true
+
+if:
+ properties:
+ compatible:
+ contains:
+ const: marvell,prestera
+
+# Memory mapped AlleyCat3 family
+then:
+ properties:
+ nvmem-cells: false
+ nvmem-cell-names: false
+ required:
+ - interrupts
+
+# PCI Aldrin family
+else:
+ properties:
+ interrupts: false
+ dfx: false
+
required:
- compatible
- reg
- - interrupts
additionalProperties: false
@@ -43,3 +71,16 @@ examples:
interrupts = <33>, <34>, <35>;
dfx = <&dfx>;
};
+
+ - |
+ pcie {
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ switch@0,0 {
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ compatible = "pci11ab,c80c";
+ nvmem-cells = <&mac_address 0>;
+ nvmem-cell-names = "mac-address";
+ };
+ };