From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H
and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but
with some differences:
- RZ/T2H has two reset lines; RZ/N1 has none.
- RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports.
- On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS
MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or
fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports
can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC
ports (mapped to PHY input indices 0-8).
- There are register bit differences between the SoCs, and RZ/N1 has
additional registers currently unused by the driver.
- On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the
switch can be connected to GMAC2/HW-RTOS GMAC.
To accommodate these differences, a new generic compatible string
`renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants.
The DT schema is updated to validate these differences and ensure proper
port and reset configurations per SoC.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
.../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +++++++++++++-----
include/dt-bindings/net/pcs-rzt2h-miic.h | 23 +++
2 files changed, 148 insertions(+), 46 deletions(-)
create mode 100644 include/dt-bindings/net/pcs-rzt2h-miic.h
diff --git a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
index 2d33bbab7163..832a49877a29 100644
--- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
+++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
@@ -4,13 +4,14 @@
$id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: Renesas RZ/N1 MII converter
+title: Renesas RZ/{N1, N2H, T2H} MII converter
maintainers:
- Clément Léger <clement.leger@bootlin.com>
+ - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
description: |
- This MII converter is present on the Renesas RZ/N1 SoC family. It is
+ This MII converter is present on the Renesas RZ/{N1, N2H, T2H} SoC families. It is
responsible to do MII passthrough or convert it to RMII/RGMII.
properties:
@@ -21,10 +22,17 @@ properties:
const: 0
compatible:
- items:
- - enum:
- - renesas,r9a06g032-miic
- - const: renesas,rzn1-miic
+ oneOf:
+ - items:
+ - enum:
+ - renesas,r9a06g032-miic
+ - const: renesas,rzn1-miic
+
+ - items:
+ - enum:
+ - renesas,r9a09g077-miic # RZ/T2H
+ - renesas,r9a09g087-miic # RZ/N2H
+ - const: renesas,rzt2h-miic
reg:
maxItems: 1
@@ -43,11 +51,20 @@ properties:
- const: rmii_ref
- const: hclk
+ resets:
+ items:
+ - description: Converter register reset
+ - description: Converter reset
+
+ reset-names:
+ items:
+ - const: rst
+ - const: crst
+
renesas,miic-switch-portin:
description: MII Switch PORTIN configuration. This value should use one of
the values defined in dt-bindings/net/pcs-rzn1-miic.h.
$ref: /schemas/types.yaml#/definitions/uint32
- enum: [1, 2]
power-domains:
maxItems: 1
@@ -60,11 +77,11 @@ patternProperties:
properties:
reg:
description: MII Converter port number.
- enum: [1, 2, 3, 4, 5]
renesas,miic-input:
description: Converter input port configuration. This value should use
- one of the values defined in dt-bindings/net/pcs-rzn1-miic.h.
+ one of the values defined in dt-bindings/net/pcs-rzn1-miic.h for RZ/N1 SoC
+ and include/dt-bindings/net/pcs-rzt2h-miic.h for RZ/{T2H, N2H} SoCs.
$ref: /schemas/types.yaml#/definitions/uint32
required:
@@ -73,47 +90,109 @@ patternProperties:
additionalProperties: false
- allOf:
- - if:
- properties:
- reg:
- const: 1
- then:
- properties:
- renesas,miic-input:
- const: 0
- - if:
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: renesas,rzn1-miic
+ then:
+ properties:
+ renesas,miic-switch-portin:
+ enum: [1, 2]
+ patternProperties:
+ "^mii-conv@[0-5]$":
properties:
reg:
- const: 2
- then:
- properties:
- renesas,miic-input:
- enum: [1, 11]
- - if:
- properties:
- reg:
- const: 3
- then:
- properties:
- renesas,miic-input:
- enum: [7, 10]
- - if:
+ enum: [1, 2, 3, 4, 5]
+ resets: false
+ reset-names: false
+ allOf:
+ - if:
+ properties:
+ reg:
+ const: 1
+ then:
+ properties:
+ renesas,miic-input:
+ const: 0
+ - if:
+ properties:
+ reg:
+ const: 2
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [1, 11]
+ - if:
+ properties:
+ reg:
+ const: 3
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [7, 10]
+ - if:
+ properties:
+ reg:
+ const: 4
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [4, 6, 9, 13]
+ - if:
+ properties:
+ reg:
+ const: 5
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [3, 5, 8, 12]
+ else:
+ properties:
+ renesas,miic-switch-portin:
+ const: 0
+ required:
+ - resets
+ - reset-names
+ patternProperties:
+ "^mii-conv@[0-5]$":
properties:
reg:
- const: 4
- then:
- properties:
- renesas,miic-input:
- enum: [4, 6, 9, 13]
- - if:
- properties:
- reg:
- const: 5
- then:
- properties:
- renesas,miic-input:
- enum: [3, 5, 8, 12]
+ enum: [0, 1, 2, 3]
+ allOf:
+ - if:
+ properties:
+ reg:
+ const: 0
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [0, 3, 6]
+ - if:
+ properties:
+ reg:
+ const: 1
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [1, 4, 7]
+ - if:
+ properties:
+ reg:
+ const: 2
+ then:
+ properties:
+ renesas,miic-input:
+ enum: [2, 5, 8]
+ - if:
+ properties:
+ reg:
+ const: 3
+ then:
+ properties:
+ renesas,miic-input:
+ const: 1
required:
- '#address-cells'
diff --git a/include/dt-bindings/net/pcs-rzt2h-miic.h b/include/dt-bindings/net/pcs-rzt2h-miic.h
new file mode 100644
index 000000000000..c1f35fc0f1cd
--- /dev/null
+++ b/include/dt-bindings/net/pcs-rzt2h-miic.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2025 Renesas Electronics Corporation.
+ */
+
+#ifndef _DT_BINDINGS_PCS_RZT2H_ETHSS
+#define _DT_BINDINGS_PCS_RZT2H_ETHSS
+
+/*
+ * Refer to the datasheet Internal Connection of Ethernet
+ * Ports to check the available combination
+ */
+#define ETHSS_GMAC0_PORT 0
+#define ETHSS_GMAC1_PORT 1
+#define ETHSS_GMAC2_PORT 2
+#define ETHSS_ETHERCAT_PORT0 3
+#define ETHSS_ETHERCAT_PORT1 4
+#define ETHSS_ETHERCAT_PORT2 5
+#define ETHSS_SWITCH_PORT0 6
+#define ETHSS_SWITCH_PORT1 7
+#define ETHSS_SWITCH_PORT2 8
+
+#endif
--
2.51.0
On Mon, Sep 01, 2025 at 11:43:14PM +0100, Prabhakar wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H > and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but > with some differences: > > - RZ/T2H has two reset lines; RZ/N1 has none. > - RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports. > - On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS > MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or > fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports > can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC > ports (mapped to PHY input indices 0-8). > - There are register bit differences between the SoCs, and RZ/N1 has > additional registers currently unused by the driver. > - On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the > switch can be connected to GMAC2/HW-RTOS GMAC. > > To accommodate these differences, a new generic compatible string > `renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants. > > The DT schema is updated to validate these differences and ensure proper > port and reset configurations per SoC. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > --- > .../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +++++++++++++----- > include/dt-bindings/net/pcs-rzt2h-miic.h | 23 +++ > 2 files changed, 148 insertions(+), 46 deletions(-) > create mode 100644 include/dt-bindings/net/pcs-rzt2h-miic.h > > diff --git a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > index 2d33bbab7163..832a49877a29 100644 > --- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > +++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > @@ -4,13 +4,14 @@ > $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > $schema: http://devicetree.org/meta-schemas/core.yaml# > > -title: Renesas RZ/N1 MII converter > +title: Renesas RZ/{N1, N2H, T2H} MII converter Don't use regex here. RZ/N1, RZ/N2H and TZ/T2H.... > > maintainers: > - Clément Léger <clement.leger@bootlin.com> > + - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > description: | > - This MII converter is present on the Renesas RZ/N1 SoC family. It is > + This MII converter is present on the Renesas RZ/{N1, N2H, T2H} SoC families. It is Just list the soc families, so people can grep for it. > responsible to do MII passthrough or convert it to RMII/RGMII. > > properties: > @@ -21,10 +22,17 @@ properties: > const: 0 > > compatible: > - items: > - - enum: > - - renesas,r9a06g032-miic > - - const: renesas,rzn1-miic > + oneOf: > + - items: > + - enum: > + - renesas,r9a06g032-miic > + - const: renesas,rzn1-miic > + > + - items: > + - enum: > + - renesas,r9a09g077-miic # RZ/T2H > + - renesas,r9a09g087-miic # RZ/N2H > + - const: renesas,rzt2h-miic > > reg: > maxItems: 1 > @@ -43,11 +51,20 @@ properties: > - const: rmii_ref > - const: hclk > > + resets: > + items: > + - description: Converter register reset > + - description: Converter reset > + > + reset-names: > + items: > + - const: rst > + - const: crst > + > renesas,miic-switch-portin: > description: MII Switch PORTIN configuration. This value should use one of > the values defined in dt-bindings/net/pcs-rzn1-miic.h. > $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2] Why? Widest constraints should be here. > > power-domains: > maxItems: 1 > @@ -60,11 +77,11 @@ patternProperties: > properties: > reg: > description: MII Converter port number. > - enum: [1, 2, 3, 4, 5] Why? > > renesas,miic-input: > description: Converter input port configuration. This value should use > - one of the values defined in dt-bindings/net/pcs-rzn1-miic.h. > + one of the values defined in dt-bindings/net/pcs-rzn1-miic.h for RZ/N1 SoC > + and include/dt-bindings/net/pcs-rzt2h-miic.h for RZ/{T2H, N2H} SoCs. > $ref: /schemas/types.yaml#/definitions/uint32 > > required: > @@ -73,47 +90,109 @@ patternProperties: > > additionalProperties: false > > - allOf: > - - if: > - properties: > - reg: > - const: 1 > - then: > - properties: > - renesas,miic-input: > - const: 0 > - - if: > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: renesas,rzn1-miic > + then: > + properties: > + renesas,miic-switch-portin: > + enum: [1, 2] > + patternProperties: > + "^mii-conv@[0-5]$": > properties: > reg: > - const: 2 > - then: > - properties: > - renesas,miic-input: > - enum: [1, 11] > - - if: > - properties: > - reg: > - const: 3 > - then: > - properties: > - renesas,miic-input: > - enum: [7, 10] > - - if: > + enum: [1, 2, 3, 4, 5] > + resets: false > + reset-names: false > + allOf: > + - if: > + properties: > + reg: > + const: 1 > + then: > + properties: > + renesas,miic-input: > + const: 0 > + - if: > + properties: > + reg: > + const: 2 > + then: > + properties: > + renesas,miic-input: > + enum: [1, 11] > + - if: > + properties: > + reg: > + const: 3 > + then: > + properties: > + renesas,miic-input: > + enum: [7, 10] > + - if: > + properties: > + reg: > + const: 4 > + then: > + properties: > + renesas,miic-input: > + enum: [4, 6, 9, 13] > + - if: > + properties: > + reg: > + const: 5 > + then: > + properties: > + renesas,miic-input: > + enum: [3, 5, 8, 12] > + else: > + properties: > + renesas,miic-switch-portin: > + const: 0 > + required: > + - resets > + - reset-names > + patternProperties: > + "^mii-conv@[0-5]$": > properties: > reg: > - const: 4 > - then: > - properties: > - renesas,miic-input: > - enum: [4, 6, 9, 13] > - - if: > - properties: > - reg: > - const: 5 > - then: > - properties: > - renesas,miic-input: > - enum: [3, 5, 8, 12] > + enum: [0, 1, 2, 3] > + allOf: > + - if: > + properties: > + reg: > + const: 0 > + then: > + properties: > + renesas,miic-input: > + enum: [0, 3, 6] > + - if: > + properties: > + reg: > + const: 1 > + then: > + properties: > + renesas,miic-input: > + enum: [1, 4, 7] > + - if: > + properties: > + reg: > + const: 2 > + then: > + properties: > + renesas,miic-input: > + enum: [2, 5, 8] > + - if: > + properties: > + reg: > + const: 3 > + then: > + properties: > + renesas,miic-input: > + const: 1 > > required: > - '#address-cells' > diff --git a/include/dt-bindings/net/pcs-rzt2h-miic.h b/include/dt-bindings/net/pcs-rzt2h-miic.h > new file mode 100644 > index 000000000000..c1f35fc0f1cd > --- /dev/null > +++ b/include/dt-bindings/net/pcs-rzt2h-miic.h Missing vendor prefix. Filename based on compatible, unless this is not for Renesas? > @@ -0,0 +1,23 @@ > +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ > +/* > + * Copyright (C) 2025 Renesas Electronics Corporation. > + */ Best regards, Krzysztof
Hi Krzysztof, Thank you for the review. On Tue, Sep 2, 2025 at 9:45 AM Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On Mon, Sep 01, 2025 at 11:43:14PM +0100, Prabhakar wrote: > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H > > and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but > > with some differences: > > > > - RZ/T2H has two reset lines; RZ/N1 has none. > > - RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports. > > - On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS > > MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or > > fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports > > can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC > > ports (mapped to PHY input indices 0-8). > > - There are register bit differences between the SoCs, and RZ/N1 has > > additional registers currently unused by the driver. > > - On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the > > switch can be connected to GMAC2/HW-RTOS GMAC. > > > > To accommodate these differences, a new generic compatible string > > `renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants. > > > > The DT schema is updated to validate these differences and ensure proper > > port and reset configurations per SoC. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > --- > > .../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +++++++++++++----- > > include/dt-bindings/net/pcs-rzt2h-miic.h | 23 +++ > > 2 files changed, 148 insertions(+), 46 deletions(-) > > create mode 100644 include/dt-bindings/net/pcs-rzt2h-miic.h > > > > diff --git a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > index 2d33bbab7163..832a49877a29 100644 > > --- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > +++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > @@ -4,13 +4,14 @@ > > $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > > $schema: http://devicetree.org/meta-schemas/core.yaml# > > > > -title: Renesas RZ/N1 MII converter > > +title: Renesas RZ/{N1, N2H, T2H} MII converter > > Don't use regex here. RZ/N1, RZ/N2H and TZ/T2H.... > Ok, I will use it as above (s/TZ/T2H/RZ/T2H). > > > > maintainers: > > - Clément Léger <clement.leger@bootlin.com> > > + - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > description: | > > - This MII converter is present on the Renesas RZ/N1 SoC family. It is > > + This MII converter is present on the Renesas RZ/{N1, N2H, T2H} SoC families. It is > > Just list the soc families, so people can grep for it. > Ok. > > responsible to do MII passthrough or convert it to RMII/RGMII. > > > > properties: > > @@ -21,10 +22,17 @@ properties: > > const: 0 > > > > compatible: > > - items: > > - - enum: > > - - renesas,r9a06g032-miic > > - - const: renesas,rzn1-miic > > + oneOf: > > + - items: > > + - enum: > > + - renesas,r9a06g032-miic > > + - const: renesas,rzn1-miic > > + > > + - items: > > + - enum: > > + - renesas,r9a09g077-miic # RZ/T2H > > + - renesas,r9a09g087-miic # RZ/N2H > > + - const: renesas,rzt2h-miic > > > > reg: > > maxItems: 1 > > @@ -43,11 +51,20 @@ properties: > > - const: rmii_ref > > - const: hclk > > > > + resets: > > + items: > > + - description: Converter register reset > > + - description: Converter reset > > + > > + reset-names: > > + items: > > + - const: rst > > + - const: crst > > + > > renesas,miic-switch-portin: > > description: MII Switch PORTIN configuration. This value should use one of > > the values defined in dt-bindings/net/pcs-rzn1-miic.h. > > $ref: /schemas/types.yaml#/definitions/uint32 > > - enum: [1, 2] > > Why? Widest constraints should be here. > Ok, I will keep this as is and just adjust for RZ/T2H SoC. > > > > power-domains: > > maxItems: 1 > > @@ -60,11 +77,11 @@ patternProperties: > > properties: > > reg: > > description: MII Converter port number. > > - enum: [1, 2, 3, 4, 5] > > Why? > If I keep this here and just adjust the below for RZ/T2H case I do get errors: reg: enum: [0, 1, 2, 3] arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dtb: ethss@80110000 (renesas,r9a09g077-miic): mii-conv@0:reg:0:0: 0 is not one of [1, 2, 3, 4, 5] from schema $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# Any pointers on how to handle this case? > > > > renesas,miic-input: > > description: Converter input port configuration. This value should use > > - one of the values defined in dt-bindings/net/pcs-rzn1-miic.h. > > + one of the values defined in dt-bindings/net/pcs-rzn1-miic.h for RZ/N1 SoC > > + and include/dt-bindings/net/pcs-rzt2h-miic.h for RZ/{T2H, N2H} SoCs. > > $ref: /schemas/types.yaml#/definitions/uint32 > > > > required: > > @@ -73,47 +90,109 @@ patternProperties: > > > > additionalProperties: false > > > > - allOf: > > - - if: > > - properties: > > - reg: > > - const: 1 > > - then: > > - properties: > > - renesas,miic-input: > > - const: 0 > > - - if: > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: renesas,rzn1-miic > > + then: > > + properties: > > + renesas,miic-switch-portin: > > + enum: [1, 2] > > + patternProperties: > > + "^mii-conv@[0-5]$": > > properties: > > reg: > > - const: 2 > > - then: > > - properties: > > - renesas,miic-input: > > - enum: [1, 11] > > - - if: > > - properties: > > - reg: > > - const: 3 > > - then: > > - properties: > > - renesas,miic-input: > > - enum: [7, 10] > > - - if: > > + enum: [1, 2, 3, 4, 5] > > + resets: false > > + reset-names: false > > + allOf: > > + - if: > > + properties: > > + reg: > > + const: 1 > > + then: > > + properties: > > + renesas,miic-input: > > + const: 0 > > + - if: > > + properties: > > + reg: > > + const: 2 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [1, 11] > > + - if: > > + properties: > > + reg: > > + const: 3 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [7, 10] > > + - if: > > + properties: > > + reg: > > + const: 4 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [4, 6, 9, 13] > > + - if: > > + properties: > > + reg: > > + const: 5 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [3, 5, 8, 12] > > + else: > > + properties: > > + renesas,miic-switch-portin: > > + const: 0 > > + required: > > + - resets > > + - reset-names > > + patternProperties: > > + "^mii-conv@[0-5]$": > > properties: > > reg: > > - const: 4 > > - then: > > - properties: > > - renesas,miic-input: > > - enum: [4, 6, 9, 13] > > - - if: > > - properties: > > - reg: > > - const: 5 > > - then: > > - properties: > > - renesas,miic-input: > > - enum: [3, 5, 8, 12] > > + enum: [0, 1, 2, 3] > > + allOf: > > + - if: > > + properties: > > + reg: > > + const: 0 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [0, 3, 6] > > + - if: > > + properties: > > + reg: > > + const: 1 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [1, 4, 7] > > + - if: > > + properties: > > + reg: > > + const: 2 > > + then: > > + properties: > > + renesas,miic-input: > > + enum: [2, 5, 8] > > + - if: > > + properties: > > + reg: > > + const: 3 > > + then: > > + properties: > > + renesas,miic-input: > > + const: 1 > > > > required: > > - '#address-cells' > > diff --git a/include/dt-bindings/net/pcs-rzt2h-miic.h b/include/dt-bindings/net/pcs-rzt2h-miic.h > > new file mode 100644 > > index 000000000000..c1f35fc0f1cd > > --- /dev/null > > +++ b/include/dt-bindings/net/pcs-rzt2h-miic.h > > Missing vendor prefix. Filename based on compatible, unless this is not > for Renesas? > Agreed, I missed that I will add the vendor prefix and name it to `renesas,r9a09g077-pcs-miic.h`. Cheers, Prabhakar
Hi Prabhakar, Thanks for your patch! On Tue, 2 Sept 2025 at 14:17, Lad, Prabhakar <prabhakar.csengg@gmail.com> wrote: > On Tue, Sep 2, 2025 at 9:45 AM Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On Mon, Sep 01, 2025 at 11:43:14PM +0100, Prabhakar wrote: > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H > > > and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but > > > with some differences: > > > > > > - RZ/T2H has two reset lines; RZ/N1 has none. > > > - RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports. > > > - On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS > > > MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or > > > fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports > > > can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC > > > ports (mapped to PHY input indices 0-8). > > > - There are register bit differences between the SoCs, and RZ/N1 has > > > additional registers currently unused by the driver. > > > - On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the > > > switch can be connected to GMAC2/HW-RTOS GMAC. > > > > > > To accommodate these differences, a new generic compatible string > > > `renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants. Until now, we didn't have any family-specific "renesas,rzt2h-*" compatible values. Instead, we always used " renesas,r9a09g077-<foo>" as a fallback for "renesas,r9a09g087-<foo>". Is there any good reason to start deviating from this? > > > > > > The DT schema is updated to validate these differences and ensure proper > > > port and reset configurations per SoC. > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > --- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > > +++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > > @@ -4,13 +4,14 @@ > > > $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > > > $schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > -title: Renesas RZ/N1 MII converter > > > +title: Renesas RZ/{N1, N2H, T2H} MII converter > > > > Don't use regex here. RZ/N1, RZ/N2H and TZ/T2H.... > > > Ok, I will use it as above (s/TZ/T2H/RZ/T2H). s@TZ/T2H@RZ/T2H@ ;-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Hi Geert, Thank you for the review. On Wed, Sep 3, 2025 at 10:12 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Prabhakar, > > Thanks for your patch! > > On Tue, 2 Sept 2025 at 14:17, Lad, Prabhakar <prabhakar.csengg@gmail.com> wrote: > > On Tue, Sep 2, 2025 at 9:45 AM Krzysztof Kozlowski <krzk@kernel.org> wrote: > > > On Mon, Sep 01, 2025 at 11:43:14PM +0100, Prabhakar wrote: > > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > > > Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H > > > > and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but > > > > with some differences: > > > > > > > > - RZ/T2H has two reset lines; RZ/N1 has none. > > > > - RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports. > > > > - On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS > > > > MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or > > > > fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports > > > > can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC > > > > ports (mapped to PHY input indices 0-8). > > > > - There are register bit differences between the SoCs, and RZ/N1 has > > > > additional registers currently unused by the driver. > > > > - On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the > > > > switch can be connected to GMAC2/HW-RTOS GMAC. > > > > > > > > To accommodate these differences, a new generic compatible string > > > > `renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants. > > Until now, we didn't have any family-specific "renesas,rzt2h-*" > compatible values. Instead, we always used " renesas,r9a09g077-<foo>" > as a fallback for "renesas,r9a09g087-<foo>". > Is there any good reason to start deviating from this? > Right good point, I'll continue using the previous approach and use T2H compatible as a fallback for N2H. > > > > > > > > The DT schema is updated to validate these differences and ensure proper > > > > port and reset configurations per SoC. > > > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > --- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > > > +++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml > > > > @@ -4,13 +4,14 @@ > > > > $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > > > > $schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > > > -title: Renesas RZ/N1 MII converter > > > > +title: Renesas RZ/{N1, N2H, T2H} MII converter > > > > > > Don't use regex here. RZ/N1, RZ/N2H and TZ/T2H.... > > > > > Ok, I will use it as above (s/TZ/T2H/RZ/T2H). > > s@TZ/T2H@RZ/T2H@ ;-) > :-) Cheers, Prabhakar
On 02/09/2025 14:17, Lad, Prabhakar wrote: >>> power-domains: >>> maxItems: 1 >>> @@ -60,11 +77,11 @@ patternProperties: >>> properties: >>> reg: >>> description: MII Converter port number. >>> - enum: [1, 2, 3, 4, 5] >> >> Why? >> > If I keep this here and just adjust the below for RZ/T2H case I do get errors: > > reg: > enum: [0, 1, 2, 3] > > > arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dtb: ethss@80110000 > (renesas,r9a09g077-miic): mii-conv@0:reg:0:0: 0 is not one of [1, 2, > 3, 4, 5] > from schema $id: > http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > > Any pointers on how to handle this case? So please grow this with '0' to cover the widest choices, which you then narrow in individual if:then:. The trouble with your if:then: is that they are huge and they also nest patterns and if:then:. This often is less maintainable, so maybe you should consider having two separate binding files? You can have also common-shared properties. Anyway, I am fine with current approach of one binding as well, so up to you folks. > >>> >>> renesas,miic-input: >>> description: Converter input port configuration. This value should use >>> - one of the values defined in dt-bindings/net/pcs-rzn1-miic.h. >>> + one of the values defined in dt-bindings/net/pcs-rzn1-miic.h for RZ/N1 SoC >>> + and include/dt-bindings/net/pcs-rzt2h-miic.h for RZ/{T2H, N2H} SoCs. >>> $ref: /schemas/types.yaml#/definitions/uint32 >>> Best regards, Krzysztof
Hi Krzysztof, On Tue, Sep 2, 2025 at 1:21 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 02/09/2025 14:17, Lad, Prabhakar wrote: > >>> power-domains: > >>> maxItems: 1 > >>> @@ -60,11 +77,11 @@ patternProperties: > >>> properties: > >>> reg: > >>> description: MII Converter port number. > >>> - enum: [1, 2, 3, 4, 5] > >> > >> Why? > >> > > If I keep this here and just adjust the below for RZ/T2H case I do get errors: > > > > reg: > > enum: [0, 1, 2, 3] > > > > > > arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dtb: ethss@80110000 > > (renesas,r9a09g077-miic): mii-conv@0:reg:0:0: 0 is not one of [1, 2, > > 3, 4, 5] > > from schema $id: > > http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# > > > > Any pointers on how to handle this case? > > So please grow this with '0' to cover the widest choices, which you then > narrow in individual if:then:. > Got you, thank you for the clarification. > The trouble with your if:then: is that they are huge and they also nest > patterns and if:then:. > > This often is less maintainable, so maybe you should consider having two > separate binding files? You can have also common-shared properties. > Anyway, I am fine with current approach of one binding as well, so up to > you folks. > Ok, I will stay with the current approach. Cheers, Prabhakar
© 2016 - 2025 Red Hat, Inc.