[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7d8c3a31-cba3-40b9-8cba-52d782e5cf00@oss.qualcomm.com>
Date: Tue, 27 May 2025 15:00:07 +0200
From: Konrad Dybcio <konrad.dybcio@....qualcomm.com>
To: George Moussalem <george.moussalem@...look.com>,
Krzysztof Kozlowski <krzk@...nel.org>, Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
Russell King
<linux@...linux.org.uk>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley
<conor+dt@...nel.org>,
Florian Fainelli <f.fainelli@...il.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>
Cc: netdev@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
linux-clk@...r.kernel.org
Subject: Re: [PATCH 1/5] dt-bindings: net: qca,ar803x: Add IPQ5018 Internal GE
PHY support
On 5/27/25 2:13 PM, George Moussalem wrote:
>
>
> On 5/27/25 15:31, Konrad Dybcio wrote:
>> On 5/27/25 1:28 PM, George Moussalem wrote:
>>> Hi Konrad,
>>>
>>> On 5/27/25 14:59, Konrad Dybcio wrote:
>>>> On 5/26/25 2:55 PM, Krzysztof Kozlowski wrote:
>>>>> On 26/05/2025 08:43, George Moussalem wrote:
>>>>>>>> + qca,dac:
>>>>>>>> + description:
>>>>>>>> + Values for MDAC and EDAC to adjust amplitude, bias current settings,
>>>>>>>> + and error detection and correction algorithm. Only set in a PHY to PHY
>>>>>>>> + link architecture to accommodate for short cable length.
>>>>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>>>>> + items:
>>>>>>>> + - items:
>>>>>>>> + - description: value for MDAC. Expected 0x10, if set
>>>>>>>> + - description: value for EDAC. Expected 0x10, if set
>>>>>>>
>>>>>>> If this is fixed to 0x10, then this is fully deducible from compatible.
>>>>>>> Drop entire property.
>>>>>>
>>>>>> as mentioned to Andrew, I can move the required values to the driver
>>>>>> itself, but a property would still be required to indicate that this PHY
>>>>>> is connected to an external PHY (ex. qca8337 switch). In that case, the
>>>>>> values need to be set. Otherwise, not..
>>>>>>
>>>>>> Would qcom,phy-to-phy-dac (boolean) do?
>>>>>
>>>>> Seems fine to me.
>>>>
>>>> Can the driver instead check for a phy reference?
>>>
>>> Do you mean using the existing phy-handle DT property or create a new DT property called 'qcom,phy-reference'? Either way, can add it for v2.
>>
>> I'm not sure how this is all wired up. Do you have an example of a DT
>> with both configurations you described in your reply to Andrew?
>
> Sure, for IPQ5018 GE PHY connected to a QCA8337 switch (phy to phy):
> Link: https://github.com/openwrt/openwrt/blob/main/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-spnmx56.dts
> In this scenario, the IPQ5018 single UNIPHY is freed up and can be used with an external PHY such as QCA8081 to offer up to 2.5 gbps connectivity, see diagram below:
>
> * =================================================================
> * _______________________ _______________________
> * | IPQ5018 | | QCA8337 |
> * | +------+ +--------+ | | +--------+ +------+ |
> * | | MAC0 |---| GE Phy |-+--- MDI ---+ | Phy4 |---| MAC5 | |
> * | +------+ +--------+ | | +--------+ +------+ |
> * | | |_______________________|
> * | | _______________________
> * | | | QCA8081 |
> * | +------+ +--------+ | | +--------+ +------+ |
> * | | MAC1 |---| Uniphy |-+-- SGMII+--+ | Phy |---| RJ45 | |
> * | +------+ +--------+ | | +--------+ +------+ |
> * |_______________________| |_______________________|
> *
> * =================================================================
>
> The other use case is when an external switch or PHY, if any, is connected to the IPQ5018 UNIPHY over SGMII(+), freeing up the GE PHY which can optionally be connected to an RJ45 connector. I haven't worked on such board yet where the GE PHY is directly connected to RJ45, but I believe the Linksys MX6200 has this architecture (which I'll look into soon).
>
> * =================================================================
> * _______________________ ____________
> * | IPQ5018 | | |
> * | +------+ +--------+ | | +--------+ |
> * | | MAC0 |---| GE Phy |-+--- MDI ---+ | RJ45 | +
> * | +------+ +--------+ | | +--------+ |
> * | | |____________|
> * | | _______________________
> * | | | QCA8081 Phy |
> * | +------+ +--------+ | | +--------+ +------+ |
> * | | MAC1 |---| Uniphy |-+-- SGMII+--+ | Phy |---| RJ45 | |
> * | +------+ +--------+ | | +--------+ +------+ |
> * |_______________________| |_______________________|
> *
> * =================================================================
So - with keeping in mind that I'm not a big networking guy - can we test
for whether there's an ethernet-switch present under the MDIO host and
decide based on that?
Konrad
Powered by blists - more mailing lists