static int sun7i_pcm_resume(struct snd_soc_dai *cpu_dai) { u32 reg_val; printk("[IIS]Entered %s\n", __func__); //release the module clock if (clk_enable(i2s_apbclk)) { printk("try to enable i2s_apbclk output failed!\n"); } //release the module clock if (clk_enable(i2s_moduleclk)) { printk("try to enable i2s_moduleclk output failed!\n"); } iisregrestore(); //Global Enable Digital Audio Interface reg_val = readl(sun7i_pcm.regs + SUN7I_IISCTL); reg_val |= SUN7I_IISCTL_GEN; writel(reg_val, sun7i_pcm.regs + SUN7I_IISCTL); //printk("[IIS]PLL2 0x01c20008 = %#x\n", *(volatile int*)0xF1C20008); printk("[IIS]SPECIAL CLK 0x01c20068 = %#x, line= %d\n", *(volatile int*)0xF1C20068, __LINE__); printk("[IIS]SPECIAL CLK 0x01c200B8 = %#x, line = %d\n", *(volatile int*)0xF1C200B8, __LINE__); return 0; }
static int sun4i_i2s_resume(struct snd_soc_dai *cpu_dai) { u32 reg_val; printk("[IIS]Entered %s\n", __func__); //release the module clock clk_enable(i2s_apbclk); //release the module clock clk_enable(i2s_moduleclk); iisregrestore(); //Global Enable Digital Audio Interface reg_val = readl(sun4i_iis.regs + SUN4I_IISCTL); reg_val |= SUN4I_IISCTL_GEN; writel(reg_val, sun4i_iis.regs + SUN4I_IISCTL); return 0; }
static int sun6i_i2s_resume(struct snd_soc_dai *cpu_dai) { u32 reg_val; printk("[IIS]Entered %s\n", __func__); /*release the module clock*/ if (clk_enable(i2s_apbclk)) { printk("try to enable i2s_apbclk output failed!\n"); } /*release the module clock*/ if (clk_enable(i2s_moduleclk)) { printk("try to enable i2s_moduleclk output failed!\n"); } iisregrestore(); /*Global Enable Digital Audio Interface*/ reg_val = readl(sun6i_iis.regs + SUN6I_IISCTL); reg_val |= SUN6I_IISCTL_GEN; writel(reg_val, sun6i_iis.regs + SUN6I_IISCTL); return 0; }