Re: [PATCH v3 3/5] net: phy: qcom: at803x: Add Qualcomm IPQ5018 Internal PHY support
From: George Moussalem
Date: Mon Jun 16 2025 - 08:38:46 EST
Hi Philipp,
On 6/16/25 15:01, Philipp Zabel wrote:
> On Mo, 2025-06-02 at 13:53 +0400, George Moussalem via B4 Relay wrote:
>> From: George Moussalem <george.moussalem@xxxxxxxxxxx>
>>
>> The IPQ5018 SoC contains a single internal Gigabit Ethernet PHY which
>> provides an MDI interface directly to an RJ45 connector or an external
>> switch over a PHY to PHY link.
>>
>> The PHY supports 10/100/1000 mbps link modes, CDT, auto-negotiation and
>> 802.3az EEE.
>>
>> Let's add support for this PHY in the at803x driver as it falls within
>> the Qualcomm Atheros OUI.
>>
>> Signed-off-by: George Moussalem <george.moussalem@xxxxxxxxxxx>
>> ---
>> drivers/net/phy/qcom/Kconfig | 2 +-
>> drivers/net/phy/qcom/at803x.c | 185 ++++++++++++++++++++++++++++++++++++++++--
>> 2 files changed, 178 insertions(+), 9 deletions(-)
>>
> [...]
>> diff --git a/drivers/net/phy/qcom/at803x.c b/drivers/net/phy/qcom/at803x.c
>> index 26350b962890b0321153d74758b13d817407d094..c148e245b5391c5da374ace8609dcdfd8284732d 100644
>> --- a/drivers/net/phy/qcom/at803x.c
>> +++ b/drivers/net/phy/qcom/at803x.c
>> @@ -7,19 +7,24 @@
> [...]
>> +static int ipq5018_probe(struct phy_device *phydev)
>> +{
>> + struct device *dev = &phydev->mdio.dev;
>> + struct ipq5018_priv *priv;
>> + int ret;
>> +
>> + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
>> + if (!priv)
>> + return -ENOMEM;
>> +
>> + priv->set_short_cable_dac = of_property_read_bool(dev->of_node,
>> + "qcom,dac-preset-short-cable");
>> +
>> + priv->rst = devm_reset_control_array_get_exclusive(dev);
>
> Both dt-bindings and dts patch only show a single reset. Is there a
> reason this is a reset_control_array?
The series started with multiple resets, but due to patch 1 (using a
bitmask to trigger multiple resets) and the restriction of max 1 reset
in ethernet-phy.yaml, there's no need for calling the array function
anymore. Need me to change to devm_reset_control_get_exclusive?
If so, don't mind me asking, do I send 2 patch sets? (complete set of 5
and a separate set of 2 to net-next as requested by Yakub)? Or just the
entire patch set to net-next?
>
> regards
> Philipp
Best regards,
George