ASoC: sgtl5000: add delay before first I2C access
authorEric Nelson <eric.nelson@boundarydevices.com>
Fri, 30 Jan 2015 21:07:55 +0000 (14:07 -0700)
committerMark Brown <broonie@kernel.org>
Tue, 3 Feb 2015 13:08:41 +0000 (13:08 +0000)
To quote from section 1.3.1 of the data sheet:
The SGTL5000 has an internal reset that is deasserted
8 SYS_MCLK cycles after all power rails have been brought
up. After this time, communication can start

...
1.0us represents 8 SYS_MCLK cycles at the minimum 8.0 MHz SYS_MCLK.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
sound/soc/codecs/sgtl5000.c

index 7665016a79ce5e23d7eeff3fbd66899c1f769880..aa98be32bb60cfdb37ed150b4cffabf7dd4ee071 100644 (file)
@@ -1462,6 +1462,9 @@ static int sgtl5000_i2c_probe(struct i2c_client *client,
        if (ret)
                return ret;
 
+       /* Need 8 clocks before I2C accesses */
+       udelay(1);
+
        /* read chip information */
        ret = regmap_read(sgtl5000->regmap, SGTL5000_CHIP_ID, &reg);
        if (ret)