Commit c0a20159 authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Kumar Gala

powerpc/83xx: fix ULPI setup for MPC8315 processors

We must not use MPC831X_SICR[HL]_* definitions for the MPC8315 processors,
because SICR USB bits locations are not compatible with MPC8313.

This patch fixes ULPI workability on MPC8315E-RDB boards.
Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent 76fe1ffc
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
#define MPC834X_SICRL_USB1 0x20000000 #define MPC834X_SICRL_USB1 0x20000000
#define MPC831X_SICRL_USB_MASK 0x00000c00 #define MPC831X_SICRL_USB_MASK 0x00000c00
#define MPC831X_SICRL_USB_ULPI 0x00000800 #define MPC831X_SICRL_USB_ULPI 0x00000800
#define MPC8315_SICRL_USB_MASK 0x000000fc
#define MPC8315_SICRL_USB_ULPI 0x00000054
#define MPC837X_SICRL_USB_MASK 0xf0000000 #define MPC837X_SICRL_USB_MASK 0xf0000000
#define MPC837X_SICRL_USB_ULPI 0x50000000 #define MPC837X_SICRL_USB_ULPI 0x50000000
...@@ -34,6 +36,8 @@ ...@@ -34,6 +36,8 @@
#define MPC834X_SICRH_USB_UTMI 0x00020000 #define MPC834X_SICRH_USB_UTMI 0x00020000
#define MPC831X_SICRH_USB_MASK 0x000000e0 #define MPC831X_SICRH_USB_MASK 0x000000e0
#define MPC831X_SICRH_USB_ULPI 0x000000a0 #define MPC831X_SICRH_USB_ULPI 0x000000a0
#define MPC8315_SICRH_USB_MASK 0x0000ff00
#define MPC8315_SICRH_USB_ULPI 0x00000000
/* USB Control Register */ /* USB Control Register */
#define FSL_USB2_CONTROL_OFFS 0x500 #define FSL_USB2_CONTROL_OFFS 0x500
......
...@@ -137,15 +137,21 @@ int mpc831x_usb_cfg(void) ...@@ -137,15 +137,21 @@ int mpc831x_usb_cfg(void)
/* Configure pin mux for ULPI. There is no pin mux for UTMI */ /* Configure pin mux for ULPI. There is no pin mux for UTMI */
if (prop && !strcmp(prop, "ulpi")) { if (prop && !strcmp(prop, "ulpi")) {
temp = in_be32(immap + MPC83XX_SICRL_OFFS); if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) {
temp &= ~MPC831X_SICRL_USB_MASK; clrsetbits_be32(immap + MPC83XX_SICRL_OFFS,
temp |= MPC831X_SICRL_USB_ULPI; MPC8315_SICRL_USB_MASK,
out_be32(immap + MPC83XX_SICRL_OFFS, temp); MPC8315_SICRL_USB_ULPI);
clrsetbits_be32(immap + MPC83XX_SICRH_OFFS,
temp = in_be32(immap + MPC83XX_SICRH_OFFS); MPC8315_SICRH_USB_MASK,
temp &= ~MPC831X_SICRH_USB_MASK; MPC8315_SICRH_USB_ULPI);
temp |= MPC831X_SICRH_USB_ULPI; } else {
out_be32(immap + MPC83XX_SICRH_OFFS, temp); clrsetbits_be32(immap + MPC83XX_SICRL_OFFS,
MPC831X_SICRL_USB_MASK,
MPC831X_SICRL_USB_ULPI);
clrsetbits_be32(immap + MPC83XX_SICRH_OFFS,
MPC831X_SICRH_USB_MASK,
MPC831X_SICRH_USB_ULPI);
}
} }
iounmap(immap); iounmap(immap);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment