spdif_priv->tx_active = true; err = clk_enable(plat_data->spdif_clk); err = clk_enable(plat_data->spdif_core_clk); spdif_softreset(); /* disable all the interrupts */ spdif_intr_enable(0xffffff, 0); regval = __raw_readl(spdif_base_addr + SPDIF_REG_SCR); regval &= 0xfc33e3; regval &= ~SCR_LOW_POWER; regval = SCR_TXFIFO_ZERO | SCR_TXSEL_NORMAL; __raw_writel(regval, SPDIF_REG_SCR + spdif_base_addr); plat_data->spdif_clk_set_rate(plat_data->spdif_clk, 64 * 44100 * (plat_data->spdif_div_44100 + 1)); regval = __raw_readl(SPDIF_REG_STC + spdif_base_addr) & ~0x7FF; regval |= STC_TXCLK_SRC_EN | (plat_data->spdif_clk_44100 << STC_TXCLK_SRC_OFFSET) | (plat_data->spdif_div_44100 - 1); __raw_writel(regval, SPDIF_REG_STC + spdif_base_addr); printk("SCE:spdif probe!!!");