19dee205dSramneek mehresh /* 29dee205dSramneek mehresh * Freescale USB Controller 39dee205dSramneek mehresh * 49dee205dSramneek mehresh * Copyright 2013 Freescale Semiconductor, Inc. 59dee205dSramneek mehresh * 6*49d87b13SYork Sun * SPDX-License-Identifier: GPL-2.0+ 79dee205dSramneek mehresh */ 89dee205dSramneek mehresh 99dee205dSramneek mehresh #ifndef _ASM_FSL_USB_H_ 109dee205dSramneek mehresh #define _ASM_FSL_USB_H_ 119dee205dSramneek mehresh 129dee205dSramneek mehresh #ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE 139dee205dSramneek mehresh struct ccsr_usb_port_ctrl { 149dee205dSramneek mehresh u32 ctrl; 159dee205dSramneek mehresh u32 drvvbuscfg; 169dee205dSramneek mehresh u32 pwrfltcfg; 179dee205dSramneek mehresh u32 sts; 189dee205dSramneek mehresh u8 res_14[0xc]; 199dee205dSramneek mehresh u32 bistcfg; 209dee205dSramneek mehresh u32 biststs; 219dee205dSramneek mehresh u32 abistcfg; 229dee205dSramneek mehresh u32 abiststs; 239dee205dSramneek mehresh u8 res_30[0x10]; 249dee205dSramneek mehresh u32 xcvrprg; 259dee205dSramneek mehresh u32 anaprg; 269dee205dSramneek mehresh u32 anadrv; 279dee205dSramneek mehresh u32 anasts; 289dee205dSramneek mehresh }; 299dee205dSramneek mehresh 309dee205dSramneek mehresh struct ccsr_usb_phy { 319dee205dSramneek mehresh u32 id; 329dee205dSramneek mehresh struct ccsr_usb_port_ctrl port1; 339dee205dSramneek mehresh u8 res_50[0xc]; 349dee205dSramneek mehresh u32 tvr; 359dee205dSramneek mehresh u32 pllprg[4]; 369dee205dSramneek mehresh u8 res_70[0x4]; 379dee205dSramneek mehresh u32 anaccfg; 389dee205dSramneek mehresh u32 dbg; 399dee205dSramneek mehresh u8 res_7c[0x4]; 409dee205dSramneek mehresh struct ccsr_usb_port_ctrl port2; 419dee205dSramneek mehresh u8 res_dc[0x334]; 429dee205dSramneek mehresh }; 439dee205dSramneek mehresh 449dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_CTRL_PHY_EN (1 << 0) 459dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN (1 << 1) 469dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PWRFLT_CR_EN (1 << 1) 479dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG1_PHY_DIV (1 << 0) 489dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN (1 << 0) 499dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN (1 << 1) 509dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_FRAC_LPF_EN (1 << 13) 519dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_REF_DIV (1 << 4) 529dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_MFI (5 << 16) 539dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN (1 << 21) 549dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_SYS_CLK_VALID (1 << 0) 559dee205dSramneek mehresh #else 569dee205dSramneek mehresh struct ccsr_usb_phy { 579dee205dSramneek mehresh u8 res0[0x18]; 589dee205dSramneek mehresh u32 usb_enable_override; 599dee205dSramneek mehresh u8 res[0xe4]; 609dee205dSramneek mehresh }; 619dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE 1 629dee205dSramneek mehresh #endif 639dee205dSramneek mehresh 649dee205dSramneek mehresh #endif /*_ASM_FSL_USB_H_ */ 65