On Fri, Mar 20, 2009 at 11:56:55AM +0100, Nicolas Ferre wrote:--- a/arch/arm/mach-at91/clock.c
+++ b/arch/arm/mach-at91/clock.c
@@ -45,6 +45,25 @@
#define clk_is_sys(x) ((x)->type & CLK_TYPE_SYSTEM)
+/*
+ * Chips have some kind of clocks : group them by functionality
+ */
+#define cpu_has_utmi() ( cpu_is_at91cap9() \
+ || cpu_is_at91sam9rl())
+
+#define cpu_has_800M_plla() (cpu_is_at91sam9g20())
+
+#define cpu_has_pllb() (!(cpu_is_at91sam9rl()))
Useless parentheses.
+
+#define cpu_has_upll() (0)
Is this for some future chip?
+
+/* USB host HS & FS */
+#define cpu_has_uhp() (!cpu_is_at91sam9rl())
+
+/* USB device FS only */
+#define cpu_has_udpfs() (!(cpu_is_at91sam9rl()))
Useless parentheses.
@@ -175,7 +194,12 @@ static struct clk __init *at91_css_to_cl
case AT91_PMC_CSS_PLLA:
return &plla;
case AT91_PMC_CSS_PLLB:
- return &pllb;
+ if (cpu_has_upll())
+ /* CSS_PLLB == CSS_UPLL */
+ return &utmi_clk;
+ else
+ if (cpu_has_pllb())
+ return &pllb;
Put "else if" on one line?