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: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
Родитель
76fe1ffce9
Коммит
c0a2015965
|
@ -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 @@
|
||||||
#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)
|
||||||
|
|
||||||
/* 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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче