Subject: Re: [PATCH v3 net-next 2/8] dt-bindings: net: mediatek: add WED RX binding for MT7986 eth driver

From: Lorenzo Bianconi <[email-masked]>
Date: Tue, 8 Nov 2022 15:20:57 +0100

> On 03/11/2022 19:29, Lorenzo Bianconi wrote:
> >> On 03/11/2022 13:51, Lorenzo Bianconi wrote:
> >>>>> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..6c3c514c48ef
> >>>>> --- /dev/null
> >>>>> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml
> > 
> > Regarding "mediatek,mt7986-wed" compatible string it has been added to
> > mt7986a.dtsi in the commit below:
> > 
> > commit 00b9903996b3e1e287c748928606d738944e45de
> > Author: Lorenzo Bianconi <[email-masked]>
> > Date:   Tue Sep 20 12:11:13 2022 +0200
> > 
> > arm64: dts: mediatek: mt7986: add support for Wireless Ethernet Dispatch
> > 
> >>>>
> >>>> arm is only for top-level stuff. Choose appropriate subsystem, soc as
> >>>> last resort.
> >>>
> >>> these chips are used only for networking so is net folder fine?
> >>
> >> So this is some MMIO and no actual device? Then rather soc.
> > 
> > ack, I will move them there
> > 
> >>
> >>>
> >>>>
> >>>>> @@ -0,0 +1,47 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-boot.yaml#
> >>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>>> +
> >>>>> +title:
> >>>>> +  MediaTek Wireless Ethernet Dispatch WO boot controller interface for MT7986
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Lorenzo Bianconi <[email-masked]>
> >>>>> +  - Felix Fietkau <[email-masked]>
> >>>>> +
> >>>>> +description:
> >>>>> +  The mediatek wo-boot provides a configuration interface for WED WO
> >>>>> +  boot controller on MT7986 soc.
> >>>>
> >>>> And what is "WED WO boot controller?
> >>>
> >>> WED WO is a chip used for networking packet processing offloaded to the Soc
> >>> (e.g. packet reordering). WED WO boot is the memory used to store start address
> >>> of wo firmware. Anyway I will let Sujuan comment on this.
> >>
> >> A bit more should be in description.
> > 
> > I will let Sujuan adding more details (since I do not have them :))
> > 
> >>
> >>>
> >>>>
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    items:
> >>>>> +      - enum:
> >>>>> +          - mediatek,mt7986-wo-boot
> >>>>> +      - const: syscon
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  interrupts:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +required:
> >>>>> +  - compatible
> >>>>> +  - reg
> >>>>> +
> >>>>> +additionalProperties: false
> >>>>> +
> >>>>> +examples:
> >>>>> +  - |
> >>>>> +    soc {
> >>>>> +      #address-cells = <2>;
> >>>>> +      #size-cells = <2>;
> >>>>> +
> >>>>> +      wo_boot: syscon@15194000 {
> >>>>> +        compatible = "mediatek,mt7986-wo-boot", "syscon";
> >>>>> +        reg = <0 0x15194000 0 0x1000>;
> >>>>> +      };
> >>>>> +    };
> >>>>> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..6357a206587a
> >>>>> --- /dev/null
> >>>>> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml
> >>>>> @@ -0,0 +1,50 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-ccif.yaml#
> >>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>>> +
> >>>>> +title: MediaTek Wireless Ethernet Dispatch WO controller interface for MT7986
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Lorenzo Bianconi <[email-masked]>
> >>>>> +  - Felix Fietkau <[email-masked]>
> >>>>> +
> >>>>> +description:
> >>>>> +  The mediatek wo-ccif provides a configuration interface for WED WO
> >>>>> +  controller on MT7986 soc.
> >>>>
> >>>> All previous comments apply.
> >>>>
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    items:
> >>>>> +      - enum:
> >>>>> +          - mediatek,mt7986-wo-ccif
> >>>>> +      - const: syscon
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  interrupts:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +required:
> >>>>> +  - compatible
> >>>>> +  - reg
> >>>>> +  - interrupts
> >>>>> +
> >>>>> +additionalProperties: false
> >>>>> +
> >>>>> +examples:
> >>>>> +  - |
> >>>>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>>>> +    #include <dt-bindings/interrupt-controller/irq.h>
> >>>>> +    soc {
> >>>>> +      #address-cells = <2>;
> >>>>> +      #size-cells = <2>;
> >>>>> +
> >>>>> +      wo_ccif0: syscon@151a5000 {
> >>>>> +        compatible = "mediatek,mt7986-wo-ccif", "syscon";
> >>>>> +        reg = <0 0x151a5000 0 0x1000>;
> >>>>> +        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
> >>>>> +      };
> >>>>> +    };
> >>>>> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..a499956d9e07
> >>>>> --- /dev/null
> >>>>> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml
> >>>>> @@ -0,0 +1,50 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-dlm.yaml#
> >>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>>> +
> >>>>> +title: MediaTek Wireless Ethernet Dispatch WO hw rx ring interface for MT7986
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Lorenzo Bianconi <[email-masked]>
> >>>>> +  - Felix Fietkau <[email-masked]>
> >>>>> +
> >>>>> +description:
> >>>>> +  The mediatek wo-dlm provides a configuration interface for WED WO
> >>>>> +  rx ring on MT7986 soc.
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    const: mediatek,mt7986-wo-dlm
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  resets:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  reset-names:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +required:
> >>>>> +  - compatible
> >>>>> +  - reg
> >>>>> +  - resets
> >>>>> +  - reset-names
> >>>>> +
> >>>>> +additionalProperties: false
> >>>>> +
> >>>>> +examples:
> >>>>> +  - |
> >>>>> +    soc {
> >>>>> +      #address-cells = <2>;
> >>>>> +      #size-cells = <2>;
> >>>>> +
> >>>>> +      wo_dlm0: wo-dlm@151e8000 {
> >>>>
> >>>> Node names should be generic.
> >>>> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> >>>
> >>> DLM is a chip used to store the data rx ring of wo firmware. I do not have a
> >>> better node name (naming is always hard). Can you please suggest a better name?
> >>
> >> The problem is that you added three new devices which seem to be for the
> >> same device - WED. It looks like some hacky way of avoid proper hardware
> >> description - let's model everything as MMIO and syscons...
> > 
> > is it fine to use syscon as node name even if we do not declare it in compatible
> > string for dlm?
> > 
> 
> No, rather not. It's a shortcut and if used without actual syscon it
> would be confusing. You could still call it system-controller, though.

ack, I used a different approach in v4 since I figured out I can move dlm node
in memory-region.

Regards,
Lorenzo

> Best regards,
> Krzysztof