Hi Krzysztof, On 23/12/22 17:01, Krzysztof Kozlowski wrote: > On 23/12/2022 12:09, MD Danish Anwar wrote: >> From: Puranjay Mohan <p-mohan@xxxxxx> >> >> Add a YAML binding document for the ICSSG Programmable real time unit >> based Ethernet driver. This driver uses the PRU and PRUSS consumer APIs >> to interface the PRUs and load/run the firmware for supporting ethernet >> functionality. >> >> Signed-off-by: Puranjay Mohan <p-mohan@xxxxxx> >> Signed-off-by: Md Danish Anwar <danishanwar@xxxxxx> >> --- >> .../bindings/net/ti,icssg-prueth.yaml | 174 ++++++++++++++++++ >> 1 file changed, 174 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml >> >> diff --git a/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml b/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml >> new file mode 100644 >> index 000000000000..7659f5fd3132 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml >> @@ -0,0 +1,174 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/net/ti,icssg-prueth.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: >> + Texas Instruments ICSSG PRUSS Ethernet > > Keep it in one line. > Sure, I'll do it. >> + >> +maintainers: >> + - Puranjay Mohan <p-mohan@xxxxxx> >> + - Md Danish Anwar <danishanwar@xxxxxx> >> + >> +description: >> + Ethernet based on the Programmable Real-Time >> + Unit and Industrial Communication Subsystem. >> + >> +allOf: >> + - $ref: /schemas/remoteproc/ti,pru-consumer.yaml# >> + >> +properties: >> + compatible: >> + enum: >> + - ti,am654-icssg-prueth # for AM65x SoC family >> + >> + sram: >> + description: >> + phandle to MSMC SRAM node > > Where does the definition of this come from? If from nowhere, usually > you need vendor prefix and type/ref. > It is phandle to sram node in SoC DT file. I'll change it to ti,sram as it is TI specific. I'll also add $ref: /schemas/types.yaml#/definitions/phandle >> + >> + dmas: >> + maxItems: 10 >> + >> + dma-names: >> + items: >> + - const: tx0-0 >> + - const: tx0-1 >> + - const: tx0-2 >> + - const: tx0-3 >> + - const: tx1-0 >> + - const: tx1-1 >> + - const: tx1-2 >> + - const: tx1-3 >> + - const: rx0 >> + - const: rx1 >> + >> + ethernet-ports: >> + type: object >> + properties: >> + '#address-cells': >> + const: 1 >> + '#size-cells': >> + const: 0 >> + >> + patternProperties: >> + ^port@[0-1]$: >> + type: object >> + description: ICSSG PRUETH external ports >> + >> + $ref: ethernet-controller.yaml# >> + >> + unevaluatedProperties: false >> + additionalProperties: false > > You cannot have both. Did you test the binding? I doubt it... > Sorry, must have missed it in testing. I will remove additionalProperties and just keep unevaluatedProperties. >> + properties: >> + reg: >> + items: >> + - enum: [0, 1] >> + description: ICSSG PRUETH port number >> + >> + ti,syscon-rgmii-delay: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + phandle to system controller node and register offset >> + to ICSSG control register for RGMII transmit delay > > You need to describe the items. And in your own bindings from TI you > will even find example... > Sure. I'll describe the items for this. >> + >> + required: >> + - reg >> + >> + ti,mii-g-rt: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: | >> + phandle to MII_G_RT module's syscon regmap. >> + >> + ti,mii-rt: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: | >> + phandle to MII_RT module's syscon regmap > > Why do you have so many phandles? Aren't you missing some phys? > That is because control bits were sprinkled around System Control register so we need to use syscon regmap to access them. >> + >> + interrupts: >> + minItems: 2 > > Drop minItems > Sure. I'll drop minItems. >> + maxItems: 2 >> + description: | >> + Interrupt specifiers to TX timestamp IRQ. >> + >> + interrupt-names: >> + items: >> + - const: tx_ts0 >> + - const: tx_ts1 >> + >> +required: >> + - compatible >> + - sram >> + - ti,mii-g-rt > > Keep same order as in properties:. > Sure, I will make sure it has same order as in properties. >> + - dmas >> + - dma-names >> + - ethernet-ports >> + - interrupts >> + - interrupt-names >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + > > No need for blank line. > I'll remove this blank line. >> + /* Example k3-am654 base board SR2.0, dual-emac */ >> + pruss2_eth: pruss2_eth { > > No underscores in node names. > > Node names should be generic. > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > I will change the node name 'pruss2_eth' to generic for example 'ethernet'. >> + compatible = "ti,am654-icssg-prueth"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&icssg2_rgmii_pins_default>; >> + sram = <&msmc_ram>; >> + >> + ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>, >> + <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>; >> + firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf", >> + "ti-pruss/am65x-rtu0-prueth-fw.elf", >> + "ti-pruss/am65x-txpru0-prueth-fw.elf", >> + "ti-pruss/am65x-pru1-prueth-fw.elf", >> + "ti-pruss/am65x-rtu1-prueth-fw.elf", >> + "ti-pruss/am65x-txpru1-prueth-fw.elf"; > > I really doubt it was tested... and maybe there will be no testing from > Rob's bot due to dependency. > > Please post dt_binding_check testing results. > I had run dt_binding check before posting, must have missed these errors. I will be careful to check for this errors before posting patches. I will post new revision after doing the above mentioned changes. I will make sure to do testing properly. > Best regards, > Krzysztof > -- Thanks and Regards, Danish.