Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-31 Thread Justin Chen



On 5/31/23 12:18 PM, Krzysztof Kozlowski wrote:

On 25/05/2023 01:01, Justin Chen wrote:

From: Florian Fainelli 

Add a binding document for the Broadcom ASP 2.0 Ethernet
controller.

Signed-off-by: Florian Fainelli 
Signed-off-by: Justin Chen 
---
v5
- Fix compatible string yaml format to properly capture what we want

v4
 - Adjust compatible string example to reference SoC and HW ver

v3
 - Minor formatting issues
 - Change channel prop to brcm,channel for vendor specific format
 - Removed redundant v2.0 from compat string
 - Fix ranges field

v2
 - Minor formatting issues

  .../devicetree/bindings/net/brcm,asp-v2.0.yaml | 149 +
  1 file changed, 149 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml

diff --git a/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml 
b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
new file mode 100644
index ..c4cd24492bfd
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
@@ -0,0 +1,149 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom ASP 2.0 Ethernet controller
+
+maintainers:
+  - Justin Chen 
+  - Florian Fainelli 
+
+description: Broadcom Ethernet controller first introduced with 72165
+
+properties:
+  '#address-cells':


Judging by more comments, there will be a v6, thus please also use
consistent quotes - either ' or ".


+const: 1
+  '#size-cells':
+const: 1
+
+  compatible:


As Conor pointed out, compatible is always first.


+oneOf:
+  - items:
+  - enum:
+  - brcm,bcm74165-asp
+  - const: brcm,asp-v2.1
+  - items:
+  - enum:
+  - brcm,bcm72165-asp
+  - const: brcm,asp-v2.0
+
+  reg:
+maxItems: 1
+
+  ranges: true
+
+  interrupts:
+minItems: 1
+items:
+  - description: RX/TX interrupt
+  - description: Port 0 Wake-on-LAN
+  - description: Port 1 Wake-on-LAN
+
+  clocks:
+maxItems: 1
+
+  ethernet-ports:
+type: object
+properties:
+  '#address-cells':
+const: 1
+  '#size-cells':
+const: 0
+
+patternProperties:
+  "^port@[0-9]+$":
+type: object
+
+$ref: ethernet-controller.yaml#
+
+properties:
+  reg:
+maxItems: 1
+description: Port number
+
+  brcm,channel:
+$ref: /schemas/types.yaml#/definitions/uint32
+description: ASP channel number


Why do you need it? reg defines it. Your description does not explain
here much, except copying property name. Can we please avoid
descriptions which just copy name?


Will add a better description. The values may be different.

Thanks,
Justin


smime.p7s
Description: S/MIME Cryptographic Signature


Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-31 Thread Florian Fainelli

On 5/31/23 12:31, Krzysztof Kozlowski wrote:

On 31/05/2023 21:29, Florian Fainelli wrote:

+required:
+  - reg
+  - brcm,channel
+
+additionalProperties: false
+
+patternProperties:
+  "^mdio@[0-9a-f]+$":


Isn't mdio a property of each ethernet port? Existing users
(e.g.bcmgenet, owl-emac, switches) do it that way...


They are sub-nodes of the larger Ethernet controller block, hence the
property here.


This is the Ethernet controller. They are subnodes here, so what do you
mean by that? They are part of some other block?


The block is not just an Ethernet controller it has other functions, 
which is why we went with a top-level node with a 'ranges' property. One 
of those functions are the MDIO bus controllers. The examples makes it 
reasonably clear.








Otherwise how do you define relation-ship? Can one mdio fit multiple ports?


The relationship is established between Ethernet ports and children
nodes of the MDIO controller, such as switches or Ethernet PHYs using
'phy-handle' for instance. And yes, a single/common MDIO controller
could be serving multiple Ethernet ports.


We do not talk about generic case, but your device.


The generic case is true here as well. We so happen to have a 1:1 
mapping between the MDIO controller, PHY, and Ethernet port, in this 
particular example.

--
Florian



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-31 Thread Krzysztof Kozlowski
On 31/05/2023 21:29, Florian Fainelli wrote:
>>> +required:
>>> +  - reg
>>> +  - brcm,channel
>>> +
>>> +additionalProperties: false
>>> +
>>> +patternProperties:
>>> +  "^mdio@[0-9a-f]+$":
>>
>> Isn't mdio a property of each ethernet port? Existing users
>> (e.g.bcmgenet, owl-emac, switches) do it that way...
> 
> They are sub-nodes of the larger Ethernet controller block, hence the 
> property here.

This is the Ethernet controller. They are subnodes here, so what do you
mean by that? They are part of some other block?

> 
>>
>> Otherwise how do you define relation-ship? Can one mdio fit multiple ports?
> 
> The relationship is established between Ethernet ports and children 
> nodes of the MDIO controller, such as switches or Ethernet PHYs using 
> 'phy-handle' for instance. And yes, a single/common MDIO controller 
> could be serving multiple Ethernet ports.

We do not talk about generic case, but your device.

Best regards,
Krzysztof



Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-31 Thread Florian Fainelli

On 5/31/23 12:18, Krzysztof Kozlowski wrote:

On 25/05/2023 01:01, Justin Chen wrote:

From: Florian Fainelli 

Add a binding document for the Broadcom ASP 2.0 Ethernet
controller.

Signed-off-by: Florian Fainelli 
Signed-off-by: Justin Chen 
---
v5
- Fix compatible string yaml format to properly capture what we want

v4
 - Adjust compatible string example to reference SoC and HW ver

v3
 - Minor formatting issues
 - Change channel prop to brcm,channel for vendor specific format
 - Removed redundant v2.0 from compat string
 - Fix ranges field

v2
 - Minor formatting issues

  .../devicetree/bindings/net/brcm,asp-v2.0.yaml | 149 +
  1 file changed, 149 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml

diff --git a/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml 
b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
new file mode 100644
index ..c4cd24492bfd
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
@@ -0,0 +1,149 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom ASP 2.0 Ethernet controller
+
+maintainers:
+  - Justin Chen 
+  - Florian Fainelli 
+
+description: Broadcom Ethernet controller first introduced with 72165
+
+properties:
+  '#address-cells':


Judging by more comments, there will be a v6, thus please also use
consistent quotes - either ' or ".


+const: 1
+  '#size-cells':
+const: 1
+
+  compatible:


As Conor pointed out, compatible is always first.


+oneOf:
+  - items:
+  - enum:
+  - brcm,bcm74165-asp
+  - const: brcm,asp-v2.1
+  - items:
+  - enum:
+  - brcm,bcm72165-asp
+  - const: brcm,asp-v2.0
+
+  reg:
+maxItems: 1
+
+  ranges: true
+
+  interrupts:
+minItems: 1
+items:
+  - description: RX/TX interrupt
+  - description: Port 0 Wake-on-LAN
+  - description: Port 1 Wake-on-LAN
+
+  clocks:
+maxItems: 1
+
+  ethernet-ports:
+type: object
+properties:
+  '#address-cells':
+const: 1
+  '#size-cells':
+const: 0
+
+patternProperties:
+  "^port@[0-9]+$":
+type: object
+
+$ref: ethernet-controller.yaml#
+
+properties:
+  reg:
+maxItems: 1
+description: Port number
+
+  brcm,channel:
+$ref: /schemas/types.yaml#/definitions/uint32
+description: ASP channel number


Why do you need it? reg defines it. Your description does not explain
here much, except copying property name. Can we please avoid
descriptions which just copy name?


+
+required:
+  - reg
+  - brcm,channel
+
+additionalProperties: false
+
+patternProperties:
+  "^mdio@[0-9a-f]+$":


Isn't mdio a property of each ethernet port? Existing users
(e.g.bcmgenet, owl-emac, switches) do it that way...


They are sub-nodes of the larger Ethernet controller block, hence the 
property here.




Otherwise how do you define relation-ship? Can one mdio fit multiple ports?


The relationship is established between Ethernet ports and children 
nodes of the MDIO controller, such as switches or Ethernet PHYs using 
'phy-handle' for instance. And yes, a single/common MDIO controller 
could be serving multiple Ethernet ports.

--
Florian



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-31 Thread Krzysztof Kozlowski
On 25/05/2023 01:01, Justin Chen wrote:
> From: Florian Fainelli 
> 
> Add a binding document for the Broadcom ASP 2.0 Ethernet
> controller.
> 
> Signed-off-by: Florian Fainelli 
> Signed-off-by: Justin Chen 
> ---
> v5
>   - Fix compatible string yaml format to properly capture what we want
> 
> v4
> - Adjust compatible string example to reference SoC and HW ver
> 
> v3
> - Minor formatting issues
> - Change channel prop to brcm,channel for vendor specific format
> - Removed redundant v2.0 from compat string
> - Fix ranges field
> 
> v2
> - Minor formatting issues
> 
>  .../devicetree/bindings/net/brcm,asp-v2.0.yaml | 149 
> +
>  1 file changed, 149 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml 
> b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> new file mode 100644
> index ..c4cd24492bfd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> @@ -0,0 +1,149 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom ASP 2.0 Ethernet controller
> +
> +maintainers:
> +  - Justin Chen 
> +  - Florian Fainelli 
> +
> +description: Broadcom Ethernet controller first introduced with 72165
> +
> +properties:
> +  '#address-cells':

Judging by more comments, there will be a v6, thus please also use
consistent quotes - either ' or ".

> +const: 1
> +  '#size-cells':
> +const: 1
> +
> +  compatible:

As Conor pointed out, compatible is always first.

> +oneOf:
> +  - items:
> +  - enum:
> +  - brcm,bcm74165-asp
> +  - const: brcm,asp-v2.1
> +  - items:
> +  - enum:
> +  - brcm,bcm72165-asp
> +  - const: brcm,asp-v2.0
> +
> +  reg:
> +maxItems: 1
> +
> +  ranges: true
> +
> +  interrupts:
> +minItems: 1
> +items:
> +  - description: RX/TX interrupt
> +  - description: Port 0 Wake-on-LAN
> +  - description: Port 1 Wake-on-LAN
> +
> +  clocks:
> +maxItems: 1
> +
> +  ethernet-ports:
> +type: object
> +properties:
> +  '#address-cells':
> +const: 1
> +  '#size-cells':
> +const: 0
> +
> +patternProperties:
> +  "^port@[0-9]+$":
> +type: object
> +
> +$ref: ethernet-controller.yaml#
> +
> +properties:
> +  reg:
> +maxItems: 1
> +description: Port number
> +
> +  brcm,channel:
> +$ref: /schemas/types.yaml#/definitions/uint32
> +description: ASP channel number

Why do you need it? reg defines it. Your description does not explain
here much, except copying property name. Can we please avoid
descriptions which just copy name?

> +
> +required:
> +  - reg
> +  - brcm,channel
> +
> +additionalProperties: false
> +
> +patternProperties:
> +  "^mdio@[0-9a-f]+$":

Isn't mdio a property of each ethernet port? Existing users
(e.g.bcmgenet, owl-emac, switches) do it that way...

Otherwise how do you define relation-ship? Can one mdio fit multiple ports?


> +type: object
> +$ref: brcm,unimac-mdio.yaml
> +
> +description:
> +  ASP internal UniMAC MDIO bus
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks


Best regards,
Krzysztof



Re: [PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-25 Thread Conor Dooley
On Wed, May 24, 2023 at 04:01:49PM -0700, Justin Chen wrote:
> From: Florian Fainelli 
> 
> Add a binding document for the Broadcom ASP 2.0 Ethernet
> controller.
> 
> Signed-off-by: Florian Fainelli 
> Signed-off-by: Justin Chen 
> ---
> v5
>   - Fix compatible string yaml format to properly capture what we want
> 
> v4
> - Adjust compatible string example to reference SoC and HW ver
> 
> v3
> - Minor formatting issues
> - Change channel prop to brcm,channel for vendor specific format
> - Removed redundant v2.0 from compat string
> - Fix ranges field
> 
> v2
> - Minor formatting issues
> 
>  .../devicetree/bindings/net/brcm,asp-v2.0.yaml | 149 
> +
>  1 file changed, 149 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml 
> b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> new file mode 100644
> index ..c4cd24492bfd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
> @@ -0,0 +1,149 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom ASP 2.0 Ethernet controller
> +
> +maintainers:
> +  - Justin Chen 
> +  - Florian Fainelli 
> +
> +description: Broadcom Ethernet controller first introduced with 72165
> +
> +properties:
> +  '#address-cells':
> +const: 1
> +  '#size-cells':
> +const: 1
> +
> +  compatible:
> +oneOf:
> +  - items:
> +  - enum:
> +  - brcm,bcm74165-asp
> +  - const: brcm,asp-v2.1
> +  - items:
> +  - enum:
> +  - brcm,bcm72165-asp
> +  - const: brcm,asp-v2.0

Sorry if I did not notice this before, conventionally compatible goes
first here. IFF there is another version, could you shuffle things
around? Otherwise,
Reviewed-by: Conor Dooley 

Thanks,
Conor.


signature.asc
Description: PGP signature


[PATCH net-next v5 2/6] dt-bindings: net: Brcm ASP 2.0 Ethernet controller

2023-05-24 Thread Justin Chen
From: Florian Fainelli 

Add a binding document for the Broadcom ASP 2.0 Ethernet
controller.

Signed-off-by: Florian Fainelli 
Signed-off-by: Justin Chen 
---
v5
- Fix compatible string yaml format to properly capture what we want

v4
- Adjust compatible string example to reference SoC and HW ver

v3
- Minor formatting issues
- Change channel prop to brcm,channel for vendor specific format
- Removed redundant v2.0 from compat string
- Fix ranges field

v2
- Minor formatting issues

 .../devicetree/bindings/net/brcm,asp-v2.0.yaml | 149 +
 1 file changed, 149 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml

diff --git a/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml 
b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
new file mode 100644
index ..c4cd24492bfd
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
@@ -0,0 +1,149 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom ASP 2.0 Ethernet controller
+
+maintainers:
+  - Justin Chen 
+  - Florian Fainelli 
+
+description: Broadcom Ethernet controller first introduced with 72165
+
+properties:
+  '#address-cells':
+const: 1
+  '#size-cells':
+const: 1
+
+  compatible:
+oneOf:
+  - items:
+  - enum:
+  - brcm,bcm74165-asp
+  - const: brcm,asp-v2.1
+  - items:
+  - enum:
+  - brcm,bcm72165-asp
+  - const: brcm,asp-v2.0
+
+  reg:
+maxItems: 1
+
+  ranges: true
+
+  interrupts:
+minItems: 1
+items:
+  - description: RX/TX interrupt
+  - description: Port 0 Wake-on-LAN
+  - description: Port 1 Wake-on-LAN
+
+  clocks:
+maxItems: 1
+
+  ethernet-ports:
+type: object
+properties:
+  '#address-cells':
+const: 1
+  '#size-cells':
+const: 0
+
+patternProperties:
+  "^port@[0-9]+$":
+type: object
+
+$ref: ethernet-controller.yaml#
+
+properties:
+  reg:
+maxItems: 1
+description: Port number
+
+  brcm,channel:
+$ref: /schemas/types.yaml#/definitions/uint32
+description: ASP channel number
+
+required:
+  - reg
+  - brcm,channel
+
+additionalProperties: false
+
+patternProperties:
+  "^mdio@[0-9a-f]+$":
+type: object
+$ref: brcm,unimac-mdio.yaml
+
+description:
+  ASP internal UniMAC MDIO bus
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+#include 
+#include 
+
+ethernet@9c0 {
+compatible = "brcm,bcm72165-asp", "brcm,asp-v2.0";
+reg = <0x9c0 0x1fff14>;
+interrupts = ;
+ranges = <0x0 0x9c0 0x1fff14>;
+clocks = < 14>;
+#address-cells = <1>;
+#size-cells = <1>;
+
+mdio@c614 {
+compatible = "brcm,asp-v2.0-mdio";
+reg = <0xc614 0x8>;
+reg-names = "mdio";
+#address-cells = <1>;
+#size-cells = <0>;
+
+phy0: ethernet-phy@1 {
+reg = <1>;
+};
+   };
+
+mdio@ce14 {
+compatible = "brcm,asp-v2.0-mdio";
+reg = <0xce14 0x8>;
+reg-names = "mdio";
+#address-cells = <1>;
+#size-cells = <0>;
+
+phy1: ethernet-phy@1 {
+reg = <1>;
+};
+};
+
+ethernet-ports {
+#address-cells = <1>;
+#size-cells = <0>;
+
+port@0 {
+reg = <0>;
+brcm,channel = <8>;
+phy-mode = "rgmii";
+phy-handle = <>;
+};
+
+port@1 {
+reg = <1>;
+brcm,channel = <9>;
+phy-mode = "rgmii";
+phy-handle = <>;
+};
+};
+};
-- 
2.7.4



smime.p7s
Description: S/MIME Cryptographic Signature