Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next
[deliverable/linux.git] / arch / arm / mach-pxa / pxa27x.c
index 616cb87b61792544f470110cd6322b2d3ea9d914..69985b06c0dae83e5864bf76691599c6499e4e73 100644 (file)
@@ -53,17 +53,25 @@ static unsigned long ac97_reset_config[] = {
        GPIO95_AC97_nRESET,
 };
 
-void pxa27x_assert_ac97reset(int reset_gpio, int on)
+void pxa27x_configure_ac97reset(int reset_gpio, bool to_gpio)
 {
+       /*
+        * This helper function is used to work around a bug in the pxa27x's
+        * ac97 controller during a warm reset.  The configuration of the
+        * reset_gpio is changed as follows:
+        * to_gpio == true: configured to generic output gpio and driven high
+        * to_gpio == false: configured to ac97 controller alt fn AC97_nRESET
+        */
+
        if (reset_gpio == 113)
-               pxa2xx_mfp_config(on ? &ac97_reset_config[0] :
-                                      &ac97_reset_config[1], 1);
+               pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[0] :
+                                 &ac97_reset_config[1], 1);
 
        if (reset_gpio == 95)
-               pxa2xx_mfp_config(on ? &ac97_reset_config[2] :
-                                      &ac97_reset_config[3], 1);
+               pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[2] :
+                                 &ac97_reset_config[3], 1);
 }
-EXPORT_SYMBOL_GPL(pxa27x_assert_ac97reset);
+EXPORT_SYMBOL_GPL(pxa27x_configure_ac97reset);
 
 /* Crystal clock: 13MHz */
 #define BASE_CLK       13000000
This page took 0.040025 seconds and 5 git commands to generate.