X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm63xx%2Ffiles%2Farch%2Fmips%2Fbcm63xx%2Fclk.c;h=ce93c30e867d1fcac7d6d82d95a6863884adf484;hb=e41d42803fe1bcf67178500085d8be65f61749fa;hp=ae1f41fe520e46fd65051b542a23245b694cefe3;hpb=1b48ac40e8a904489b2f4151acb359d5ad7532ea;p=openwrt-10.03%2F.git 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"))