Patchwork [U-Boot] powerpc/p1022ds: set the clock-frequency property only if the clock is enabled

login
register
mail settings
Submitter Timur Tabi
Date June 8, 2011, 5:10 p.m.
Message ID <1307553049-1001-1-git-send-email-timur@freescale.com>
Download mbox | patch
Permalink /patch/99511/
State Accepted
Commit 29b83d983392fcb5378b915ee2112bb48b8c05be
Headers show

Comments

Timur Tabi - June 8, 2011, 5:10 p.m.
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 reference
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>
---

This patch fixes a real bug in the P1022DS, so please apply it to 2011.06.

 board/freescale/p1022ds/p1022ds.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)
Kumar Gala - June 9, 2011, 8:55 p.m.
On Jun 9, 2011, at 1:10 AM, Timur Tabi wrote:

> 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 reference
> 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>
> ---
> 
> This patch fixes a real bug in the P1022DS, so please apply it to 2011.06.
> 
> board/freescale/p1022ds/p1022ds.c |   16 ++++++++++------
> 1 files changed, 10 insertions(+), 6 deletions(-)

applied to 85xx

- k

Patch

diff --git a/board/freescale/p1022ds/p1022ds.c b/board/freescale/p1022ds/p1022ds.c
index 8ef627f..456d9b0 100644
--- a/board/freescale/p1022ds/p1022ds.c
+++ b/board/freescale/p1022ds/p1022ds.c
@@ -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)