powerpc/p1022ds: set the clock-frequency prop only if the clock is enabled
authorTimur Tabi <timur@freescale.com>
Wed, 8 Jun 2011 17:10:49 +0000 (12:10 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 9 Jun 2011 20:53:38 +0000 (15:53 -0500)
The clock-frequency property in an audio codec's device tree node is set to
the input clock frequency for that codec.  On the Freescale P1022DS board,
the input clock is enabled only if the hwconfig 'audclk' option is set.
Therefore, the property should only be set in the device tree if the clock
is actually enabled.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
board/freescale/p1022ds/p1022ds.c

index 8ef627fc7b452cbf64b67f59ef5b80b25f7a547b..456d9b0e3422d93013d8c1ad26635d18461f9836 100644 (file)
@@ -308,7 +308,8 @@ int board_eth_init(bd_t *bis)
  * ft_codec_setup - fix up the clock-frequency property of the codec node
  *
  * Update the clock-frequency property based on the value of the 'audclk'
- * hwconfig option.  If audclk is not specified, then default to 12.288MHz.
+ * hwconfig option.  If audclk is not specified, then don't write anything
+ * to the device tree, because it means that the codec clock is disabled.
  */
 static void ft_codec_setup(void *blob, const char *compatible)
 {
@@ -317,12 +318,15 @@ static void ft_codec_setup(void *blob, const char *compatible)
        u32 freq;
 
        audclk = hwconfig_arg("audclk", &arglen);
-       if (audclk && (strncmp(audclk, "11", 2) == 0))
-               freq = 11289600;
-       else
-               freq = 12288000;
+       if (audclk) {
+               if (strncmp(audclk, "11", 2) == 0)
+                       freq = 11289600;
+               else
+                       freq = 12288000;
 
-       do_fixup_by_compat_u32(blob, compatible, "clock-frequency", freq, 1);
+               do_fixup_by_compat_u32(blob, compatible, "clock-frequency",
+                                      freq, 1);
+       }
 }
 
 void ft_board_setup(void *blob, bd_t *bd)