hdmirx: Optimize hdmirx power consumption [1/1]

PD#SWPL-10073

Problem:
The power consumption of hdmirx need to be optimized when
there're no deviced connected.

Solution:
Power off hdmirx phy/pll when no rx input

Verify:
TL1/TM2

Change-Id: Iba34e3a4cd72c2fd72ff05f608114179ae59055c
Signed-off-by: yicheng shen <yicheng.shen@amlogic.com>
This commit is contained in:
yicheng shen
2019-10-17 16:40:41 +08:00
committed by Luke Go
parent 1fb1400913
commit 0d09990db9
2 changed files with 22 additions and 5 deletions

View File

@@ -47,7 +47,7 @@
*
*
*/
#define RX_VER2 "ver.2019/09/11"
#define RX_VER2 "ver.2019/10/17"
/*print type*/
#define LOG_EN 0x01

View File

@@ -4072,6 +4072,26 @@ void rx_phy_rxsense_pulse(unsigned int t1, unsigned int t2, bool en)
mdelay(t2);
}
void aml_phy_power_off(void)
{
/* pll power down */
wr_reg_hhi_bits(HHI_HDMIRX_APLL_CNTL0, _BIT(28), 0);
wr_reg_hhi_bits(HHI_HDMIRX_APLL_CNTL0, _BIT(29), 1);
/* phy power down */
wr_reg_hhi(HHI_HDMIRX_PHY_MISC_CNTL0, 0x32037800);
wr_reg_hhi(HHI_HDMIRX_PHY_MISC_CNTL1, 0x1000000);
wr_reg_hhi(HHI_HDMIRX_PHY_MISC_CNTL2, 0x62208002);
wr_reg_hhi(HHI_HDMIRX_PHY_MISC_CNTL3, 0x7);
wr_reg_hhi(HHI_HDMIRX_PHY_DCHA_CNTL0, 0x1e);
wr_reg_hhi(HHI_HDMIRX_PHY_DCHA_CNTL1, 0x10000800);
wr_reg_hhi(HHI_HDMIRX_PHY_DCHD_CNTL0, 0x200000);
wr_reg_hhi(HHI_HDMIRX_PHY_DCHD_CNTL1, 0x0);
if (log_level & VIDEO_LOG)
rx_pr("%s\n", __func__);
}
void rx_phy_power_on(unsigned int onoff)
{
if (onoff)
@@ -4081,10 +4101,7 @@ void rx_phy_power_on(unsigned int onoff)
if (rx.chip_id >= CHIP_ID_TL1) {
/*the enable of these regs are in phy init*/
if (onoff == 0) {
wr_reg_hhi_bits(HHI_HDMIRX_APLL_CNTL0, _BIT(28), onoff);
/*close termination 3.3v*/
wr_reg_hhi_bits(HHI_HDMIRX_PHY_MISC_CNTL0,
MSK(3, 0), onoff);
aml_phy_power_off();
}
}
}