diff options
Diffstat (limited to 'arch/powerpc/platforms/83xx/usb.c')
-rw-r--r-- | arch/powerpc/platforms/83xx/usb.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/83xx/usb.c b/arch/powerpc/platforms/83xx/usb.c index 471fdd8f4108..64bcf0a33c71 100644 --- a/arch/powerpc/platforms/83xx/usb.c +++ b/arch/powerpc/platforms/83xx/usb.c | |||
@@ -129,7 +129,7 @@ int mpc831x_usb_cfg(void) | |||
129 | if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) | 129 | if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) |
130 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, | 130 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, |
131 | MPC8315_SCCR_USB_MASK, | 131 | MPC8315_SCCR_USB_MASK, |
132 | MPC8315_SCCR_USB_DRCM_11); | 132 | MPC8315_SCCR_USB_DRCM_01); |
133 | else | 133 | else |
134 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, | 134 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, |
135 | MPC83XX_SCCR_USB_MASK, | 135 | MPC83XX_SCCR_USB_MASK, |
@@ -164,9 +164,15 @@ int mpc831x_usb_cfg(void) | |||
164 | /* Using on-chip PHY */ | 164 | /* Using on-chip PHY */ |
165 | if (prop && (!strcmp(prop, "utmi_wide") || | 165 | if (prop && (!strcmp(prop, "utmi_wide") || |
166 | !strcmp(prop, "utmi"))) { | 166 | !strcmp(prop, "utmi"))) { |
167 | /* Set UTMI_PHY_EN, REFSEL to 48MHZ */ | 167 | u32 refsel; |
168 | |||
169 | if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) | ||
170 | refsel = CONTROL_REFSEL_24MHZ; | ||
171 | else | ||
172 | refsel = CONTROL_REFSEL_48MHZ; | ||
173 | /* Set UTMI_PHY_EN and REFSEL */ | ||
168 | out_be32(usb_regs + FSL_USB2_CONTROL_OFFS, | 174 | out_be32(usb_regs + FSL_USB2_CONTROL_OFFS, |
169 | CONTROL_UTMI_PHY_EN | CONTROL_REFSEL_48MHZ); | 175 | CONTROL_UTMI_PHY_EN | refsel); |
170 | /* Using external UPLI PHY */ | 176 | /* Using external UPLI PHY */ |
171 | } else if (prop && !strcmp(prop, "ulpi")) { | 177 | } else if (prop && !strcmp(prop, "ulpi")) { |
172 | /* Set PHY_CLK_SEL to ULPI */ | 178 | /* Set PHY_CLK_SEL to ULPI */ |