summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorManjula Gupta <magupta@nvidia.com>2011-05-05 19:34:33 +0530
committerNiket Sirsi <nsirsi@nvidia.com>2011-06-24 21:10:56 -0700
commiteae692e49952dd102ffc24842bc0a6617de20847 (patch)
treebb7f0e12de5f74662f3f6da136ef21a23eaff624 /arch
parentb5c32cddbe8cc30303062609a9dec4320cd4087b (diff)
ARM: tegra: Adds an API to dump spdif registers.
Reviewed-on: http://git-master/r/30512 (cherry picked from commit 52e7d11bc42abb7643191bccf55fc9fc66b640d2) Change-Id: I35c6e91dc943637fdebb0db1a633c5bc1c39727f Reviewed-on: http://git-master/r/31112 Tested-by: Manjula Gupta <magupta@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/include/mach/spdif.h3
-rw-r--r--arch/arm/mach-tegra/spdif.c30
2 files changed, 31 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/include/mach/spdif.h b/arch/arm/mach-tegra/include/mach/spdif.h
index a41a3d76ea31..db8be466aeb2 100644
--- a/arch/arm/mach-tegra/include/mach/spdif.h
+++ b/arch/arm/mach-tegra/include/mach/spdif.h
@@ -533,8 +533,7 @@ u32 spdif_get_fifo_scr(int ifc);
u32 spdif_get_fifo_full_empty_count(int ifc, int mode);
int spdif_initialize(unsigned long base, int mode);
-void spdif_get_all_regs(unsigned long base, struct spdif_regs_cache* regs);
-void spdif_set_all_regs(unsigned long base, struct spdif_regs_cache* regs);
+void spdif_dump_registers(unsigned long base);
int spdif_init(unsigned long base, phys_addr_t phy_base, int mode,
struct tegra_spdif_property* pspdifprop);
diff --git a/arch/arm/mach-tegra/spdif.c b/arch/arm/mach-tegra/spdif.c
index 9fa736546cbc..ff31e30bad9a 100644
--- a/arch/arm/mach-tegra/spdif.c
+++ b/arch/arm/mach-tegra/spdif.c
@@ -540,6 +540,36 @@ int spdif_set_fifo_attention(int ifc, int fifo_mode, int buffersize)
return 0;
}
+void spdif_dump_registers(unsigned long base)
+{
+ struct spdif_regs_cache *regs =
+ (struct spdif_regs_cache *) spinfo->reg_cache;
+
+ spdif_save_regs(base);
+
+ pr_info("CTRL %08x\n", regs->spdif_ctrl_0);
+ pr_info("STATUS %08x\n", regs->spdif_status_0);
+ pr_info("STROBE_CTRL %08x\n", regs->spdif_strobe_ctrl_0);
+ pr_info("FIFO_CSR %08x\n", regs->spdif_data_fifo_scr_0);
+ pr_info("CH_STA_RX_A %08x\n", regs->spdif_ch_sta_rx_a_0);
+ pr_info("CH_STA_RX_B %08x\n", regs->spdif_ch_sta_rx_b_0);
+ pr_info("CH_STA_RX_C %08x\n", regs->spdif_ch_sta_rx_c_0);
+ pr_info("CH_STA_RX_D %08x\n", regs->spdif_ch_sta_rx_d_0);
+ pr_info("CH_STA_RX_E %08x\n", regs->spdif_ch_sta_rx_e_0);
+ pr_info("CH_STA_RX_F %08x\n", regs->spdif_ch_sta_rx_f_0);
+ pr_info("CH_STA_TX_A %08x\n", regs->spdif_ch_sta_tx_a_0);
+ pr_info("CH_STA_TX_B %08x\n", regs->spdif_ch_sta_tx_b_0);
+ pr_info("CH_STA_TX_C %08x\n", regs->spdif_ch_sta_tx_c_0);
+ pr_info("CH_STA_TX_D %08x\n", regs->spdif_ch_sta_tx_d_0);
+ pr_info("CH_STA_TX_E %08x\n", regs->spdif_ch_sta_tx_e_0);
+ pr_info("CH_STA_TX_F %08x\n", regs->spdif_ch_sta_tx_f_0);
+ pr_info("USR_STA_RX_A %08x\n", regs->spdif_usr_sta_rx_a_0);
+ pr_info("USR_DAT_TX_A %08x\n", regs->spdif_usr_dat_tx_a_0);
+
+ pr_info("%s: End.\n", __func__);
+
+}
+
void spdif_save_regs(unsigned long base)
{
struct spdif_regs_cache *regs =