SACR0
writel(0, i2s_reg_base + SACR0);
if (!(SACR0 & SACR0_ENB)) {
writel(0, i2s_reg_base + SACR0);
writel(readl(i2s_reg_base + SACR0) | (SACR0_BCKD), i2s_reg_base + SACR0);
writel(readl(i2s_reg_base + SACR0) | (SACR0_RFTH(14) | SACR0_TFTH(1)), i2s_reg_base + SACR0);
writel(readl(i2s_reg_base + SACR0) | (SACR0_ENB), i2s_reg_base + SACR0);
writel(readl(i2s_reg_base + SACR0) & (~SACR0_ENB), i2s_reg_base + SACR0);
pxa_i2s.sacr0 = readl(i2s_reg_base + SACR0);
writel(readl(i2s_reg_base + SACR0) & (~SACR0_ENB), i2s_reg_base + SACR0);
writel(pxa_i2s.sacr0 & ~SACR0_ENB, i2s_reg_base + SACR0);
writel(pxa_i2s.sacr0, i2s_reg_base + SACR0);
writel(SACR0_RST, i2s_reg_base + SACR0);
writel(0, i2s_reg_base + SACR0);