[alsa-devel] [PATCH 1/4] ASoC: sgtl5000: give it a ramping time before writting
Fabio Estevam
festevam at gmail.com
Mon Jul 1 15:14:14 EDT 2013
Hi Marek,
On Mon, Jul 1, 2013 at 2:43 PM, Marek Vasut <marex at denx.de> wrote:
> I think you can just disable the PIO mode altogether (around line 500 ... if
> (msg->len < 8) ... replace this with if (0) ) and then the problem should not be
> there (if it's a PIO problem).
Yes, this is a good suggestion.
This is what I did on 3.10 kernel:
- Booted a 3.10 kernel, audio is probed correctly
- Enabled touchscreen:
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -181,6 +181,7 @@
lradc at 80050000 {
status = "okay";
+ fsl,lradc-touchscreen-wires = <4>;
};
Then audio fails to probe:
[ 3.854263] sgtl5000 0-000a: Device with ID register 0 is not a sgtl5000
[ 5.875286] sgtl5000 0-000a: ASoC: failed to probe CODEC -19
[ 5.881522] mxs-sgtl5000 sound.12: ASoC: failed to instantiate card -19
[ 5.891010] mxs-sgtl5000 sound.12: snd_soc_register_card failed (-19)
- Removed PIO from i2c, then audio probes again
--- a/drivers/i2c/busses/i2c-mxs.c
+++ b/drivers/i2c/busses/i2c-mxs.c
@@ -494,7 +494,7 @@ static int mxs_i2c_xfer_msg(struct i2c_adapter
*adap, struct i2c_msg *msg,
* based on this empirical measurement and a lot of previous frobbing.
*/
i2c->cmd_err = 0;
- if (msg->len < 8) {
+ if (0) {
ret = mxs_i2c_pio_setup_xfer(adap, msg, flags);
if (ret)
mxs_i2c_reset(i2c);
Really don't know why enabling the touchscreen triggers the i2c error
during the codec reading though.
More information about the linux-arm-kernel
mailing list