From: Bhargav Joshi <j.bhargav.u@gmail.com>
To: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Tony Lindgren <tony@atomide.com>
Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, goledhruva@gmail.com,
m-chawdhry@ti.com, daniel.baluta@gmail.com,
simona.toaca@nxp.com, j.bhargav.u@gmail.com
Subject: [PATCH v2] dt-bindings: net: ti,davinci-emac: Convert to DT schema
Date: Tue, 18 Aug 2026 05:00:59 +0530 [thread overview]
Message-ID: <20260818-ti-davinci-emac-v2-1-805736d99e65@gmail.com> (raw)
Convert Texas Instruments DaVinci EMAC binding from text to DT schema.
Changes from the original binding:
- Add clocks, clock-names, syscon, power-domains, and ti,hwmods
properties that are used in existing DTS files but were undocumented.
- Disallow syscon and clock-names for ti,davinci-dm6467-emac since they
are not applicable to that SoC.
- Allow 1-2 reg entries (DM816 uses two).
- Make clocks a required property as driver probe fails without it.
- Mark ti,hwmods as deprecated.
Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com>
---
Changes in v2:
- Remove original text binding that was left in v1
- Link to v1: https://lore.kernel.org/r/20260817-ti-davinci-emac-v1-1-022678d966e9@gmail.com
---
.../devicetree/bindings/net/davinci_emac.txt | 44 --------
.../devicetree/bindings/net/ti,davinci-emac.yaml | 113 +++++++++++++++++++++
2 files changed, 113 insertions(+), 44 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/davinci_emac.txt b/Documentation/devicetree/bindings/net/davinci_emac.txt
deleted file mode 100644
index 5e3579e72e2d..000000000000
--- a/Documentation/devicetree/bindings/net/davinci_emac.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-* Texas Instruments Davinci EMAC
-
-This file provides information, what the device node
-for the davinci_emac interface contains.
-
-Required properties:
-- compatible: "ti,davinci-dm6467-emac", "ti,am3517-emac" or
- "ti,dm816-emac"
-- reg: Offset and length of the register set for the device
-- ti,davinci-ctrl-reg-offset: offset to control register
-- ti,davinci-ctrl-mod-reg-offset: offset to control module register
-- ti,davinci-ctrl-ram-offset: offset to control module ram
-- ti,davinci-ctrl-ram-size: size of control module ram
-- interrupts: interrupt mapping for the davinci emac interrupts sources:
- 4 sources: <Receive Threshold Interrupt
- Receive Interrupt
- Transmit Interrupt
- Miscellaneous Interrupt>
-
-Optional properties:
-- phy-handle: See ethernet.txt file in the same directory.
- If absent, davinci_emac driver defaults to 100/FULL.
-- ti,davinci-rmii-en: 1 byte, 1 means use RMII
-- ti,davinci-no-bd-ram: boolean, does EMAC have BD RAM?
-
-The MAC address will be determined using the optional properties
-defined in ethernet.txt.
-
-Example (enbw_cmc board):
- eth0: emac@1e20000 {
- compatible = "ti,davinci-dm6467-emac";
- reg = <0x220000 0x4000>;
- ti,davinci-ctrl-reg-offset = <0x3000>;
- ti,davinci-ctrl-mod-reg-offset = <0x2000>;
- ti,davinci-ctrl-ram-offset = <0>;
- ti,davinci-ctrl-ram-size = <0x2000>;
- local-mac-address = [ 00 00 00 00 00 00 ];
- interrupts = <33
- 34
- 35
- 36
- >;
- interrupt-parent = <&intc>;
- };
diff --git a/Documentation/devicetree/bindings/net/ti,davinci-emac.yaml b/Documentation/devicetree/bindings/net/ti,davinci-emac.yaml
new file mode 100644
index 000000000000..cb1394f6f2d4
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/ti,davinci-emac.yaml
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/ti,davinci-emac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI DaVinci EMAC Ethernet Controller
+
+maintainers:
+ - Tony Lindgren <tony@atomide.com>
+
+properties:
+ compatible:
+ enum:
+ - ti,davinci-dm6467-emac
+ - ti,am3517-emac
+ - ti,dm816-emac
+
+ reg:
+ minItems: 1
+ maxItems: 2
+
+ interrupts:
+ items:
+ - description: Receive Threshold
+ - description: Receive
+ - description: Transmit
+ - description: Miscellaneous
+
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ const: ick
+
+ ti,davinci-ctrl-reg-offset:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: offset to control register
+
+ ti,davinci-ctrl-mod-reg-offset:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: offset to control module register
+
+ ti,davinci-ctrl-ram-offset:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: offset to control module ram
+
+ ti,davinci-ctrl-ram-size:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: size of control module ram
+
+ ti,davinci-rmii-en:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ description: Set to 1 to enable RMII (Reduced MII) mode.
+
+ ti,davinci-no-bd-ram:
+ type: boolean
+ description:
+ Indicates that the EMAC does not have on-chip buffer descriptor RAM.
+
+ syscon:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Phandle to a syscon node providing access to the System Control
+ Module (SCM) registers. Used on AM3517 and DM816x to read
+ factory-programmed MAC addresses from eFuse registers.
+
+ ti,hwmods:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: TI hwmod name
+ deprecated: true
+
+ power-domains:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - ti,davinci-ctrl-reg-offset
+ - ti,davinci-ctrl-mod-reg-offset
+ - ti,davinci-ctrl-ram-offset
+ - ti,davinci-ctrl-ram-size
+ - clocks
+
+allOf:
+ - $ref: ethernet-controller.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: ti,davinci-dm6467-emac
+ then:
+ properties:
+ syscon: false
+ clock-names: false
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ ethernet@220000 {
+ compatible = "ti,davinci-dm6467-emac";
+ reg = <0x220000 0x4000>;
+ ti,davinci-ctrl-reg-offset = <0x3000>;
+ ti,davinci-ctrl-mod-reg-offset = <0x2000>;
+ ti,davinci-ctrl-ram-offset = <0>;
+ ti,davinci-ctrl-ram-size = <0x2000>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ interrupts = <33>, <34>, <35>, <36>;
+ clocks = <&psc1 5>;
+ power-domains = <&psc1 5>;
+ };
---
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
change-id: 20260817-ti-davinci-emac-7ec97feca43e
Best regards,
--
Bhargav
next reply other threads:[~2026-08-17 23:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-17 23:30 Bhargav Joshi [this message]
2026-08-20 21:10 ` [PATCH v2] dt-bindings: net: ti,davinci-emac: Convert to DT schema Jakub Kicinski
2026-08-31 13:39 ` Rob Herring
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=20260818-ti-davinci-emac-v2-1-805736d99e65@gmail.com \
--to=j.bhargav.u@gmail.com \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=daniel.baluta@gmail.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=goledhruva@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m-chawdhry@ti.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=simona.toaca@nxp.com \
--cc=tony@atomide.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).