The MXL8611X driver has custom bindings for configuring the LEDs
and RGMII internal delays. This patch adds the documentation and
defines necessary to configure it from the device tree.
Signed-off-by: Nate Drude <nate.d@xxxxxxxxxxxxx>
---
.../net/phy/mxl-8611x.txt | 37 +++++++++++++++++++
include/dt-bindings/net/mxl-8611x.h | 27 ++++++++++++++
2 files changed, 64 insertions(+)
create mode 100644 doc/device-tree-bindings/net/phy/mxl-8611x.txt
create mode 100644 include/dt-bindings/net/mxl-8611x.h
diff --git a/doc/device-tree-bindings/net/phy/mxl-8611x.txt
b/doc/device-tree-bindings/net/phy/mxl-8611x.txt
new file mode 100644
index 00000000000..462fdf61666
--- /dev/null
+++ b/doc/device-tree-bindings/net/phy/mxl-8611x.txt
@@ -0,0 +1,37 @@
+* MaxLinear MXL8611x PHY Device Tree binding
+
+Required properties:
+- reg: PHY address
+
+Optional properties:
+- mxl-8611x,ledN_cfg: Register configuration for COM_EXT_LED0_CFG,
+ COM_EXT_LED1_CFG, and COM_EXT_LED2_CFG
+- mxl-8611x,rx-internal-delay-ps: RGMII RX Clock Delay used only when
PHY operates
+ in RGMII mode with internal delay (phy-mode is 'rgmii-id' or
+ 'rgmii-rxid') in pico-seconds.
+- mxl-8611x,tx-internal-delay-ps-100m: RGMII TX Clock Delay used only
when PHY operates
+ in 10/100M RGMII mode with internal delay (phy-mode is 'rgmii-id' or
+ 'rgmii-txid') in pico-seconds.
+- mxl-8611x,tx-internal-delay-ps-1g: RGMII TX Clock Delay used only
when PHY operates
+ in 1G RGMII mode with internal delay (phy-mode is 'rgmii-id' or
+ 'rgmii-txid') in pico-seconds.
+
+Example:
+
+ ethernet-phy@0 {
+ reg = <0>;
+
+ mxl-8611x,led0_cfg = <(
+ MXL8611X_LEDX_CFG_LINK_UP_RX_ACT_ON |
+ MXL8611X_LEDX_CFG_LINK_UP_TX_ACT_ON |
+ MXL8611X_LEDX_CFG_TRAFFIC_ACT_BLINK_IND
+ )>;
+ mxl-8611x,led1_cfg = <(
+ MXL8611X_LEDX_CFG_LINK_UP_10MB_ON |
+ MXL8611X_LEDX_CFG_LINK_UP_100MB_ON |
+ MXL8611X_LEDX_CFG_LINK_UP_1GB_ON
+ )>;
+ mxl-8611x,rx-internal-delay-ps = <0>;
+ mxl-8611x,tx-internal-delay-ps-100m = <2250>;
+ mxl-8611x,tx-internal-delay-ps-1g = <150>;
+ };
diff --git a/include/dt-bindings/net/mxl-8611x.h
b/include/dt-bindings/net/mxl-8611x.h
new file mode 100644
index 00000000000..cb0ec0f8bd0
--- /dev/null
+++ b/include/dt-bindings/net/mxl-8611x.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
+/*
+ * Device Tree constants for MaxLinear MXL8611x PHYs
+ *
+ * Copyright 2023 Variscite Ltd.
+ * Copyright 2023 MaxLinear Inc.
+ */
+
+#ifndef _DT_BINDINGS_MXL_8611X_H
+#define _DT_BINDINGS_MXL_8611X_H
+
+#define MXL8611X_LEDX_CFG_TRAFFIC_ACT_BLINK_IND (1 << 13)
+#define MXL8611X_LEDX_CFG_LINK_UP_FULL_DUPLEX_ON (1 << 12)
+#define MXL8611X_LEDX_CFG_LINK_UP_HALF_DUPLEX_ON (1 << 11)
+#define MXL8611X_LEDX_CFG_LINK_UP_TX_ACT_ON (1 << 10)
+#define MXL8611X_LEDX_CFG_LINK_UP_RX_ACT_ON (1 << 9)
+#define MXL8611X_LEDX_CFG_LINK_UP_TX_ON (1 << 8)
+#define MXL8611X_LEDX_CFG_LINK_UP_RX_ON (1 << 7)
+#define MXL8611X_LEDX_CFG_LINK_UP_1GB_ON (1 << 6)
+#define MXL8611X_LEDX_CFG_LINK_UP_100MB_ON (1 << 5)
+#define MXL8611X_LEDX_CFG_LINK_UP_10MB_ON (1 << 4)
+#define MXL8611X_LEDX_CFG_LINK_UP_COLLISION (1 << 3)
+#define MXL8611X_LEDX_CFG_LINK_UP_1GB_BLINK (1 << 2)
+#define MXL8611X_LEDX_CFG_LINK_UP_100MB_BLINK (1 << 1)
+#define MXL8611X_LEDX_CFG_LINK_UP_10MB_BLINK (1 << 0)
+
+#endif
--
2.40.1