summaryrefslogtreecommitdiffstats
path: root/arch/mips/alchemy/devboards/db1550.c
diff options
context:
space:
mode:
authorManuel Lauss <manuel.lauss@gmail.com>2014-08-20 21:36:32 +0200
committerRalf Baechle <ralf@linux-mips.org>2014-09-22 13:35:47 +0200
commitc02a505e5a7787ee7aa871152ba571e6c1d1dc62 (patch)
tree5eb900f8a3f1e9cc442b80421342379b65d6720c /arch/mips/alchemy/devboards/db1550.c
parent7ec32e4965ae69976de0fb0f340496904e23e113 (diff)
downloadlinux-stable-c02a505e5a7787ee7aa871152ba571e6c1d1dc62.tar.gz
linux-stable-c02a505e5a7787ee7aa871152ba571e6c1d1dc62.tar.bz2
linux-stable-c02a505e5a7787ee7aa871152ba571e6c1d1dc62.zip
MIPS: Alchemy: DB1xxx: Explicitly set 50MHz clock for I2C/SPI units.
Add an explicit call to set the desired rate to get the correct clock routing for the PSC clocks. It wasn't broken before, but now it's less affected by bootloader changes. Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Cc: Linux-MIPS <linux-mips@linux-mips.org> Patchwork: https://patchwork.linux-mips.org/patch/7554/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/alchemy/devboards/db1550.c')
-rw-r--r--arch/mips/alchemy/devboards/db1550.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/mips/alchemy/devboards/db1550.c b/arch/mips/alchemy/devboards/db1550.c
index 7e89936f763e..0fd5177e35ab 100644
--- a/arch/mips/alchemy/devboards/db1550.c
+++ b/arch/mips/alchemy/devboards/db1550.c
@@ -34,12 +34,9 @@ static void __init db1550_hw_setup(void)
void __iomem *base;
unsigned long v;
- /* complete SPI setup: link psc0_intclk to a 48MHz source,
- * and assign GPIO16 to PSC0_SYNC1 (SPI cs# line) as well as PSC1_SYNC
- * for AC97 on PB1550.
+ /* complete pin setup: assign GPIO16 to PSC0_SYNC1 (SPI cs# line)
+ * as well as PSC1_SYNC for AC97 on PB1550.
*/
- v = alchemy_rdsys(AU1000_SYS_CLKSRC);
- alchemy_wrsys(v | 0x000001e0, AU1000_SYS_CLKSRC);
v = alchemy_rdsys(AU1000_SYS_PINFUNC);
alchemy_wrsys(v | 1 | SYS_PF_PSC1_S1, AU1000_SYS_PINFUNC);
@@ -586,11 +583,13 @@ int __init db1550_dev_setup(void)
c = clk_get(NULL, "psc0_intclk");
if (!IS_ERR(c)) {
+ clk_set_rate(c, 50000000);
clk_prepare_enable(c);
clk_put(c);
}
c = clk_get(NULL, "psc2_intclk");
if (!IS_ERR(c)) {
+ clk_set_rate(c, db1550_spi_platdata.mainclk_hz);
clk_prepare_enable(c);
clk_put(c);
}