From: Marcus Cooper <[email protected]>

Signed-off-by: Marcus Cooper <[email protected]>
---
 sound/soc/sunxi/i2s/sunxi-i2s.c | 29 +++++++++++++++--------------
 sound/soc/sunxi/i2s/sunxi-i2s.h |  3 ++-
 2 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/sound/soc/sunxi/i2s/sunxi-i2s.c b/sound/soc/sunxi/i2s/sunxi-i2s.c
index 42b1931..7490d2a 100644
--- a/sound/soc/sunxi/i2s/sunxi-i2s.c
+++ b/sound/soc/sunxi/i2s/sunxi-i2s.c
@@ -70,7 +70,7 @@ void sunxi_snd_txctrl_i2s(struct snd_pcm_substream 
*substream, int on)
        u32 reg_val;
 
        reg_val = readl(sunxi_iis.regs + SUNXI_TXCHSEL);
-       reg_val &= ~0x7;
+       reg_val &= ~SUNXI_TXCHSEL_MASK;
        reg_val |= SUNXI_TXCHSEL_CHNUM(substream->runtime->channels);
        writel(reg_val, sunxi_iis.regs + SUNXI_TXCHSEL);
 
@@ -333,8 +333,8 @@ static int sunxi_i2s_set_fmt(struct snd_soc_dai *cpu_dai, 
unsigned int fmt)
        writel(reg_val, sunxi_iis.regs + SUNXI_IISFAT1);
 
        /* set FIFO control register */
-       reg_val = 0 & 0x3;
-       reg_val |= (1 & 0x1) << 2;
+       reg_val = SUNXI_IISFCTL_RXOM_MOD0;
+       reg_val |= SUNXI_IISFCTL_TXIM_MOD1;
        reg_val |= SUNXI_IISFCTL_RXTL(0xf);     /* RX FIFO trigger level */
        reg_val |= SUNXI_IISFCTL_TXTL(0x40);    /* TX FIFO trigger level */
        writel(reg_val, sunxi_iis.regs + SUNXI_IISFCTL);
@@ -412,17 +412,17 @@ static int sunxi_i2s_set_clkdiv(struct snd_soc_dai 
*cpu_dai, int div_id,
                if (div <= 8)
                        div = (div >> 1);
                else if (div == 12)
-                       div = 0x5;
+                       div = SUNXI_IISCLKD_MCLKDIV_12;
                else if (div == 16)
-                       div = 0x6;
+                       div = SUNXI_IISCLKD_MCLKDIV_16;
                else if (div == 24)
-                       div = 0x7;
+                       div = SUNXI_IISCLKD_MCLKDIV_24;
                else if (div == 32)
-                       div = 0x8;
+                       div = SUNXI_IISCLKD_MCLKDIV_32;
                else if (div == 48)
-                       div = 0x9;
+                       div = SUNXI_IISCLKD_MCLKDIV_48;
                else if (div == 64)
-                       div = 0xa;
+                       div = SUNXI_IISCLKD_MCLKDIV_16;
                reg = (readl(sunxi_iis.regs + SUNXI_IISCLKD) &
                                ~SUNXI_IISCLKD_MCLK_MASK) |
                                (div << SUNXI_IISCLKD_MCLK_OFFS);
@@ -432,13 +432,13 @@ static int sunxi_i2s_set_clkdiv(struct snd_soc_dai 
*cpu_dai, int div_id,
                if (div <= 8)
                        div = (div >> 1) - 1;
                else if (div == 12)
-                       div = 0x4;
+                       div = SUNXI_IISCLKD_BCLKDIV_12;
                else if (div == 16)
-                       div = 0x5;
+                       div = SUNXI_IISCLKD_BCLKDIV_16;
                else if (div == 32)
-                       div = 0x6;
+                       div = SUNXI_IISCLKD_BCLKDIV_32;
                else if (div == 64)
-                       div = 0x7;
+                       div = SUNXI_IISCLKD_BCLKDIV_64;
                reg = (readl(sunxi_iis.regs + SUNXI_IISCLKD) &
                                ~SUNXI_IISCLKD_BCLK_MASK) |
                                (div << SUNXI_IISCLKD_BCLK_OFFS);
@@ -476,7 +476,8 @@ static void iisregsave(void)
        regsave[0] = readl(sunxi_iis.regs + SUNXI_IISCTL);
        regsave[1] = readl(sunxi_iis.regs + SUNXI_IISFAT0);
        regsave[2] = readl(sunxi_iis.regs + SUNXI_IISFAT1);
-       regsave[3] = readl(sunxi_iis.regs + SUNXI_IISFCTL) | (0x3 << 24);
+       regsave[3] = readl(sunxi_iis.regs + SUNXI_IISFCTL) |
+                       (SUNXI_IISFCTL_FTX | SUNXI_IISFCTL_FRX);
        regsave[4] = readl(sunxi_iis.regs + SUNXI_IISINT);
        regsave[5] = readl(sunxi_iis.regs + SUNXI_IISCLKD);
        regsave[6] = readl(sunxi_iis.regs + SUNXI_TXCHSEL);
diff --git a/sound/soc/sunxi/i2s/sunxi-i2s.h b/sound/soc/sunxi/i2s/sunxi-i2s.h
index da62081..2f5fdb1 100644
--- a/sound/soc/sunxi/i2s/sunxi-i2s.h
+++ b/sound/soc/sunxi/i2s/sunxi-i2s.h
@@ -133,7 +133,7 @@
        #define SUNXI_IISCLKD_MCLKDIV_12                (5 << 0)
        #define SUNXI_IISCLKD_MCLKDIV_16                (6 << 0)
        #define SUNXI_IISCLKD_MCLKDIV_24                (7 << 0)
-       #define SUNXI_IISCLKD_MCLKDIV_3                 (8 << 0)
+       #define SUNXI_IISCLKD_MCLKDIV_32                (8 << 0)
        #define SUNXI_IISCLKD_MCLKDIV_48                (9 << 0)
        #define SUNXI_IISCLKD_MCLKDIV_64                (10 << 0)
 
@@ -142,6 +142,7 @@
 #define SUNXI_IISRXCNT         (0x2C)
 
 #define SUNXI_TXCHSEL          (0x30)
+       #define SUNXI_TXCHSEL_MASK                      (7 << 0)
        #define SUNXI_TXCHSEL_CHNUM(v)                  (((v)-1) << 0)
 
 #define SUNXI_TXCHMAP          (0x34)
-- 
1.9.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to