1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- --- a/arch/mips/bcm63xx/clk.c
- +++ b/arch/mips/bcm63xx/clk.c
- @@ -136,7 +136,11 @@ static struct clk clk_ephy = {
- */
- static void enetsw_set(struct clk *clk, int enable)
- {
- - if (BCMCPU_IS_6328())
- + if (BCMCPU_IS_6318()) {
- + bcm_hwclock_set(CKCTL_6318_ROBOSW250_EN |
- + CKCTL_6318_ROBOSW025_EN, enable);
- + bcm_ub_hwclock_set(UB_CKCTL_6318_ROBOSW_EN, enable);
- + } else if (BCMCPU_IS_6328())
- bcm_hwclock_set(CKCTL_6328_ROBOSW_EN, enable);
- else if (BCMCPU_IS_6362())
- bcm_hwclock_set(CKCTL_6362_ROBOSW_EN, enable);
- @@ -183,18 +187,22 @@ static struct clk clk_pcm = {
- */
- static void usbh_set(struct clk *clk, int enable)
- {
- - if (BCMCPU_IS_6328())
- + if (BCMCPU_IS_6318()) {
- + bcm_hwclock_set(CKCTL_6318_USB_EN, enable);
- + bcm_ub_hwclock_set(UB_CKCTL_6318_USB_EN, enable);
- + } else if (BCMCPU_IS_6328()) {
- bcm_hwclock_set(CKCTL_6328_USBH_EN, enable);
- - else if (BCMCPU_IS_6348())
- + } else if (BCMCPU_IS_6348()) {
- bcm_hwclock_set(CKCTL_6348_USBH_EN, enable);
- - else if (BCMCPU_IS_6362())
- + } else if (BCMCPU_IS_6362()) {
- bcm_hwclock_set(CKCTL_6362_USBH_EN, enable);
- - else if (BCMCPU_IS_6368())
- + } else if (BCMCPU_IS_6368()) {
- bcm_hwclock_set(CKCTL_6368_USBH_EN, enable);
- - else if (BCMCPU_IS_63268())
- + } else if (BCMCPU_IS_63268()) {
- bcm_hwclock_set(CKCTL_63268_USBH_EN, enable);
- - else
- + } else {
- return;
- + }
-
- if (enable)
- msleep(100);
- @@ -408,9 +416,9 @@ struct clk *clk_get(struct device *dev,
- return &clk_enetsw;
- if (!strcmp(id, "ephy"))
- return &clk_ephy;
- - if (!strcmp(id, "usbh"))
- + if (!strcmp(id, "usbh") || (BCMCPU_IS_6318() && !strcmp(id, "usbd")))
- return &clk_usbh;
- - if (!strcmp(id, "usbd"))
- + if (!strcmp(id, "usbd") && !BCMCPU_IS_6318())
- return &clk_usbd;
- if (!strcmp(id, "spi"))
- return &clk_spi;
|