[U-Boot] [Patch v2, batch 2 15/23] T4/USB: Add USB 2.0 UTMI dual phy support
Andy Fleming
afleming at gmail.com
Thu May 9 02:17:57 CEST 2013
On Mon, Mar 25, 2013 at 12:33 PM, York Sun <yorksun at freescale.com> wrote:
> From: Roy Zang <tie-fei.zang at freescale.com>
>
> T4240 internal UTMI phy is different comparing to previous UTMI PHY
> in P3041.
> This patch adds USB 2.0 UTMI Dual PHY new memory map and enable it for
> T4240.
> The phy timing is very sensitive and moving the phy enable code to
> cpu_init.c will not work.
>
> Signed-off-by: Roy Zang <tie-fei.zang at freescale.com>
> ---
> arch/powerpc/include/asm/config_mpc85xx.h | 3 +--
> arch/powerpc/include/asm/immap_85xx.h | 41
> +++++++++++++++++++++++++++++
> drivers/usb/host/ehci-fsl.c | 21 +++++++++++++++
> 3 files changed, 63 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/config_mpc85xx.h
> b/arch/powerpc/include/asm/config_mpc85xx.h
> index 3740785..ca235dc 100644
> --- a/arch/powerpc/include/asm/config_mpc85xx.h
> +++ b/arch/powerpc/include/asm/config_mpc85xx.h
> @@ -536,8 +536,7 @@
> #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
> #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
> #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
> -#define CONFIG_SYS_FSL_USB1_PHY_ENABLE
> -#define CONFIG_SYS_FSL_USB2_PHY_ENABLE
> +#define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
> #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
> #define CONFIG_SYS_FSL_ERRATUM_A004468
> #define CONFIG_SYS_FSL_ERRATUM_A_004934
> diff --git a/arch/powerpc/include/asm/immap_85xx.h
> b/arch/powerpc/include/asm/immap_85xx.h
> index 8bc047b..29ee38f 100644
> --- a/arch/powerpc/include/asm/immap_85xx.h
> +++ b/arch/powerpc/include/asm/immap_85xx.h
> @@ -2828,12 +2828,53 @@ typedef struct ccsr_pme {
> u8 res4[0x400];
> } ccsr_pme_t;
>
> +#ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
> +struct ccsr_usb_port_ctrl {
> + u32 ctrl;
> + u32 drvvbuscfg;
> + u32 pwrfltcfg;
> + u32 sts;
> + u8 res_14[0xc];
> + u32 bistcfg;
> + u32 biststs;
> + u32 abistcfg;
> + u32 abiststs;
> + u8 res_30[0x10];
> + u32 xcvrprg;
> + u32 anaprg;
> + u32 anadrv;
> + u32 anasts;
> +};
> +
> +struct ccsr_usb_phy {
> + u32 id;
> + struct ccsr_usb_port_ctrl port1;
> + u8 res_50[0xc];
> + u32 tvr;
> + u32 pllprg[4];
> + u8 res_70[0x4];
> + u32 anaccfg;
> + u32 dbg;
> + u8 res_7c[0x4];
> + struct ccsr_usb_port_ctrl port2;
> + u8 res_dc[0x334];
> +} ccsr_usb_phy_t;
>
I get a build error whenever the code attempts to use ccsr_usb_phy_t. Was
this even build-tested? Am I going to find a later patch that fixes this?
Am I running into a compiler version thing, where it's ok to do struct foo
{ } foo_t, without "typedef" before? My impression is that's just for C++...
I'm going to add "typedef" before this struct, and apply the patch, but
please be more careful.
Andy
More information about the U-Boot
mailing list