summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra2_i2s.c
diff options
context:
space:
mode:
authorSumit Bhattacharya <sumitb@nvidia.com>2011-02-21 16:05:21 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-02-22 18:09:04 -0800
commite74baeb904c579cc8fff2d7fa12cd4a6d83a2708 (patch)
treec4e4f6073eb6f2fcfd993e85a87dea1f24d895a3 /arch/arm/mach-tegra/tegra2_i2s.c
parent98d54eb3423b961039d7db01889f5c57d9128d76 (diff)
[ARM] tegra: i2s and das suspend/resume
Add APIs in das driver to get and set das register values. ALSA driver will be using these APIs to cache das register values during system suspend resume. In i2s register get/set APIs caching few more registers. Bug 789967 Bug 792879 Change-Id: Iaa4487cb003d2f75d5c54f450f17833c7af96cf2 Reviewed-on: http://git-master/r/20291 Tested-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-by: Vijay Mali <vmali@nvidia.com> Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra2_i2s.c')
-rw-r--r--arch/arm/mach-tegra/tegra2_i2s.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/tegra2_i2s.c b/arch/arm/mach-tegra/tegra2_i2s.c
index de50df917048..7147b0b38efb 100644
--- a/arch/arm/mach-tegra/tegra2_i2s.c
+++ b/arch/arm/mach-tegra/tegra2_i2s.c
@@ -78,6 +78,10 @@ void i2s_get_all_regs(int ifc, struct i2s_runtime_data* ird)
ird->i2s_status_0 = i2s_readl(ifc, I2S_I2S_STATUS_0);
ird->i2s_timing_0 = i2s_readl(ifc, I2S_I2S_TIMING_0);
ird->i2s__fifo_scr_0 = i2s_readl(ifc, I2S_I2S_FIFO_SCR_0);
+ ird->i2s_pcm_ctrl_0 = i2s_readl(ifc, I2S_I2S_PCM_CTRL_0);
+ ird->i2s_nw_ctrl_0 = i2s_readl(ifc, I2S_I2S_NW_CTRL_0);
+ ird->i2s_tdm_ctrl_0 = i2s_readl(ifc, I2S_I2S_TDM_CTRL_0);
+ ird->i2s_tdm_tx_rx_ctrl_0 = i2s_readl(ifc, I2S_I2S_TDM_TX_RX_CTRL_0);
ird->i2s_fifo1_0 = i2s_readl(ifc, I2S_I2S_FIFO1_0);
ird->i2s_fifo2_0 = i2s_readl(ifc, I2S_I2S_FIFO2_0);
}
@@ -89,6 +93,10 @@ void i2s_set_all_regs(int ifc, struct i2s_runtime_data* ird)
i2s_writel(ifc, ird->i2s_status_0, I2S_I2S_STATUS_0);
i2s_writel(ifc, ird->i2s_timing_0, I2S_I2S_TIMING_0);
i2s_writel(ifc, ird->i2s__fifo_scr_0, I2S_I2S_FIFO_SCR_0);
+ i2s_writel(ifc, ird->i2s_pcm_ctrl_0, I2S_I2S_PCM_CTRL_0);
+ i2s_writel(ifc, ird->i2s_nw_ctrl_0, I2S_I2S_NW_CTRL_0);
+ i2s_writel(ifc, ird->i2s_tdm_ctrl_0, I2S_I2S_TDM_CTRL_0);
+ i2s_writel(ifc, ird->i2s_tdm_tx_rx_ctrl_0, I2S_I2S_TDM_TX_RX_CTRL_0);
i2s_writel(ifc, ird->i2s_fifo1_0, I2S_I2S_FIFO1_0);
i2s_writel(ifc, ird->i2s_fifo2_0, I2S_I2S_FIFO2_0);
}