This patch modifies the MAX98095 audio codec to support I2S0 channel in codec slave mode.
Signed-off-by: Dani Krishna Mohan <krishna...@samsung.com> --- changes in V2: - New patch added to V2 drivers/sound/max98095.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/drivers/sound/max98095.c b/drivers/sound/max98095.c index d69db58..a8b0319 100644 --- a/drivers/sound/max98095.c +++ b/drivers/sound/max98095.c @@ -145,11 +145,11 @@ static int max98095_hw_params(struct max98095_priv *max98095, switch (bits_per_sample) { case 16: - error = max98095_update_bits(M98095_034_DAI2_FORMAT, + error = max98095_update_bits(M98095_02A_DAI1_FORMAT, M98095_DAI_WS, 0); break; case 24: - error = max98095_update_bits(M98095_034_DAI2_FORMAT, + error = max98095_update_bits(M98095_02A_DAI1_FORMAT, M98095_DAI_WS, M98095_DAI_WS); break; default: @@ -165,15 +165,15 @@ static int max98095_hw_params(struct max98095_priv *max98095, } max98095->rate = rate; - error |= max98095_update_bits(M98095_031_DAI2_CLKMODE, + error |= max98095_update_bits(M98095_027_DAI1_CLKMODE, M98095_CLKMODE_MASK, regval); /* Update sample rate mode */ if (rate < 50000) - error |= max98095_update_bits(M98095_038_DAI2_FILTERS, + error |= max98095_update_bits(M98095_02E_DAI1_FILTERS, M98095_DAI_DHF, 0); else - error |= max98095_update_bits(M98095_038_DAI2_FILTERS, + error |= max98095_update_bits(M98095_02E_DAI1_FILTERS, M98095_DAI_DHF, M98095_DAI_DHF); if (error < 0) { @@ -248,9 +248,9 @@ static int max98095_set_fmt(struct max98095_priv *max98095, int fmt) switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { case SND_SOC_DAIFMT_CBS_CFS: /* Slave mode PLL */ - error |= max98095_i2c_write(M98095_032_DAI2_CLKCFG_HI, + error |= max98095_i2c_write(M98095_028_DAI1_CLKCFG_HI, 0x80); - error |= max98095_i2c_write(M98095_033_DAI2_CLKCFG_LO, + error |= max98095_i2c_write(M98095_029_DAI1_CLKCFG_LO, 0x00); break; case SND_SOC_DAIFMT_CBM_CFM: @@ -292,11 +292,11 @@ static int max98095_set_fmt(struct max98095_priv *max98095, int fmt) return -1; } - error |= max98095_update_bits(M98095_034_DAI2_FORMAT, + error |= max98095_update_bits(M98095_02A_DAI1_FORMAT, M98095_DAI_MAS | M98095_DAI_DLY | M98095_DAI_BCI | M98095_DAI_WCI, regval); - error |= max98095_i2c_write(M98095_035_DAI2_CLOCK, + error |= max98095_i2c_write(M98095_02B_DAI1_CLOCK, M98095_DAI_BSEL64); if (error < 0) { @@ -386,22 +386,15 @@ static int max98095_device_init(struct max98095_priv *max98095) * interface2 to DAC */ error |= max98095_i2c_write(M98095_048_MIX_DAC_LR, - M98095_DAI2M_TO_DACL|M98095_DAI2M_TO_DACR); + M98095_DAI1L_TO_DACL|M98095_DAI1R_TO_DACR); error |= max98095_i2c_write(M98095_092_PWR_EN_OUT, M98095_SPK_SPREADSPECTRUM); - error |= max98095_i2c_write(M98095_045_CFG_DSP, M98095_DSPNORMAL); error |= max98095_i2c_write(M98095_04E_CFG_HP, M98095_HPNORMAL); error |= max98095_i2c_write(M98095_02C_DAI1_IOCFG, M98095_S1NORMAL|M98095_SDATA); - error |= max98095_i2c_write(M98095_036_DAI2_IOCFG, - M98095_S2NORMAL|M98095_SDATA); - - error |= max98095_i2c_write(M98095_040_DAI3_IOCFG, - M98095_S3NORMAL|M98095_SDATA); - /* take the codec out of the shut down */ error |= max98095_update_bits(M98095_097_PWR_SYS, M98095_SHDNRUN, M98095_SHDNRUN); @@ -422,7 +415,7 @@ static int max98095_device_init(struct max98095_priv *max98095) /* Enable DAIs */ error |= max98095_i2c_write(M98095_093_BIAS_CTRL, 0x30); - error |= max98095_i2c_write(M98095_096_PWR_DAC_CK, 0x07); + error |= max98095_i2c_write(M98095_096_PWR_DAC_CK, 0x01); err_access: if (error < 0) -- 1.7.9.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot