On Saturday 04 February 2017 12:26 AM, Ken.Lin wrote:
>
>
>> -----Original Message-----
>> From: Sekhar Nori [mailto:[email protected]]
>> Sent: Thursday, February 2, 2017 9:44 PM
>> To: ken <Ken Lin>; [email protected]
>> Cc: [email protected]; [email protected]; Ken.Lin; Peter.Chiang;
>> Peter.Stretz; [email protected]; [email protected];
>> [email protected]
>> Subject: Re: [PATCH] drivers: net: phy: atheros: apply the previous register
>> setting for AR8031 to fix the voltage peak issue
>>
>> On Friday 03 February 2017 02:53 AM, ken <Ken Lin> wrote:
>>> Apply the previous setting for the reserved bits in SetDes Test and
>>> System Mode Control register to avoid the voltage peak issue while we
>>> do the IEEE PHY comformance test
>>>
>>> Signed-off-by: ken Lin <[email protected]> Tested on Advantech
>>> DMS-BA16 board
>>> Tested-by: Ken Lin <[email protected]>
>>> ---
>>> drivers/net/phy/atheros.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c
>>> index b34cdd3d87..82fe228604 100644
>>> --- a/drivers/net/phy/atheros.c
>>> +++ b/drivers/net/phy/atheros.c
>>> @@ -28,6 +28,8 @@ static int ar8021_config(struct phy_device *phydev)
>>>
>>> static int ar8031_config(struct phy_device *phydev) {
>>> + int regval;
>>> +
>>> if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID ||
>>> phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {
>>> phy_write(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_ADDR_REG, @@
>>> -44,6 +46,10 @@ static int ar8031_config(struct phy_device *phydev)
>>> AR803x_RGMII_RX_CLK_DLY);
>>> }
>>>
>>> + phy_write(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_ADDR_REG, AR803x_DEBUG_REG_5);
>>> + regval = phy_read(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_DATA_REG);
>>> + phy_write(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_DATA_REG,
>>> + regval | 0x3C47);
>>
>> I thought I had responded to this, but probably the mail did not go through.
>>
>> What you have defeats the purpose of reading back the register. The idea of
>> reading back was to avoid using any hardcoded reset state of the register.
>>
>> Also, your patch does nothing to the existing code writing to
>> AR803x_DEBUG_REG_5.
>> So you have two unneeded writes now. Does the following work for you (not
>> compiled or tested).
>>
>
> The register setting would turn out to be 0x3D47 on our project boards and
> our signal measurement results show the patch (v2 version,
> https://patchwork.ozlabs.org/patch/723461/)) could fix the voltage peak issue.
> The proposed solution is to follow the implementation in previous commits,
> which include the reserved bits settings in SerDes Test and System Mode
> Control register.
So what does the register setting turn out to be with my patch below ?
What are the "previous commits" you refer to ?
>> Thanks,
>> Sekhar
>>
>> ---8<---
>> diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c index
>> b34cdd3d87dc..aff9eb3d18c6 100644
>> --- a/drivers/net/phy/atheros.c
>> +++ b/drivers/net/phy/atheros.c
>> @@ -28,12 +28,16 @@ static int ar8021_config(struct phy_device *phydev)
>>
>> static int ar8031_config(struct phy_device *phydev) {
>> + int regval;
>> +
>> if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID ||
>> phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {
>> phy_write(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_ADDR_REG,
>> AR803x_DEBUG_REG_5);
>> + regval = phy_read(phydev, MDIO_DEVAD_NONE,
>> + AR803x_PHY_DEBUG_DATA_REG);
>> phy_write(phydev, MDIO_DEVAD_NONE,
>> AR803x_PHY_DEBUG_DATA_REG,
>> - AR803x_RGMII_TX_CLK_DLY);
>> + regval | AR803x_RGMII_TX_CLK_DLY);
>> }
>>
>> if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID ||
Thanks,
Sekhar
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot