From 2232712c98fe15cda8fcdcd3965f128af1377aae Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Mon, 20 Aug 2007 11:38:12 -0500 Subject: [PATCH] --- yaml --- r: 67315 b: refs/heads/master c: f9234736112bf193e5ab451abbfbdf279cc53137 h: refs/heads/master i: 67313: 83110296143bb82630c46261acee1d4f59d92413 67311: 88c3dd9762ceab9edaa94c44dc79d06a4cae3b64 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/sysdev/fsl_soc.c | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 85d0dae17f9a..35b9e84879d8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 683d00b03eb09a140e25d7f1457d347277bc2619 +refs/heads/master: f9234736112bf193e5ab451abbfbdf279cc53137 diff --git a/trunk/arch/powerpc/sysdev/fsl_soc.c b/trunk/arch/powerpc/sysdev/fsl_soc.c index f3abce11bead..7012e51ae5c6 100644 --- a/trunk/arch/powerpc/sysdev/fsl_soc.c +++ b/trunk/arch/powerpc/sysdev/fsl_soc.c @@ -52,13 +52,13 @@ phys_addr_t get_immrbase(void) soc = of_find_node_by_type(NULL, "soc"); if (soc) { - unsigned int size; + int size; const void *prop = of_get_property(soc, "reg", &size); if (prop) immrbase = of_translate_address(soc, prop); of_node_put(soc); - }; + } return immrbase; } @@ -76,16 +76,23 @@ u32 get_brgfreq(void) if (brgfreq != -1) return brgfreq; - node = of_find_node_by_type(NULL, "cpm"); + node = of_find_compatible_node(NULL, NULL, "fsl,cpm1"); + if (!node) + node = of_find_compatible_node(NULL, NULL, "fsl,cpm2"); + if (!node) + node = of_find_node_by_type(NULL, "cpm"); if (node) { - unsigned int size; - const unsigned int *prop = of_get_property(node, - "brg-frequency", &size); + int size; + const unsigned int *prop; - if (prop) + prop = of_get_property(node, "fsl,brg-frequency", &size); + if (!prop) + prop = of_get_property(node, "brg-frequency", &size); + if (prop && size == 4) brgfreq = *prop; + of_node_put(node); - }; + } return brgfreq; } @@ -103,14 +110,14 @@ u32 get_baudrate(void) node = of_find_node_by_type(NULL, "serial"); if (node) { - unsigned int size; + int size; const unsigned int *prop = of_get_property(node, "current-speed", &size); if (prop) fs_baudrate = *prop; of_node_put(node); - }; + } return fs_baudrate; }