Skip to content

Commit af44175

Browse files
committed
ASoC: fsl_micfil: Check the difference for i.MX8 and
Merge series from Shengjiu Wang <[email protected]>: There are some register difference for i.MX8 and i.MX9 REG_MICFIL_FIFO_CTRL definition is updated. REG_MICFIL_FSYNC_CTRL, REG_MICFIL_VERID, REG_MICFIL_PARAM are added from i.MX9.
2 parents e2d124d + aa4f76e commit af44175

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

sound/soc/fsl/fsl_micfil.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ static const struct reg_default fsl_micfil_reg_defaults[] = {
831831
{REG_MICFIL_CTRL1, 0x00000000},
832832
{REG_MICFIL_CTRL2, 0x00000000},
833833
{REG_MICFIL_STAT, 0x00000000},
834-
{REG_MICFIL_FIFO_CTRL, 0x00000007},
834+
{REG_MICFIL_FIFO_CTRL, 0x0000001F},
835835
{REG_MICFIL_FIFO_STAT, 0x00000000},
836836
{REG_MICFIL_DATACH0, 0x00000000},
837837
{REG_MICFIL_DATACH1, 0x00000000},
@@ -855,6 +855,8 @@ static const struct reg_default fsl_micfil_reg_defaults[] = {
855855

856856
static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
857857
{
858+
struct fsl_micfil *micfil = dev_get_drvdata(dev);
859+
858860
switch (reg) {
859861
case REG_MICFIL_CTRL1:
860862
case REG_MICFIL_CTRL2:
@@ -872,9 +874,6 @@ static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
872874
case REG_MICFIL_DC_CTRL:
873875
case REG_MICFIL_OUT_CTRL:
874876
case REG_MICFIL_OUT_STAT:
875-
case REG_MICFIL_FSYNC_CTRL:
876-
case REG_MICFIL_VERID:
877-
case REG_MICFIL_PARAM:
878877
case REG_MICFIL_VAD0_CTRL1:
879878
case REG_MICFIL_VAD0_CTRL2:
880879
case REG_MICFIL_VAD0_STAT:
@@ -883,13 +882,21 @@ static bool fsl_micfil_readable_reg(struct device *dev, unsigned int reg)
883882
case REG_MICFIL_VAD0_NDATA:
884883
case REG_MICFIL_VAD0_ZCD:
885884
return true;
885+
case REG_MICFIL_FSYNC_CTRL:
886+
case REG_MICFIL_VERID:
887+
case REG_MICFIL_PARAM:
888+
if (micfil->soc->use_verid)
889+
return true;
890+
fallthrough;
886891
default:
887892
return false;
888893
}
889894
}
890895

891896
static bool fsl_micfil_writeable_reg(struct device *dev, unsigned int reg)
892897
{
898+
struct fsl_micfil *micfil = dev_get_drvdata(dev);
899+
893900
switch (reg) {
894901
case REG_MICFIL_CTRL1:
895902
case REG_MICFIL_CTRL2:
@@ -899,14 +906,17 @@ static bool fsl_micfil_writeable_reg(struct device *dev, unsigned int reg)
899906
case REG_MICFIL_DC_CTRL:
900907
case REG_MICFIL_OUT_CTRL:
901908
case REG_MICFIL_OUT_STAT: /* Write 1 to Clear */
902-
case REG_MICFIL_FSYNC_CTRL:
903909
case REG_MICFIL_VAD0_CTRL1:
904910
case REG_MICFIL_VAD0_CTRL2:
905911
case REG_MICFIL_VAD0_STAT: /* Write 1 to Clear */
906912
case REG_MICFIL_VAD0_SCONFIG:
907913
case REG_MICFIL_VAD0_NCONFIG:
908914
case REG_MICFIL_VAD0_ZCD:
909915
return true;
916+
case REG_MICFIL_FSYNC_CTRL:
917+
if (micfil->soc->use_verid)
918+
return true;
919+
fallthrough;
910920
default:
911921
return false;
912922
}

sound/soc/fsl/fsl_micfil.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
#define MICFIL_STAT_CHXF(ch) BIT(ch)
7373

7474
/* MICFIL FIFO Control Register -- REG_MICFIL_FIFO_CTRL 0x10 */
75-
#define MICFIL_FIFO_CTRL_FIFOWMK GENMASK(2, 0)
75+
#define MICFIL_FIFO_CTRL_FIFOWMK GENMASK(4, 0)
7676

7777
/* MICFIL FIFO Status Register -- REG_MICFIL_FIFO_STAT 0x14 */
7878
#define MICFIL_FIFO_STAT_FIFOX_OVER(ch) BIT(ch)

0 commit comments

Comments
 (0)