diff options
-rw-r--r-- | drivers/bcma/driver_chipcommon.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/bcma/driver_chipcommon.c b/drivers/bcma/driver_chipcommon.c index ffd74e51f02d..ef6855398b86 100644 --- a/drivers/bcma/driver_chipcommon.c +++ b/drivers/bcma/driver_chipcommon.c | |||
@@ -4,6 +4,7 @@ | |||
4 | * | 4 | * |
5 | * Copyright 2005, Broadcom Corporation | 5 | * Copyright 2005, Broadcom Corporation |
6 | * Copyright 2006, 2007, Michael Buesch <m@bues.ch> | 6 | * Copyright 2006, 2007, Michael Buesch <m@bues.ch> |
7 | * Copyright 2012, Hauke Mehrtens <hauke@hauke-m.de> | ||
7 | * | 8 | * |
8 | * Licensed under the GNU/GPL. See COPYING for details. | 9 | * Licensed under the GNU/GPL. See COPYING for details. |
9 | */ | 10 | */ |
@@ -22,6 +23,14 @@ static inline u32 bcma_cc_write32_masked(struct bcma_drv_cc *cc, u16 offset, | |||
22 | return value; | 23 | return value; |
23 | } | 24 | } |
24 | 25 | ||
26 | static u32 bcma_chipco_alp_clock(struct bcma_drv_cc *cc) | ||
27 | { | ||
28 | if (cc->capabilities & BCMA_CC_CAP_PMU) | ||
29 | return bcma_pmu_alp_clock(cc); | ||
30 | |||
31 | return 20000000; | ||
32 | } | ||
33 | |||
25 | void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc) | 34 | void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc) |
26 | { | 35 | { |
27 | if (cc->early_setup_done) | 36 | if (cc->early_setup_done) |
@@ -131,8 +140,7 @@ void bcma_chipco_serial_init(struct bcma_drv_cc *cc) | |||
131 | struct bcma_serial_port *ports = cc->serial_ports; | 140 | struct bcma_serial_port *ports = cc->serial_ports; |
132 | 141 | ||
133 | if (ccrev >= 11 && ccrev != 15) { | 142 | if (ccrev >= 11 && ccrev != 15) { |
134 | /* Fixed ALP clock */ | 143 | baud_base = bcma_chipco_alp_clock(cc); |
135 | baud_base = bcma_pmu_alp_clock(cc); | ||
136 | if (ccrev >= 21) { | 144 | if (ccrev >= 21) { |
137 | /* Turn off UART clock before switching clocksource. */ | 145 | /* Turn off UART clock before switching clocksource. */ |
138 | bcma_cc_write32(cc, BCMA_CC_CORECTL, | 146 | bcma_cc_write32(cc, BCMA_CC_CORECTL, |