Message ID | 1653031473-21032-1-git-send-email-radhey.shyam.pandey@amd.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] dt-bindings: net: xilinx: document xilinx emaclite driver binding | expand |
On 20/05/2022 09:24, Radhey Shyam Pandey wrote: > Add basic description for the xilinx emaclite driver DT bindings. > > Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> > --- > Changes since RFC: > - Add ethernet-controller yaml reference. > - 4 space indent for DTS example. > --- > .../bindings/net/xlnx,emaclite.yaml | 63 +++++++++++++++++++ > 1 file changed, 63 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > > diff --git a/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > new file mode 100644 > index 000000000000..6105122ad583 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > @@ -0,0 +1,63 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/xlnx,emaclite.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Xilinx Emaclite Ethernet controller > + > +allOf: > + - $ref: ethernet-controller.yaml# This goes just before properties (so after maintainers). > + > +maintainers: > + - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> > + - Harini Katakam <harini.katakam@amd.com> > + > +properties: > + compatible: > + enum: > + - xlnx,opb-ethernetlite-1.01.a > + - xlnx,opb-ethernetlite-1.01.b > + - xlnx,xps-ethernetlite-1.00.a > + - xlnx,xps-ethernetlite-2.00.a > + - xlnx,xps-ethernetlite-2.01.a > + - xlnx,xps-ethernetlite-3.00.a > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + phy-handle: true > + > + local-mac-address: true > + > + xlnx,tx-ping-pong: > + type: boolean > + description: hardware supports tx ping pong buffer. > + > + xlnx,rx-ping-pong: > + type: boolean > + description: hardware supports rx ping pong buffer. > + > +required: > + - compatible > + - reg > + - interrupts > + - phy-handle > + > +additionalProperties: false > + > +examples: > + - | > + axi_ethernetlite_1: ethernet@40e00000 { > + compatible = "xlnx,xps-ethernetlite-3.00.a"; > + interrupt-parent = <&axi_intc_1>; > + interrupts = <1 0>; Is "0" an interrupt none type? If yes, then this should be rather a define and a proper type, not none. > + local-mac-address = [00 0a 35 00 00 00]; Each device should get it's own MAC address, right? I understand you leave it for bootloader, then just fill it with 0. > + phy-handle = <&phy0>; > + reg = <0x40e00000 0x10000>; Put the reg after compatible in DTS code. > + xlnx,rx-ping-pong; > + xlnx,tx-ping-pong; > + }; Best regards, Krzysztof
> -----Original Message----- > From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > Sent: Saturday, May 21, 2022 9:14 PM > To: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>; > davem@davemloft.net; edumazet@google.com; kuba@kernel.org; > pabeni@redhat.com; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org; > harini.katakam@amd.com; michal.simek@amd.com > Cc: netdev@vger.kernel.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; git@amd.com > Subject: Re: [PATCH net-next] dt-bindings: net: xilinx: document xilinx emaclite > driver binding > > > On 20/05/2022 09:24, Radhey Shyam Pandey wrote: > > Add basic description for the xilinx emaclite driver DT bindings. > > > > Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> > > --- > > Changes since RFC: > > - Add ethernet-controller yaml reference. > > - 4 space indent for DTS example. > > --- > > .../bindings/net/xlnx,emaclite.yaml | 63 +++++++++++++++++++ > > 1 file changed, 63 insertions(+) > > create mode 100644 > Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > > > > diff --git a/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > > new file mode 100644 > > index 000000000000..6105122ad583 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml > > @@ -0,0 +1,63 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/xlnx,emaclite.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Xilinx Emaclite Ethernet controller > > + > > +allOf: > > + - $ref: ethernet-controller.yaml# > > This goes just before properties (so after maintainers). Ok . sure will fix in v2. > > > + > > +maintainers: > > + - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> > > + - Harini Katakam <harini.katakam@amd.com> > > + > > +properties: > > + compatible: > > + enum: > > + - xlnx,opb-ethernetlite-1.01.a > > + - xlnx,opb-ethernetlite-1.01.b > > + - xlnx,xps-ethernetlite-1.00.a > > + - xlnx,xps-ethernetlite-2.00.a > > + - xlnx,xps-ethernetlite-2.01.a > > + - xlnx,xps-ethernetlite-3.00.a > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + phy-handle: true > > + > > + local-mac-address: true > > + > > + xlnx,tx-ping-pong: > > + type: boolean > > + description: hardware supports tx ping pong buffer. > > + > > + xlnx,rx-ping-pong: > > + type: boolean > > + description: hardware supports rx ping pong buffer. > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - phy-handle > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + axi_ethernetlite_1: ethernet@40e00000 { > > + compatible = "xlnx,xps-ethernetlite-3.00.a"; > > + interrupt-parent = <&axi_intc_1>; > > + interrupts = <1 0>; > > Is "0" an interrupt none type? If yes, then this should be rather a > define and a proper type, not none. I looked at axi intc driver and it seems second cell in unused here. For interrupt type level/edge , interrupt controller has separate binding "xlnx,kind-of-intr". So will remove the unused cell. + interrupts = <1>; > > > + local-mac-address = [00 0a 35 00 00 00]; > > Each device should get it's own MAC address, right? I understand you > leave it for bootloader, then just fill it with 0. The emaclite driver uses of_get_ethdev_address() to get mac from DT. i.e 'local-mac-address' if present in DT it will be read and this MAC address is programmed in the MAC core. So I think it's ok to have a user defined mac-address (instead of 0s) here in DT example? > > > + phy-handle = <&phy0>; > > + reg = <0x40e00000 0x10000>; > > Put the reg after compatible in DTS code. Ok, sure will fix it in v2. > > > + xlnx,rx-ping-pong; > > + xlnx,tx-ping-pong; > > + }; > > > Best regards, > Krzysztof
On 30/05/2022 15:21, Radhey Shyam Pandey wrote: >> >>> + local-mac-address = [00 0a 35 00 00 00]; >> >> Each device should get it's own MAC address, right? I understand you >> leave it for bootloader, then just fill it with 0. > > The emaclite driver uses of_get_ethdev_address() to get mac from DT. > i.e 'local-mac-address' if present in DT it will be read and this MAC > address is programmed in the MAC core. So I think it's ok to have a > user defined mac-address (instead of 0s) here in DT example? And you want to program the same MAC address in every device in the world? How would that work? Best regards, Krzysztof
> -----Original Message----- > From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > Sent: Tuesday, May 31, 2022 12:40 AM > To: Radhey Shyam Pandey <radheys@xilinx.com>; Radhey Shyam Pandey > <radhey.shyam.pandey@amd.com>; davem@davemloft.net; > edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org; > harini.katakam@amd.com; michal.simek@amd.com > Cc: netdev@vger.kernel.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; git@amd.com > Subject: Re: [PATCH net-next] dt-bindings: net: xilinx: document xilinx emaclite > driver binding > > On 30/05/2022 15:21, Radhey Shyam Pandey wrote: > >> > >>> + local-mac-address = [00 0a 35 00 00 00]; > >> > >> Each device should get it's own MAC address, right? I understand you > >> leave it for bootloader, then just fill it with 0. > > > > The emaclite driver uses of_get_ethdev_address() to get mac from DT. > > i.e 'local-mac-address' if present in DT it will be read and this MAC > > address is programmed in the MAC core. So I think it's ok to have a > > user defined mac-address (instead of 0s) here in DT example? > > And you want to program the same MAC address in every device in the world? > How would that work? I agree, for most of practical usecases mac address will be set by bootloader[1]. But just thinking for usecases where uboot can't read from non-volatile memory user are still provided with option to set local-mac-address in DT and let linux also configures it? Also see this in couple of other networking driver examples. cdns,macb.yaml: local-mac-address: true cdns,macb.yaml: local-mac-address = [3a 0e 03 04 05 06]; brcm,systemport.yaml: local-mac-address = [ 00 11 22 33 44 55 ]; In emaclite yaml - as it an example I will set it mac-address to 0 to align with common usecase. local-mac-address = [00 00 00 00 00 00] [1]: https://support.xilinx.com/s/article/53476 > > > > Best regards, > Krzysztof
On 31/05/2022 20:19, Radhey Shyam Pandey wrote: >> -----Original Message----- >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> >> Sent: Tuesday, May 31, 2022 12:40 AM >> To: Radhey Shyam Pandey <radheys@xilinx.com>; Radhey Shyam Pandey >> <radhey.shyam.pandey@amd.com>; davem@davemloft.net; >> edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; >> robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org; >> harini.katakam@amd.com; michal.simek@amd.com >> Cc: netdev@vger.kernel.org; devicetree@vger.kernel.org; linux- >> kernel@vger.kernel.org; git@amd.com >> Subject: Re: [PATCH net-next] dt-bindings: net: xilinx: document xilinx emaclite >> driver binding >> >> On 30/05/2022 15:21, Radhey Shyam Pandey wrote: >>>> >>>>> + local-mac-address = [00 0a 35 00 00 00]; >>>> >>>> Each device should get it's own MAC address, right? I understand you >>>> leave it for bootloader, then just fill it with 0. >>> >>> The emaclite driver uses of_get_ethdev_address() to get mac from DT. >>> i.e 'local-mac-address' if present in DT it will be read and this MAC >>> address is programmed in the MAC core. So I think it's ok to have a >>> user defined mac-address (instead of 0s) here in DT example? >> >> And you want to program the same MAC address in every device in the world? >> How would that work? > > I agree, for most of practical usecases mac address will be set by bootloader[1]. > But just thinking for usecases where uboot can't read from non-volatile memory > user are still provided with option to set local-mac-address in DT and let linux > also configures it? Also see this in couple of other networking driver examples. Which is not necessarily correct approach > > cdns,macb.yaml: local-mac-address: true > cdns,macb.yaml: local-mac-address = [3a 0e 03 04 05 06]; > brcm,systemport.yaml: local-mac-address = [ 00 11 22 33 44 55 ]; This brcm looks like an invalid MAC, so could be just placeholder. > > In emaclite yaml - as it an example I will set it mac-address to 0 to align > with common usecase. local-mac-address = [00 00 00 00 00 00] > Thanks. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml new file mode 100644 index 000000000000..6105122ad583 --- /dev/null +++ b/Documentation/devicetree/bindings/net/xlnx,emaclite.yaml @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/xlnx,emaclite.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Xilinx Emaclite Ethernet controller + +allOf: + - $ref: ethernet-controller.yaml# + +maintainers: + - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> + - Harini Katakam <harini.katakam@amd.com> + +properties: + compatible: + enum: + - xlnx,opb-ethernetlite-1.01.a + - xlnx,opb-ethernetlite-1.01.b + - xlnx,xps-ethernetlite-1.00.a + - xlnx,xps-ethernetlite-2.00.a + - xlnx,xps-ethernetlite-2.01.a + - xlnx,xps-ethernetlite-3.00.a + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + phy-handle: true + + local-mac-address: true + + xlnx,tx-ping-pong: + type: boolean + description: hardware supports tx ping pong buffer. + + xlnx,rx-ping-pong: + type: boolean + description: hardware supports rx ping pong buffer. + +required: + - compatible + - reg + - interrupts + - phy-handle + +additionalProperties: false + +examples: + - | + axi_ethernetlite_1: ethernet@40e00000 { + compatible = "xlnx,xps-ethernetlite-3.00.a"; + interrupt-parent = <&axi_intc_1>; + interrupts = <1 0>; + local-mac-address = [00 0a 35 00 00 00]; + phy-handle = <&phy0>; + reg = <0x40e00000 0x10000>; + xlnx,rx-ping-pong; + xlnx,tx-ping-pong; + };
Add basic description for the xilinx emaclite driver DT bindings. Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> --- Changes since RFC: - Add ethernet-controller yaml reference. - 4 space indent for DTS example. --- .../bindings/net/xlnx,emaclite.yaml | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/xlnx,emaclite.yaml