From e41d42803fe1bcf67178500085d8be65f61749fa Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 17 Mar 2009 11:28:54 +0000 Subject: [brcm63xx] fix SPI register switch and prepare for UDC, thanks to Henk Vergonet (#4783) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14914 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../linux/brcm63xx/files/arch/mips/bcm63xx/clk.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c') diff --git a/target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c b/target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c index ae1f41fe5..ce93c30e8 100644 --- a/target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c +++ b/target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c @@ -136,6 +136,26 @@ static struct clk clk_usbh = { .set = usbh_set, }; +/* + * USB slave clock + */ +static void usbs_set(struct clk *clk, int enable) +{ + u32 mask; + + switch(bcm63xx_get_cpu_id()) { + case BCM6338_CPU_ID: mask = CKCTL_6338_USBS_EN; break; + case BCM6348_CPU_ID: mask = CKCTL_6348_USBS_EN; break; + default: + return; + } + bcm_hwclock_set(mask, enable); +} + +static struct clk clk_usbs = { + .set = usbs_set, +}; + /* * SPI clock */ @@ -202,6 +222,8 @@ struct clk *clk_get(struct device *dev, const char *id) return &clk_ephy; if (!strcmp(id, "usbh")) return &clk_usbh; + if (!strcmp(id, "usbs")) + return &clk_usbs; if (!strcmp(id, "spi")) return &clk_spi; if (!strcmp(id, "periph")) -- cgit v1.2.3