Re: [PATCH net-next 1/5] dt-bindings: net: pcs: Add Ethernet PCS for Qualcomm IPQ9574 SoC

From: Lei Wei
Date: Mon Nov 04 2024 - 06:16:12 EST




On 11/2/2024 9:34 PM, Krzysztof Kozlowski wrote:
On Fri, Nov 01, 2024 at 06:32:49PM +0800, Lei Wei wrote:
The 'UNIPHY' PCS block in the IPQ9574 SoC includes PCS and SerDes
functions. It supports different interface modes to enable Ethernet
MAC connections to different types of external PHYs/switch. It includes
PCS functions for 1Gbps and 2.5Gbps interface modes and XPCS functions
for 10Gbps interface modes. There are three UNIPHY (PCS) instances
in IPQ9574 SoC which provide PCS/XPCS functions to the six Ethernet
ports.

Signed-off-by: Lei Wei <quic_leiwei@xxxxxxxxxxx>
---
.../bindings/net/pcs/qcom,ipq9574-pcs.yaml | 230 +++++++++++++++++++++
include/dt-bindings/net/pcs-qcom-ipq.h | 15 ++
2 files changed, 245 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/pcs/qcom,ipq9574-pcs.yaml b/Documentation/devicetree/bindings/net/pcs/qcom,ipq9574-pcs.yaml
new file mode 100644
index 000000000000..a33873c7ad73
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/pcs/qcom,ipq9574-pcs.yaml
@@ -0,0 +1,230 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/pcs/qcom,ipq9574-pcs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ethernet PCS for Qualcomm IPQ SoC

s/IPQ/IPQ9574/


OK, will update.

+
+maintainers:
+ - Lei Wei <quic_leiwei@xxxxxxxxxxx>

...

+ const: 0
+
+ clocks:
+ items:
+ - description: system clock
+ - description: AHB clock needed for register interface access
+
+ clock-names:
+ items:
+ - const: sys
+ - const: ahb
+
+ '#clock-cells':

Use consistent quotes, either ' or "


OK, will use single quotes ' everywhere.

+ const: 1
+ description: See include/dt-bindings/net/pcs-qcom-ipq.h for constants
+
+patternProperties:
+ "^pcs-mii@[0-4]$":
+ type: object
+ description: PCS MII interface.
+
+ properties:
+ reg:
+ minimum: 0
+ maximum: 4
+ description: MII index
+
+ clocks:
+ items:
+ - description: PCS MII RX clock
+ - description: PCS MII TX clock
+
+ clock-names:
+ items:
+ - const: mii_rx

rx


OK.

+ - const: mii_tx

tx

OK.


+
+ required:
+ - reg
+ - clocks
+ - clock-names
+
+ additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - '#address-cells'
+ - '#size-cells'
+ - clocks
+ - clock-names
+ - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
+
+ pcs0: ethernet-pcs@7a00000 {

Drop unused labels here and further.


OK, will drop the unused labels "pcs0" and "pcs0_miiX".

+ compatible = "qcom,ipq9574-pcs";
+ reg = <0x7a00000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&gcc GCC_UNIPHY0_SYS_CLK>,
+ <&gcc GCC_UNIPHY0_AHB_CLK>;
+ clock-names = "sys",
+ "ahb";
+ #clock-cells = <1>;
+
+ pcs0_mii0: pcs-mii@0 {
+ reg = <0>;
+ clocks = <&nsscc 116>,
+ <&nsscc 117>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+
+ pcs0_mii1: pcs-mii@1 {
+ reg = <1>;
+ clocks = <&nsscc 118>,
+ <&nsscc 119>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+
+ pcs0_mii2: pcs-mii@2 {
+ reg = <2>;
+ clocks = <&nsscc 120>,
+ <&nsscc 121>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+
+ pcs0_mii3: pcs-mii@3 {
+ reg = <3>;
+ clocks = <&nsscc 122>,
+ <&nsscc 123>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+ };
+
+ pcs1: ethernet-pcs@7a10000 {

One example is enough, drop the rest.


OK.

+ compatible = "qcom,ipq9574-pcs";
+ reg = <0x7a10000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&gcc GCC_UNIPHY1_SYS_CLK>,
+ <&gcc GCC_UNIPHY1_AHB_CLK>;
+ clock-names = "sys",
+ "ahb";
+ #clock-cells = <1>;
+
+ pcs1_mii0: pcs-mii@0 {
+ reg = <0>;
+ clocks = <&nsscc 124>,
+ <&nsscc 125>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+ };
+
+ pcs2: ethernet-pcs@7a20000 {
+ compatible = "qcom,ipq9574-pcs";
+ reg = <0x7a20000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&gcc GCC_UNIPHY2_SYS_CLK>,
+ <&gcc GCC_UNIPHY2_AHB_CLK>;
+ clock-names = "sys",
+ "ahb";
+ #clock-cells = <1>;
+
+ pcs2_mii0: pcs-mii@0 {
+ reg = <0>;
+ clocks = <&nsscc 126>,
+ <&nsscc 127>;
+ clock-names = "mii_rx",
+ "mii_tx";
+ };
+ };
diff --git a/include/dt-bindings/net/pcs-qcom-ipq.h b/include/dt-bindings/net/pcs-qcom-ipq.h
new file mode 100644
index 000000000000..8d9124ffd75d
--- /dev/null
+++ b/include/dt-bindings/net/pcs-qcom-ipq.h

Filename matching exactly binding filename.


OK.

Best regards,
Krzysztof