2020-09-18 02:53:16

by Jisheng Zhang

[permalink] [raw]
Subject: [PATCH net-next] net: phy: realtek: enable ALDPS to save power for RTL8211F

Enable ALDPS function to save power when link down.

Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/net/phy/realtek.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index 95dbe5e8e1d8..961570186822 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -39,6 +39,10 @@
#define RTL8201F_ISR 0x1e
#define RTL8201F_IER 0x13

+#define RTL8211F_ALDPS_PLL_OFF BIT(1)
+#define RTL8211F_ALDPS_ENABLE BIT(2)
+#define RTL8211F_ALDPS_XTAL_OFF BIT(12)
+
#define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12)

@@ -178,8 +182,12 @@ static int rtl8211f_config_init(struct phy_device *phydev)
{
struct device *dev = &phydev->mdio.dev;
u16 val_txdly, val_rxdly;
+ u16 val;
int ret;

+ val = RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_XTAL_OFF;
+ phy_modify_paged_changed(phydev, 0xa43, 0x18, val, val);
+
switch (phydev->interface) {
case PHY_INTERFACE_MODE_RGMII:
val_txdly = 0;
--
2.28.0


2020-09-18 13:23:25

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH net-next] net: phy: realtek: enable ALDPS to save power for RTL8211F

On Fri, Sep 18, 2020 at 10:47:56AM +0800, Jisheng Zhang wrote:
> Enable ALDPS function to save power when link down.

Hi Jisheng

It would be nice to give a hint what ALDPS means. It is not one of the
standard acronyms i know of, so it could be Realtek specific.

>
> Signed-off-by: Jisheng Zhang <[email protected]>
> ---
> drivers/net/phy/realtek.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> index 95dbe5e8e1d8..961570186822 100644
> --- a/drivers/net/phy/realtek.c
> +++ b/drivers/net/phy/realtek.c
> @@ -39,6 +39,10 @@
> #define RTL8201F_ISR 0x1e
> #define RTL8201F_IER 0x13
>
> +#define RTL8211F_ALDPS_PLL_OFF BIT(1)
> +#define RTL8211F_ALDPS_ENABLE BIT(2)
> +#define RTL8211F_ALDPS_XTAL_OFF BIT(12)
> +
> #define RTL8366RB_POWER_SAVE 0x15
> #define RTL8366RB_POWER_SAVE_ON BIT(12)
>
> @@ -178,8 +182,12 @@ static int rtl8211f_config_init(struct phy_device *phydev)
> {
> struct device *dev = &phydev->mdio.dev;
> u16 val_txdly, val_rxdly;
> + u16 val;
> int ret;
>
> + val = RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_XTAL_OFF;
> + phy_modify_paged_changed(phydev, 0xa43, 0x18, val, val);

Could we avoid some of these magic numbers? The datasheet seems to
call 0x18 PHYCR1, etc.

Andrew