Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/2] arm64: dts: qcom: ipq5018: Add MDIO pinctrl and enable MDIO/PHY on RDP432-c2
@ 2026-08-14 14:22 Luo Jie
  2026-08-14 14:22 ` [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus Luo Jie
  2026-08-14 14:22 ` [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY Luo Jie
  0 siblings, 2 replies; 5+ messages in thread
From: Luo Jie @ 2026-08-14 14:22 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Luo Jie

This is v2 of the series enabling the two MDIO buses on the IPQ5018
platform. v1 (this series' patch 1) added TLMM pinctrl for the
external MDIO bus (mdio1) and is still under review upstream; it is
carried into this v2 with a clarified commit message noting that the
MDIO pin configuration is identical across all IPQ5018 RDP boards.

v2 adds a second patch that actually makes use of the MDIO buses on
the RDP432-c2 board: it enables mdio0, used by the SoC-integrated
EPHY, and mdio1, used by an external QCA8081 PHY, and describes the
QCA8081 PHY node on mdio1.

Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
---
Changes in v2:
- Patch 1 (pinctrl for MDIO bus): no functional change; commit message
  clarified to note the MDIO pin configuration is identical across all
  IPQ5018 RDP boards.
- Patch 2 (enable MDIO buses and add ethernet PHY) is new in v2.
- Link to v1: https://patch.msgid.link/20260811-qcom_ipq5018_mdio_pinctrl-v1-1-14ae9dc62a3f@oss.qualcomm.com

To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

---
Luo Jie (2):
      arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus
      arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY

 arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 14 ++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5018.dtsi          | 18 ++++++++++++++++++
 2 files changed, 32 insertions(+)
---
base-commit: 2697ef8943c9985c14708a6429e21812693857b2
change-id: 20260811-qcom_ipq5018_mdio_pinctrl-f9e609e97c3d

Best regards,
--  
Luo Jie <jie.luo@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus
  2026-08-14 14:22 [PATCH v2 0/2] arm64: dts: qcom: ipq5018: Add MDIO pinctrl and enable MDIO/PHY on RDP432-c2 Luo Jie
@ 2026-08-14 14:22 ` Luo Jie
  2026-08-19 12:40   ` Konrad Dybcio
  2026-08-14 14:22 ` [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY Luo Jie
  1 sibling, 1 reply; 5+ messages in thread
From: Luo Jie @ 2026-08-14 14:22 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Luo Jie

The external MDIO bus (mdio1) needs its MDC/MDIO lines configured via
TLMM pinctrl; without this the pins are left in their default state and
the bus does not function on boards that enable it.

The MDIO pin configuration is identical across all IPQ5018 RDP boards,
so add it to the shared SoC dtsi.

Add a mdio_pins pinctrl state for gpio36 (mdc) and gpio37 (mdio) with
8mA drive strength and pull-up, and reference it from the mdio1 node
via pinctrl-0/pinctrl-names.

Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/ipq5018.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index 4fc627b47fe7..cb3e1202b582 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -241,6 +241,8 @@ mdio1: mdio@90000 {
 			reg = <0x00090000 0x64>;
 			#address-cells = <1>;
 			#size-cells = <0>;
+			pinctrl-0 = <&mdio_pins>;
+			pinctrl-names = "default";
 
 			clocks = <&gcc GCC_MDIO1_AHB_CLK>;
 			clock-names = "gcc_mdio_ahb_clk";
@@ -421,6 +423,22 @@ tlmm: pinctrl@1000000 {
 			interrupt-controller;
 			#interrupt-cells = <2>;
 
+			mdio_pins: mdio-state {
+				mdc-pins {
+					pins = "gpio36";
+					function = "mdc";
+					drive-strength = <8>;
+					bias-pull-up;
+				};
+
+				mdio-pins {
+					pins = "gpio37";
+					function = "mdio";
+					drive-strength = <8>;
+					bias-pull-up;
+				};
+			};
+
 			uart1_pins: uart1-state {
 				pins = "gpio31", "gpio32", "gpio33", "gpio34";
 				function = "blsp1_uart1";

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY
  2026-08-14 14:22 [PATCH v2 0/2] arm64: dts: qcom: ipq5018: Add MDIO pinctrl and enable MDIO/PHY on RDP432-c2 Luo Jie
  2026-08-14 14:22 ` [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus Luo Jie
@ 2026-08-14 14:22 ` Luo Jie
  2026-08-19 12:42   ` Konrad Dybcio
  1 sibling, 1 reply; 5+ messages in thread
From: Luo Jie @ 2026-08-14 14:22 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Luo Jie

Both the internal (mdio0) and external (mdio1) MDIO buses are present
in the SoC dtsi but left disabled at the board level, so the board
currently has no way to talk to PHYs on either bus.

The RDP432-c2 board uses the SoC-integrated EPHY on mdio0 and an
external QCA8081 PHY on mdio1 for its Ethernet connections. Enable
mdio0 and mdio1 with a 6.25MHz MDIO clock, and describe the QCA8081
PHY at address 0x1c on mdio1.

Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
index 33eef92b19b1..aed8359b1931 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
@@ -30,6 +30,20 @@ &blsp1_uart1 {
 	status = "okay";
 };
 
+&mdio0 {
+	clock-frequency = <6250000>;
+	status = "okay";
+};
+
+&mdio1 {
+	clock-frequency = <6250000>;
+	status = "okay";
+
+	ethernet-phy@1c {
+		reg = <0x1c>;
+	};
+};
+
 &pcie0 {
 	pinctrl-0 = <&pcie0_default>;
 	pinctrl-names = "default";

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus
  2026-08-14 14:22 ` [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus Luo Jie
@ 2026-08-19 12:40   ` Konrad Dybcio
  0 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-08-19 12:40 UTC (permalink / raw)
  To: Luo Jie, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel

On 8/14/26 4:22 PM, Luo Jie wrote:
> The external MDIO bus (mdio1) needs its MDC/MDIO lines configured via
> TLMM pinctrl; without this the pins are left in their default state and
> the bus does not function on boards that enable it.
> 
> The MDIO pin configuration is identical across all IPQ5018 RDP boards,
> so add it to the shared SoC dtsi.
> 
> Add a mdio_pins pinctrl state for gpio36 (mdc) and gpio37 (mdio) with
> 8mA drive strength and pull-up, and reference it from the mdio1 node
> via pinctrl-0/pinctrl-names.
> 
> Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY
  2026-08-14 14:22 ` [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY Luo Jie
@ 2026-08-19 12:42   ` Konrad Dybcio
  0 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-08-19 12:42 UTC (permalink / raw)
  To: Luo Jie, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel

On 8/14/26 4:22 PM, Luo Jie wrote:
> Both the internal (mdio0) and external (mdio1) MDIO buses are present
> in the SoC dtsi but left disabled at the board level, so the board
> currently has no way to talk to PHYs on either bus.
> 
> The RDP432-c2 board uses the SoC-integrated EPHY on mdio0 and an
> external QCA8081 PHY on mdio1 for its Ethernet connections. Enable
> mdio0 and mdio1 with a 6.25MHz MDIO clock, and describe the QCA8081
> PHY at address 0x1c on mdio1.
> 
> Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> index 33eef92b19b1..aed8359b1931 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> +++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> @@ -30,6 +30,20 @@ &blsp1_uart1 {
>  	status = "okay";
>  };
>  
> +&mdio0 {
> +	clock-frequency = <6250000>;
> +	status = "okay";

If the phy is integrated as part of the SoC, is there a reason to
not enable this bus by default for all boards?

> +};
> +
> +&mdio1 {
> +	clock-frequency = <6250000>;
> +	status = "okay";

Nit: a newline before status would be neat

> +
> +	ethernet-phy@1c {

No compatible string and other properties?

Konrad

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-19 12:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-14 14:22 [PATCH v2 0/2] arm64: dts: qcom: ipq5018: Add MDIO pinctrl and enable MDIO/PHY on RDP432-c2 Luo Jie
2026-08-14 14:22 ` [PATCH v2 1/2] arm64: dts: qcom: ipq5018: Add pinctrl for MDIO bus Luo Jie
2026-08-19 12:40   ` Konrad Dybcio
2026-08-14 14:22 ` [PATCH v2 2/2] arm64: dts: qcom: ipq5018: Enable MDIO buses and add ethernet PHY Luo Jie
2026-08-19 12:42   ` Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox