mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
ufs: Program Auto-hibernate
Added Auto-hibernate for better power consumption in idle state. Bug 4812738 Change-Id: I5ef80b8de7d94f8a2bad3adf546061520fb38958 Signed-off-by: Mallikarjun Kasoju <mkasoju@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3239657 Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
Jon Hunter
parent
74e8b62f72
commit
8f7e9f5ec8
@@ -1816,6 +1816,10 @@ static int ufs_tegra_hce_enable_notify(struct ufs_hba *hba,
|
||||
clk_disable_unprepare(ufs_tegra->mphy_force_ls_mode);
|
||||
if (ufs_tegra->soc->chip_id >= TEGRA234)
|
||||
ufs_tegra_ufs_mmio_axi(hba);
|
||||
/* Enable auto hibernate */
|
||||
if (ufs_tegra->enable_auto_hibern8)
|
||||
ufs_aux_writel(ufs_tegra->ufs_aux_base, 0x4,
|
||||
UFSHC_AUX_UFSHC_CARD_DET_LP_PWR_CTRL_0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -1941,6 +1945,8 @@ static int ufs_tegra_config_soc_data(struct ufs_tegra_host *ufs_tegra)
|
||||
|
||||
ufs_tegra->enable_scramble =
|
||||
of_property_read_bool(np, "nvidia,enable-scramble");
|
||||
ufs_tegra->enable_auto_hibern8 =
|
||||
of_property_read_bool(np, "nvidia,enable-auto-hibern8");
|
||||
|
||||
if (ufs_tegra->soc->chip_id >= TEGRA234) {
|
||||
#if defined(NV_UFSHCD_QUIRKS_ENUM_HAS_UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS) /* Linux 6.0 */
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#define UFS_AUX_ADDR_VIRT_CTRL_EN 0x1
|
||||
#define UFS_AUX_ADDR_VIRT_PA_VA_CTRL 0x2
|
||||
#define UFS_AUX_ADDR_VIRT_REG_0 0x4
|
||||
#define UFSHC_AUX_UFSHC_CARD_DET_LP_PWR_CTRL_0 0x1CU
|
||||
|
||||
/*
|
||||
* M-PHY Registers
|
||||
@@ -348,6 +349,7 @@ struct ufs_tegra_host {
|
||||
bool enable_hs_mode;
|
||||
bool enable_38mhz_clk;
|
||||
bool enable_ufs_provisioning;
|
||||
bool enable_auto_hibern8;
|
||||
u32 max_hs_gear;
|
||||
bool mask_fast_auto_mode;
|
||||
bool mask_hs_mode_b;
|
||||
|
||||
Reference in New Issue
Block a user