]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: rk322x: Disable integrated macphy for saving power consuming
authorDavid Wu <david.wu@rock-chips.com>
Mon, 14 Aug 2017 07:04:28 +0000 (15:04 +0800)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Mon, 18 Sep 2017 18:40:33 +0000 (20:40 +0200)
Unfortunately, the integrated macphy default is enabled, which will
increase power consuming, if we do not use this PHY. So let's disable
it at first, which will save power consuming. If we really use it, then
enable it in driver level.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
arch/arm/include/asm/arch-rockchip/grf_rk322x.h
arch/arm/mach-rockchip/rk322x-board.c

index 26071c8ec8ae1b3a8790abc79e5b92139f2d23dc..c0c0d84cf1675d35c3d717fda8993b82478185ba 100644 (file)
@@ -54,6 +54,32 @@ struct rk322x_grf {
        unsigned int os_reg[8];
        unsigned int reserved9[(0x604 - 0x5e4) / 4 - 1];
        unsigned int ddrc_stat;
+       unsigned int reserved10[(0x680 - 0x604) / 4 - 1];
+       unsigned int sig_detect_con[2];
+       unsigned int reserved11[(0x690 - 0x684) / 4 - 1];
+       unsigned int sig_detect_status[2];
+       unsigned int reserved12[(0x6a0 - 0x694) / 4 - 1];
+       unsigned int sig_detect_clr[2];
+       unsigned int reserved13[(0x6b0 - 0x6a4) / 4 - 1];
+       unsigned int emmc_det;
+       unsigned int reserved14[(0x700 - 0x6b0) / 4 - 1];
+       unsigned int host0_con[3];
+       unsigned int reserved15;
+       unsigned int host1_con[3];
+       unsigned int reserved16;
+       unsigned int host2_con[3];
+       unsigned int reserved17[(0x760 - 0x728) / 4 - 1];
+       unsigned int usbphy0_con[27];
+       unsigned int reserved18[(0x800 - 0x7c8) / 4 - 1];
+       unsigned int usbphy1_con[27];
+       unsigned int reserved19[(0x880 - 0x868) / 4 - 1];
+       unsigned int otg_con0;
+       unsigned int uoc_status0;
+       unsigned int reserved20[(0x900 - 0x884) / 4 - 1];
+       unsigned int mac_con[2];
+       unsigned int reserved21[(0xb00 - 0x904) / 4 - 1];
+       unsigned int macphy_con[4];
+       unsigned int macphy_status;
 };
 check_member(rk322x_grf, ddrc_stat, 0x604);
 
@@ -516,4 +542,10 @@ enum {
        CON_IOMUX_PWM0SEL_SHIFT = 0,
        CON_IOMUX_PWM0SEL_MASK  = 1 << CON_IOMUX_PWM0SEL_SHIFT,
 };
+
+/* GRF_MACPHY_CON0 */
+enum {
+       MACPHY_CFG_ENABLE_SHIFT = 0,
+       MACPHY_CFG_ENABLE_MASK  = 1 << MACPHY_CFG_ENABLE_SHIFT,
+};
 #endif
index 63875557ec93d362004709f63678c3832b388446..dcd8cf805fe51aa2a1d2fa25aefdb6a3e37a758b 100644 (file)
@@ -68,6 +68,14 @@ int board_init(void)
                     CON_IOMUX_UART2SEL_MASK,
                     CON_IOMUX_UART2SEL_21 << CON_IOMUX_UART2SEL_SHIFT);
 
+       /*
+       * The integrated macphy is enabled by default, disable it
+       * for saving power consuming.
+       */
+       rk_clrsetreg(&grf->macphy_con[0],
+                    MACPHY_CFG_ENABLE_MASK,
+                    0 << MACPHY_CFG_ENABLE_SHIFT);
+
        return 0;
 }