Message ID | 1638864419-17501-2-git-send-email-wellslutw@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | This is a patch series for Ethernet driver of Sunplus SP7021 SoC. | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/cc_maintainers | success | CCed 6 of 6 maintainers |
netdev/build_clang | success | Errors and warnings before: 0 this patch: 0 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 185 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Tue, Dec 07, 2021 at 04:06:58PM +0800, Wells Lu wrote: > Add bindings documentation for Sunplus SP7021. > > Signed-off-by: Wells Lu <wellslutw@gmail.com> > --- > Changes in v4 > - Addressed all comments from Mr. Andrew Lunn. > - Moved properties 'nvmem-cells' and 'nvmem-cell-names' to port of ethernet-ports. > - Changed value of property 'nvmem-cell-names' to "mac-address". > > .../bindings/net/sunplus,sp7021-emac.yaml | 172 +++++++++++++++++++++ > MAINTAINERS | 7 + > 2 files changed, 179 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml > > diff --git a/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml b/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml > new file mode 100644 > index 0000000..efc987f > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml > @@ -0,0 +1,172 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +# Copyright (C) Sunplus Co., Ltd. 2021 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Sunplus SP7021 Dual Ethernet MAC Device Tree Bindings > + > +maintainers: > + - Wells Lu <wellslutw@gmail.com> > + > +description: | > + Sunplus SP7021 dual 10M/100M Ethernet MAC controller. > + Device node of the controller has following properties. > + > +properties: > + compatible: > + const: sunplus,sp7021-emac > + > + reg: > + items: > + - description: the EMAC registers > + - description: the MOON5 registers > + > + reg-names: > + items: > + - const: emac > + - const: moon5 > + > + interrupts: > + description: | > + Contains number and type of interrupt. Number should be 66. Drop. That's every 'interrupts' and the exact number is outside the scope of the binding. > + Type should be high-level trigger. > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + ethernet-ports: > + type: object > + description: Ethernet ports to PHY > + > + properties: > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + patternProperties: > + "^port@[0-1]$": > + type: object > + description: Port to PHY > + > + properties: > + reg: > + minimum: 0 > + maximum: 1 > + > + phy-handle: > + maxItems: 1 > + > + phy-mode: > + maxItems: 1 > + > + nvmem-cells: > + items: > + - description: nvmem cell address of MAC address > + > + nvmem-cell-names: > + description: names corresponding to the nvmem cells > + items: > + - const: mac-address > + > + required: > + - reg > + - phy-handle > + - phy-mode > + - nvmem-cells > + - nvmem-cell-names > + > + mdio: Just need: $ref: mdio.yaml# unevaluatedProperties: false and drop the rest. > + type: object > + description: external MDIO Bus > + > + properties: > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + patternProperties: > + "^ethernet-phy@[0-9a-f]+$": > + type: object > + description: external PHY node > + > + properties: > + reg: > + minimum: 0 > + maximum: 30 > + > + required: > + - reg > + > +additionalProperties: false > + > +required: > + - compatible > + - reg > + - reg-names > + - interrupts > + - clocks > + - resets > + - pinctrl-0 > + - pinctrl-names > + - ethernet-ports > + - mdio > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + emac: emac@9c108000 { ethernet@9c108000 { > + compatible = "sunplus,sp7021-emac"; > + reg = <0x9c108000 0x400>, <0x9c000280 0x80>; > + reg-names = "emac", "moon5"; > + interrupt-parent = <&intc>; > + interrupts = <66 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&clkc 0xa7>; > + resets = <&rstc 0x97>; > + pinctrl-0 = <&emac_demo_board_v3_pins>; > + pinctrl-names = "default"; > + > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + phy-handle = <ð_phy0>; > + phy-mode = "rmii"; > + nvmem-cells = <&mac_addr0>; > + nvmem-cell-names = "mac-address"; > + }; > + > + port@1 { > + reg = <1>; > + phy-handle = <ð_phy1>; > + phy-mode = "rmii"; > + nvmem-cells = <&mac_addr1>; > + nvmem-cell-names = "mac-address"; > + }; > + }; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + eth_phy0: ethernet-phy@0 { > + reg = <0>; > + }; > + > + eth_phy1: ethernet-phy@1 { > + reg = <1>; > + }; > + }; > + }; > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 0dc08cd..5b1ef9d 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -18245,6 +18245,13 @@ L: netdev@vger.kernel.org > S: Maintained > F: drivers/net/ethernet/dlink/sundance.c > > +SUNPLUS ETHERNET DRIVER > +M: Wells Lu <wellslutw@gmail.com> > +L: netdev@vger.kernel.org > +S: Maintained > +W: https://sunplus-tibbo.atlassian.net/wiki/spaces/doc/overview > +F: Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml > + > SUPERH > M: Yoshinori Sato <ysato@users.sourceforge.jp> > M: Rich Felker <dalias@libc.org> > -- > 2.7.4 > >
Hi Rob, Thank you very much for your review. Please see my replies below: > Add bindings documentation for Sunplus SP7021. > [...] > > + > > + interrupts: > > + description: | > > + Contains number and type of interrupt. Number should be 66. > > Drop. That's every 'interrupts' and the exact number is outside the > scope of the binding. Yes, I'll drop the descriptions next patch. interrupts property will be: interrupts: maxItems: 1 [...] > > + > > + mdio: > > Just need: > > $ref: mdio.yaml# > unevaluatedProperties: false > > and drop the rest. Yes, I'll modify mdio node next patch. mdio node will be: mdio: $ref: mdio.yaml# unevaluatedProperties: false > > + type: object > > + description: external MDIO Bus > > + > > + properties: > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > + > > + patternProperties: > > + "^ethernet-phy@[0-9a-f]+$": > > + type: object > > + description: external PHY node > > + > > + properties: > > + reg: > > + minimum: 0 > > + maximum: 30 Can I limit value of 'reg' to no more than 30? > > + > > + required: > > + - reg > > + > > +additionalProperties: false > > + [...] > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + emac: emac@9c108000 { > > ethernet@9c108000 { I'll modify it next patch. [...] > > 2.7.4 > > Best regards, Wells
On Sat, Dec 11, 2021 at 1:35 PM 呂芳騰 <wellslutw@gmail.com> wrote: > > Hi Rob, > > Thank you very much for your review. > Please see my replies below: > > > Add bindings documentation for Sunplus SP7021. > > > [...] > > > + > > > + interrupts: > > > + description: | > > > + Contains number and type of interrupt. Number should be 66. > > > > Drop. That's every 'interrupts' and the exact number is outside the > > scope of the binding. > > Yes, I'll drop the descriptions next patch. > interrupts property will be: > > interrupts: > maxItems: 1 > > > [...] > > > + > > > + mdio: > > > > Just need: > > > > $ref: mdio.yaml# > > unevaluatedProperties: false > > > > and drop the rest. > > Yes, I'll modify mdio node next patch. > mdio node will be: > > mdio: > $ref: mdio.yaml# > unevaluatedProperties: false > > > > > + type: object > > > + description: external MDIO Bus > > > + > > > + properties: > > > + "#address-cells": > > > + const: 1 > > > + > > > + "#size-cells": > > > + const: 0 > > > + > > > + patternProperties: > > > + "^ethernet-phy@[0-9a-f]+$": > > > + type: object > > > + description: external PHY node > > > + > > > + properties: > > > + reg: > > > + minimum: 0 > > > + maximum: 30 > > Can I limit value of 'reg' to no more than 30? Isn't that the limit for any MDIO bus? I guess normally 31 is also valid? I'm not really sure it is worth adding just for that 1 possible value. Within the range of valid addresses, we can't ever validate that a DT has the correct address. Rob
Hi Rob, Thanks a lot for explanation. I'll use default mdio node. best regards, Wells
diff --git a/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml b/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml new file mode 100644 index 0000000..efc987f --- /dev/null +++ b/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml @@ -0,0 +1,172 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright (C) Sunplus Co., Ltd. 2021 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Sunplus SP7021 Dual Ethernet MAC Device Tree Bindings + +maintainers: + - Wells Lu <wellslutw@gmail.com> + +description: | + Sunplus SP7021 dual 10M/100M Ethernet MAC controller. + Device node of the controller has following properties. + +properties: + compatible: + const: sunplus,sp7021-emac + + reg: + items: + - description: the EMAC registers + - description: the MOON5 registers + + reg-names: + items: + - const: emac + - const: moon5 + + interrupts: + description: | + Contains number and type of interrupt. Number should be 66. + Type should be high-level trigger. + maxItems: 1 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + ethernet-ports: + type: object + description: Ethernet ports to PHY + + properties: + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^port@[0-1]$": + type: object + description: Port to PHY + + properties: + reg: + minimum: 0 + maximum: 1 + + phy-handle: + maxItems: 1 + + phy-mode: + maxItems: 1 + + nvmem-cells: + items: + - description: nvmem cell address of MAC address + + nvmem-cell-names: + description: names corresponding to the nvmem cells + items: + - const: mac-address + + required: + - reg + - phy-handle + - phy-mode + - nvmem-cells + - nvmem-cell-names + + mdio: + type: object + description: external MDIO Bus + + properties: + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^ethernet-phy@[0-9a-f]+$": + type: object + description: external PHY node + + properties: + reg: + minimum: 0 + maximum: 30 + + required: + - reg + +additionalProperties: false + +required: + - compatible + - reg + - reg-names + - interrupts + - clocks + - resets + - pinctrl-0 + - pinctrl-names + - ethernet-ports + - mdio + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + emac: emac@9c108000 { + compatible = "sunplus,sp7021-emac"; + reg = <0x9c108000 0x400>, <0x9c000280 0x80>; + reg-names = "emac", "moon5"; + interrupt-parent = <&intc>; + interrupts = <66 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clkc 0xa7>; + resets = <&rstc 0x97>; + pinctrl-0 = <&emac_demo_board_v3_pins>; + pinctrl-names = "default"; + + ethernet-ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + phy-handle = <ð_phy0>; + phy-mode = "rmii"; + nvmem-cells = <&mac_addr0>; + nvmem-cell-names = "mac-address"; + }; + + port@1 { + reg = <1>; + phy-handle = <ð_phy1>; + phy-mode = "rmii"; + nvmem-cells = <&mac_addr1>; + nvmem-cell-names = "mac-address"; + }; + }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + eth_phy0: ethernet-phy@0 { + reg = <0>; + }; + + eth_phy1: ethernet-phy@1 { + reg = <1>; + }; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 0dc08cd..5b1ef9d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -18245,6 +18245,13 @@ L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/dlink/sundance.c +SUNPLUS ETHERNET DRIVER +M: Wells Lu <wellslutw@gmail.com> +L: netdev@vger.kernel.org +S: Maintained +W: https://sunplus-tibbo.atlassian.net/wiki/spaces/doc/overview +F: Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml + SUPERH M: Yoshinori Sato <ysato@users.sourceforge.jp> M: Rich Felker <dalias@libc.org>
Add bindings documentation for Sunplus SP7021. Signed-off-by: Wells Lu <wellslutw@gmail.com> --- Changes in v4 - Addressed all comments from Mr. Andrew Lunn. - Moved properties 'nvmem-cells' and 'nvmem-cell-names' to port of ethernet-ports. - Changed value of property 'nvmem-cell-names' to "mac-address". .../bindings/net/sunplus,sp7021-emac.yaml | 172 +++++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 179 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml