From: "Rob Herring (Arm)" <robh@kernel.org>
To: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jian Shen <shenjian15@huawei.com>,
Jijie Shao <shaojijie@huawei.com>
Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH net-next v3] dt-bindings: net: Convert HiSilicon hns-dsaf to DT schema
Date: Mon, 5 Oct 2026 15:28:08 -0500 [thread overview]
Message-ID: <20261005202808.1982164-2-robh@kernel.org> (raw)
Convert the HiSilicon hns-dsaf binding to DT schema format.
Drop 'phy-handle' at top level as there are no users. Add undocumented
'media-type' property.
Support for 4 'reg' regions is dropped as that has long been deprecated
and there are no known users of it.
Assisted-by: LLM
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
v3:
- Make subctrl-syscon, buf-size and desc-num required
v2:
- Add constraints for buf-size and desc-num
- Drop erroneous 1st 2 'reg' entries
- Fix example 'reg' cell sizes
- Add 'backplane' to 'media-type' property
---
.../bindings/net/hisilicon,hns-dsaf-v1.yaml | 170 ++++++++++++++++++
.../bindings/net/hisilicon-hns-dsaf.txt | 90 ----------
2 files changed, 170 insertions(+), 90 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/hisilicon,hns-dsaf-v1.yaml
delete mode 100644 Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt
diff --git a/Documentation/devicetree/bindings/net/hisilicon,hns-dsaf-v1.yaml b/Documentation/devicetree/bindings/net/hisilicon,hns-dsaf-v1.yaml
new file mode 100644
index 000000000000..4629acbba810
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/hisilicon,hns-dsaf-v1.yaml
@@ -0,0 +1,170 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright 2025 Hisilicon Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/hisilicon,hns-dsaf-v1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Hisilicon DSA Fabric device controller
+
+maintainers:
+ - Jian Shen <shenjian15@huawei.com>
+ - Jijie Shao <shaojijie@huawei.com>
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - hisilicon,hns-dsaf-v1
+ - hisilicon,hns-dsaf-v2
+
+ reg:
+ minItems: 1
+ items:
+ - description:
+ PPE register base and size
+ - description:
+ DSA Fabric base register and size (not required for single-port mode)
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: ppe-base
+ - const: dsaf-base
+
+ interrupts:
+ minItems: 1
+ maxItems: 409
+
+ dma-coherent: true
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ mode:
+ description: DSA Fabric mode string
+ $ref: /schemas/types.yaml#/definitions/string
+ enum:
+ - 2port-64vf
+ - 6port-16rss
+ - 6port-16vf
+ - single-port
+
+ subctrl-syscon:
+ description: syscon handle for external interface control register
+ $ref: /schemas/types.yaml#/definitions/phandle
+
+ reset-field-offset:
+ description: offset of reset field in the control register
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ buf-size:
+ description: RX buffer size (bytes)
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [512, 1024, 2048, 4096]
+
+ desc-num:
+ description: number of descriptors in TX and RX queue
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 16
+ maximum: 1024
+
+patternProperties:
+ "^port@[0-5]$":
+ description: DSA Fabric port node
+ $ref: ethernet-switch-port.yaml#
+ additionalProperties: false
+
+ properties:
+ reg:
+ maximum: 5
+
+ phy-handle: true
+
+ serdes-syscon:
+ description: syscon handle for SerDes register
+ $ref: /schemas/types.yaml#/definitions/phandle
+
+ cpld-syscon:
+ description: syscon handle plus register offset for CPLD register
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: CPLD phandle
+ - description: offset
+
+ port-rst-offset:
+ description: reset field offset for this port
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ port-mode-offset:
+ description: port mode field offset for this port
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ mc-mac-mask:
+ description: multicast MAC address mask
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ maxItems: 6
+
+ media-type:
+ $ref: /schemas/types.yaml#/definitions/string
+ enum:
+ - backplane
+ - copper
+ - fiber
+
+ required:
+ - reg
+ - serdes-syscon
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts
+ - subctrl-syscon
+ - mode
+ - buf-size
+ - desc-num
+
+additionalProperties: false
+
+examples:
+ - |
+ dsa@c5000000 {
+ compatible = "hisilicon,hns-dsaf-v1";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "6port-16rss";
+ reg = <0xc5000000 0x890000
+ 0xc7000000 0x60000>;
+ reg-names = "ppe-base", "dsaf-base";
+ subctrl-syscon = <&subctrl>;
+ reset-field-offset = <0>;
+ interrupts = <131 4>, <132 4>, <133 4>, <134 4>,
+ <135 4>, <136 4>, <137 4>, <138 4>,
+ <139 4>, <140 4>, <141 4>, <142 4>,
+ <143 4>, <144 4>, <145 4>, <146 4>,
+ <147 4>, <148 4>, <384 1>, <385 1>,
+ <386 1>, <387 1>, <388 1>, <389 1>,
+ <390 1>, <391 1>;
+ buf-size = <4096>;
+ desc-num = <1024>;
+ dma-coherent;
+
+ port@0 {
+ reg = <0>;
+ phy-handle = <&phy0>;
+ serdes-syscon = <&serdes>;
+ mc-mac-mask = [ff f0 00 00 00 00];
+ };
+
+ port@1 {
+ reg = <1>;
+ serdes-syscon = <&serdes>;
+ mc-mac-mask = [ff f0 00 00 00 00];
+ };
+ };
diff --git a/Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt b/Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt
deleted file mode 100644
index 8ee4b1cedae8..000000000000
--- a/Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-Hisilicon DSA Fabric device controller
-
-Required properties:
-- compatible: should be "hisilicon,hns-dsaf-v1" or "hisilicon,hns-dsaf-v2".
- "hisilicon,hns-dsaf-v1" is for hip05.
- "hisilicon,hns-dsaf-v2" is for Hi1610 and Hi1612.
-- mode: dsa fabric mode string. only support one of dsaf modes like these:
- "2port-64vf",
- "6port-16rss",
- "6port-16vf",
- "single-port".
-- interrupts: should contain the DSA Fabric and rcb interrupt.
-- reg: specifies base physical address(es) and size of the device registers.
- The first region is external interface control register base and size(optional,
- only used when subctrl-syscon does not exist). It is recommended using
- subctrl-syscon rather than this address.
- The second region is SerDes base register and size(optional, only used when
- serdes-syscon in port node does not exist). It is recommended using
- serdes-syscon rather than this address.
- The third region is the PPE register base and size.
- The fourth region is dsa fabric base register and size. It is not required for
- single-port mode.
-- reg-names: may be ppe-base and(or) dsaf-base. It is used to find the
- corresponding reg's index.
-
-- phy-handle: phy handle of physical port, 0 if not any phy device. It is optional
- attribute. If port node exists, phy-handle in each port node will be used.
- see ethernet.txt [1].
-- subctrl-syscon: is syscon handle for external interface control register.
-- reset-field-offset: is offset of reset field. Its value depends on the hardware
- user manual.
-- buf-size: rx buffer size, should be 16-1024.
-- desc-num: number of description in TX and RX queue, should be 512, 1024, 2048 or 4096.
-
-- port: subnodes of dsaf. A dsaf node may contain several port nodes(Depending
- on mode of dsaf). Port node contain some attributes listed below:
-- reg: is physical port index in one dsaf.
-- phy-handle: phy handle of physical port. It is not required if there isn't
- phy device. see ethernet.txt [1].
-- serdes-syscon: is syscon handle for SerDes register.
-- cpld-syscon: is syscon handle + register offset pair for cpld register. It is
- not required if there isn't cpld device.
-- port-rst-offset: is offset of reset field for each port in dsaf. Its value
- depends on the hardware user manual.
-- port-mode-offset: is offset of port mode field for each port in dsaf. Its
- value depends on the hardware user manual.
-- mc-mac-mask: mask of multicast address, determines bit in multicast address
- to set:
- 1 stands for this bit will be precisely matched, TCAM will check this bit of
- MAC address.
- 0 stands for this bit will be fuzzy matched, TCAM won't care about this bit
- of MAC address.
-
-[1] Documentation/devicetree/bindings/net/phy.txt
-
-Example:
-
-dsaf0: dsa@c7000000 {
- compatible = "hisilicon,hns-dsaf-v1";
- mode = "6port-16rss";
- interrupt-parent = <&mbigen_dsa>;
- reg = <0x0 0xc5000000 0x0 0x890000
- 0x0 0xc7000000 0x0 0x60000>;
- reg-names = "ppe-base", "dsaf-base";
- subctrl-syscon = <&subctrl>;
- reset-field-offset = 0;
- interrupts = <131 4>,<132 4>, <133 4>,<134 4>,
- <135 4>,<136 4>, <137 4>,<138 4>,
- <139 4>,<140 4>, <141 4>,<142 4>,
- <143 4>,<144 4>, <145 4>,<146 4>,
- <147 4>,<148 4>, <384 1>,<385 1>,
- <386 1>,<387 1>, <388 1>,<389 1>,
- <390 1>,<391 1>,
- buf-size = <4096>;
- desc-num = <1024>;
- dma-coherent;
-
- port@0 {
- reg = 0;
- phy-handle = <&phy0>;
- serdes-syscon = <&serdes>;
- mc-mac-mask = [ff f0 00 00 00 00];
- };
-
- port@1 {
- reg = 1;
- serdes-syscon = <&serdes>;
- mc-mac-mask = [ff f0 00 00 00 00];
- };
-};
--
2.53.0
next reply other threads:[~2026-10-05 20:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 20:28 Rob Herring (Arm) [this message]
2026-10-06 20:29 ` [PATCH net-next v3] dt-bindings: net: Convert HiSilicon hns-dsaf to DT schema sashiko-bot
2026-10-07 13:37 ` Rob Herring
2026-10-08 1:00 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261005202808.1982164-2-robh@kernel.org \
--to=robh@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shaojijie@huawei.com \
--cc=shenjian15@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.