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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
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;
}