[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<BL4PR19MB8902105E717BC98CF0EF4F4C9D64A@BL4PR19MB8902.namprd19.prod.outlook.com>
Date: Tue, 27 May 2025 17:03:23 +0400
From: George Moussalem <george.moussalem@...look.com>
To: Konrad Dybcio <konrad.dybcio@....qualcomm.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 17:00, Konrad Dybcio wrote:
> 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?
AFAIK and unless I stand corrected by others, we can detect the presence
of a phy or switch, but we can't detect how it's wired up. It could be
connected to the GE PHY or the UNIPHY. Hence, the need for a property.
>
> Konrad
George
Powered by blists - more mailing lists