diff mbox series

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

Message ID 2d92c3e282c6a788e54370604f966fc7a5b479bf.1667466887.git.lorenzo@kernel.org (mailing list archive)
State New, archived
Headers show
Series introduce WED RX support to MT7986 SoC | expand

Commit Message

Lorenzo Bianconi Nov. 3, 2022, 9:28 a.m. UTC
Document the binding for the RX Wireless Ethernet Dispatch core on the
MT7986 ethernet driver used to offload traffic received by WLAN NIC and
forwarded to LAN/WAN one.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 .../arm/mediatek/mediatek,mt7622-wed.yaml     | 62 ++++++++++++++++++-
 .../arm/mediatek/mediatek,mt7986-wo-boot.yaml | 47 ++++++++++++++
 .../arm/mediatek/mediatek,mt7986-wo-ccif.yaml | 50 +++++++++++++++
 .../arm/mediatek/mediatek,mt7986-wo-dlm.yaml  | 50 +++++++++++++++
 4 files changed, 206 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml

Comments

Krzysztof Kozlowski Nov. 3, 2022, 3:08 p.m. UTC | #1
On 03/11/2022 05:28, Lorenzo Bianconi wrote:
> Document the binding for the RX Wireless Ethernet Dispatch core on the
> MT7986 ethernet driver used to offload traffic received by WLAN NIC and
> forwarded to LAN/WAN one.
> 
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
>  .../arm/mediatek/mediatek,mt7622-wed.yaml     | 62 ++++++++++++++++++-
>  .../arm/mediatek/mediatek,mt7986-wo-boot.yaml | 47 ++++++++++++++
>  .../arm/mediatek/mediatek,mt7986-wo-ccif.yaml | 50 +++++++++++++++
>  .../arm/mediatek/mediatek,mt7986-wo-dlm.yaml  | 50 +++++++++++++++
>  4 files changed, 206 insertions(+), 3 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml
>  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml
>  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml
> 
> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> index 84fb0a146b6e..9e34c5d15cec 100644
> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> @@ -1,8 +1,8 @@
>  # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>  %YAML 1.2
>  ---
> -$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#"
> -$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#

Split the cleanups from essential/functional changes.

>  
>  title: MediaTek Wireless Ethernet Dispatch Controller for MT7622
>  
> @@ -29,6 +29,50 @@ properties:
>    interrupts:
>      maxItems: 1
>  
> +  memory-region:
> +    items:
> +      - description:
> +          Phandle for the node used to run firmware EMI region

Merge above two lines. Drop "phandle for the node used to run"

> +      - description:
> +          Phandle for the node used to run firmware ILM region
> +      - description:
> +          Phandle for the node used to run firmware CPU DATA region
> +
> +  memory-region-names:
> +    items:
> +      - const: wo-emi
> +      - const: wo-ilm
> +      - const: wo-data
> +
> +  mediatek,wo-ccif:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description:
> +      Phandle to the mediatek wed-wo controller.

Drop "Phandle to". Same in other cases.

> +
> +  mediatek,wo-boot:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description:
> +      Phandle to the mediatek wed-wo boot interface.
> +
> +  mediatek,wo-dlm:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description:
> +      Phandle to the mediatek wed-wo rx hw ring.

rx->RX?
hw->HW?

> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: mediatek,mt7622-wed
> +    then:
> +      properties:
> +        memory-region-names: false
> +        memory-region: false
> +        mediatek,wo-boot: false
> +        mediatek,wo-ccif: false
> +        mediatek,wo-dlm: false
> +
>  required:
>    - compatible
>    - reg
> @@ -44,8 +88,20 @@ examples:
>        #address-cells = <2>;
>        #size-cells = <2>;
>        wed0: wed@1020a000 {
> -        compatible = "mediatek,mt7622-wed","syscon";
> +        compatible = "mediatek,mt7622-wed", "syscon";
>          reg = <0 0x1020a000 0 0x1000>;
>          interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
>        };
> +
> +      wed1: wed@15010000 {

That's a separate example. - |
Drop wed1 label.

> +        compatible = "mediatek,mt7986-wed", "syscon";

And where is the compatible added?

> +        reg = <0 0x15010000 0 0x1000>;
> +        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
> +
> +        memory-region = <&wo_emi>, <&wo_data>, <&wo_ilm>;
> +        memory-region-names = "wo-emi", "wo-ilm", "wo-data";
> +        mediatek,wo-ccif = <&wo_ccif0>;
> +        mediatek,wo-boot = <&wo_boot>;
> +        mediatek,wo-dlm = <&wo_dlm0>;
> +      };
>      };
> 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

arm is only for top-level stuff. Choose appropriate subsystem, soc as
last resort.

> @@ -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 <lorenzo@kernel.org>
> +  - Felix Fietkau <nbd@nbd.name>
> +
> +description:
> +  The mediatek wo-boot provides a configuration interface for WED WO
> +  boot controller on MT7986 soc.

And what is "WED WO boot controller?

> +
> +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 <lorenzo@kernel.org>
> +  - Felix Fietkau <nbd@nbd.name>
> +
> +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 <lorenzo@kernel.org>
> +  - Felix Fietkau <nbd@nbd.name>
> +
> +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


Best regards,
Krzysztof
Lorenzo Bianconi Nov. 3, 2022, 5:51 p.m. UTC | #2
> On 03/11/2022 05:28, Lorenzo Bianconi wrote:
> > Document the binding for the RX Wireless Ethernet Dispatch core on the
> > MT7986 ethernet driver used to offload traffic received by WLAN NIC and
> > forwarded to LAN/WAN one.
> > 
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > ---
> >  .../arm/mediatek/mediatek,mt7622-wed.yaml     | 62 ++++++++++++++++++-
> >  .../arm/mediatek/mediatek,mt7986-wo-boot.yaml | 47 ++++++++++++++
> >  .../arm/mediatek/mediatek,mt7986-wo-ccif.yaml | 50 +++++++++++++++
> >  .../arm/mediatek/mediatek,mt7986-wo-dlm.yaml  | 50 +++++++++++++++
> >  4 files changed, 206 insertions(+), 3 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-boot.yaml
> >  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-ccif.yaml
> >  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7986-wo-dlm.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> > index 84fb0a146b6e..9e34c5d15cec 100644
> > --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> > +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
> > @@ -1,8 +1,8 @@
> >  # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >  %YAML 1.2
> >  ---
> > -$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#"
> > -$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> 
> Split the cleanups from essential/functional changes.

ack, I will fix it in v4

> 
> >  
> >  title: MediaTek Wireless Ethernet Dispatch Controller for MT7622
> >  
> > @@ -29,6 +29,50 @@ properties:
> >    interrupts:
> >      maxItems: 1
> >  
> > +  memory-region:
> > +    items:
> > +      - description:
> > +          Phandle for the node used to run firmware EMI region
> 
> Merge above two lines. Drop "phandle for the node used to run"

ack, I will fix it in v4

> 
> > +      - description:
> > +          Phandle for the node used to run firmware ILM region
> > +      - description:
> > +          Phandle for the node used to run firmware CPU DATA region
> > +
> > +  memory-region-names:
> > +    items:
> > +      - const: wo-emi
> > +      - const: wo-ilm
> > +      - const: wo-data
> > +
> > +  mediatek,wo-ccif:
> > +    $ref: /schemas/types.yaml#/definitions/phandle
> > +    description:
> > +      Phandle to the mediatek wed-wo controller.
> 
> Drop "Phandle to". Same in other cases.

ack, I will fix it in v4

> 
> > +
> > +  mediatek,wo-boot:
> > +    $ref: /schemas/types.yaml#/definitions/phandle
> > +    description:
> > +      Phandle to the mediatek wed-wo boot interface.
> > +
> > +  mediatek,wo-dlm:
> > +    $ref: /schemas/types.yaml#/definitions/phandle
> > +    description:
> > +      Phandle to the mediatek wed-wo rx hw ring.
> 
> rx->RX?
> hw->HW?

ack, I will fix it in v4

> 
> > +
> > +allOf:
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: mediatek,mt7622-wed
> > +    then:
> > +      properties:
> > +        memory-region-names: false
> > +        memory-region: false
> > +        mediatek,wo-boot: false
> > +        mediatek,wo-ccif: false
> > +        mediatek,wo-dlm: false
> > +
> >  required:
> >    - compatible
> >    - reg
> > @@ -44,8 +88,20 @@ examples:
> >        #address-cells = <2>;
> >        #size-cells = <2>;
> >        wed0: wed@1020a000 {
> > -        compatible = "mediatek,mt7622-wed","syscon";
> > +        compatible = "mediatek,mt7622-wed", "syscon";
> >          reg = <0 0x1020a000 0 0x1000>;
> >          interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
> >        };
> > +
> > +      wed1: wed@15010000 {
> 
> That's a separate example. - |
> Drop wed1 label.

ack, I will fix it in v4

> 
> > +        compatible = "mediatek,mt7986-wed", "syscon";
> 
> And where is the compatible added?
> 
> > +        reg = <0 0x15010000 0 0x1000>;
> > +        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
> > +
> > +        memory-region = <&wo_emi>, <&wo_data>, <&wo_ilm>;
> > +        memory-region-names = "wo-emi", "wo-ilm", "wo-data";
> > +        mediatek,wo-ccif = <&wo_ccif0>;
> > +        mediatek,wo-boot = <&wo_boot>;
> > +        mediatek,wo-dlm = <&wo_dlm0>;
> > +      };
> >      };
> > 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
> 
> 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?

> 
> > @@ -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 <lorenzo@kernel.org>
> > +  - Felix Fietkau <nbd@nbd.name>
> > +
> > +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.

> 
> > +
> > +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 <lorenzo@kernel.org>
> > +  - Felix Fietkau <nbd@nbd.name>
> > +
> > +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 <lorenzo@kernel.org>
> > +  - Felix Fietkau <nbd@nbd.name>
> > +
> > +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?

Regards,
Lorenzo

> 
> 
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski Nov. 3, 2022, 6 p.m. UTC | #3
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
>>
>> 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.

> 
>>
>>> @@ -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 <lorenzo@kernel.org>
>>> +  - Felix Fietkau <nbd@nbd.name>
>>> +
>>> +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.

> 
>>
>>> +
>>> +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 <lorenzo@kernel.org>
>>> +  - Felix Fietkau <nbd@nbd.name>
>>> +
>>> +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 <lorenzo@kernel.org>
>>> +  - Felix Fietkau <nbd@nbd.name>
>>> +
>>> +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...

For such model - register addresses exposed as separate devices - I do
not have appropriate name, but the real problem is not in the name. It's
in the hardware description.


Best regards,
Krzysztof
Lorenzo Bianconi Nov. 3, 2022, 6:29 p.m. UTC | #4
> 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 <lorenzo@kernel.org>
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 <lorenzo@kernel.org>
> >>> +  - Felix Fietkau <nbd@nbd.name>
> >>> +
> >>> +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 <lorenzo@kernel.org>
> >>> +  - Felix Fietkau <nbd@nbd.name>
> >>> +
> >>> +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 <lorenzo@kernel.org>
> >>> +  - Felix Fietkau <nbd@nbd.name>
> >>> +
> >>> +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?

Regards,
Lorenzo

> 
> For such model - register addresses exposed as separate devices - I do
> not have appropriate name, but the real problem is not in the name. It's
> in the hardware description.
> 
> 
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski Nov. 7, 2022, 10:04 a.m. UTC | #5
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 <lorenzo@kernel.org>
> 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 <lorenzo@kernel.org>
>>>>> +  - Felix Fietkau <nbd@nbd.name>
>>>>> +
>>>>> +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 <lorenzo@kernel.org>
>>>>> +  - Felix Fietkau <nbd@nbd.name>
>>>>> +
>>>>> +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 <lorenzo@kernel.org>
>>>>> +  - Felix Fietkau <nbd@nbd.name>
>>>>> +
>>>>> +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.

Best regards,
Krzysztof
Lorenzo Bianconi Nov. 8, 2022, 2:20 p.m. UTC | #6
> 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 <lorenzo@kernel.org>
> > 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 <lorenzo@kernel.org>
> >>>>> +  - Felix Fietkau <nbd@nbd.name>
> >>>>> +
> >>>>> +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 <lorenzo@kernel.org>
> >>>>> +  - Felix Fietkau <nbd@nbd.name>
> >>>>> +
> >>>>> +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 <lorenzo@kernel.org>
> >>>>> +  - Felix Fietkau <nbd@nbd.name>
> >>>>> +
> >>>>> +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
>
Sujuan Chen Dec. 6, 2022, 3:18 a.m. UTC | #7
On Mon, 2022-11-07 at 11:04 +0100, Krzysztof Kozlowski wrote:
> 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,m
> > > > > > t7986-wo-boot.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-boot.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..6c3c514c48ef
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-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 <lorenzo@kernel.org>
> > 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: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-boot.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOq8svAEM$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title:
> > > > > > +  MediaTek Wireless Ethernet Dispatch WO boot controller
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo@kernel.org>
> > > > > > +  - Felix Fietkau <nbd@nbd.name>
> > > > > > +
> > > > > > +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 :))
> > 

 
The mcu of wo borrows a part of dram to store and boot its firmware.
the right entry point address of the firmware must be passed to the mcu
to boot correctly, so we need to write the dram address of the entry
point to the boot register, In addition, there are some registers that
need to be set to control the reset of the mcu.

> > > 
> > > > 
> > > > > 
> > > > > > +
> > > > > > +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,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..6357a206587a
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > @@ -0,0 +1,50 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-ccif.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXO3mf70UY$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title: MediaTek Wireless Ethernet Dispatch WO controller
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo@kernel.org>
> > > > > > +  - Felix Fietkau <nbd@nbd.name>
> > > > > > +
> > > > > > +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,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..a499956d9e07
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > @@ -0,0 +1,50 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-dlm.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOVVd58hA$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title: MediaTek Wireless Ethernet Dispatch WO hw rx ring
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo@kernel.org>
> > > > > > +  - Felix Fietkau <nbd@nbd.name>
> > > > > > +
> > > > > > +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://urldefense.com/v3/__https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html*generic-names-recommendation__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOeva6xv4$
> > > > >  
> > > > 
> > > > 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.
> 
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
index 84fb0a146b6e..9e34c5d15cec 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
@@ -1,8 +1,8 @@ 
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Wireless Ethernet Dispatch Controller for MT7622
 
@@ -29,6 +29,50 @@  properties:
   interrupts:
     maxItems: 1
 
+  memory-region:
+    items:
+      - description:
+          Phandle for the node used to run firmware EMI region
+      - description:
+          Phandle for the node used to run firmware ILM region
+      - description:
+          Phandle for the node used to run firmware CPU DATA region
+
+  memory-region-names:
+    items:
+      - const: wo-emi
+      - const: wo-ilm
+      - const: wo-data
+
+  mediatek,wo-ccif:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the mediatek wed-wo controller.
+
+  mediatek,wo-boot:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the mediatek wed-wo boot interface.
+
+  mediatek,wo-dlm:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the mediatek wed-wo rx hw ring.
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt7622-wed
+    then:
+      properties:
+        memory-region-names: false
+        memory-region: false
+        mediatek,wo-boot: false
+        mediatek,wo-ccif: false
+        mediatek,wo-dlm: false
+
 required:
   - compatible
   - reg
@@ -44,8 +88,20 @@  examples:
       #address-cells = <2>;
       #size-cells = <2>;
       wed0: wed@1020a000 {
-        compatible = "mediatek,mt7622-wed","syscon";
+        compatible = "mediatek,mt7622-wed", "syscon";
         reg = <0 0x1020a000 0 0x1000>;
         interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
       };
+
+      wed1: wed@15010000 {
+        compatible = "mediatek,mt7986-wed", "syscon";
+        reg = <0 0x15010000 0 0x1000>;
+        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+
+        memory-region = <&wo_emi>, <&wo_data>, <&wo_ilm>;
+        memory-region-names = "wo-emi", "wo-ilm", "wo-data";
+        mediatek,wo-ccif = <&wo_ccif0>;
+        mediatek,wo-boot = <&wo_boot>;
+        mediatek,wo-dlm = <&wo_dlm0>;
+      };
     };
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
@@ -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 <lorenzo@kernel.org>
+  - Felix Fietkau <nbd@nbd.name>
+
+description:
+  The mediatek wo-boot provides a configuration interface for WED WO
+  boot controller on MT7986 soc.
+
+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 <lorenzo@kernel.org>
+  - Felix Fietkau <nbd@nbd.name>
+
+description:
+  The mediatek wo-ccif provides a configuration interface for WED WO
+  controller on MT7986 soc.
+
+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 <lorenzo@kernel.org>
+  - Felix Fietkau <nbd@nbd.name>
+
+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 {
+        compatible = "mediatek,mt7986-wo-dlm";
+        reg = <0 0x151e8000 0 0x2000>;
+        resets = <&ethsysrst 0>;
+        reset-names = "wocpu_rst";
+      };
+    };