coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
usb.c File Reference
#include <device/mmio.h>
#include <console/console.h>
#include <delay.h>
#include <soc/usb.h>
#include <soc/clock.h>
#include <types.h>
Include dependency graph for usb.c:

Go to the source code of this file.

Data Structures

struct  usb_qscratch
 
struct  usb_usb2_phy_dig
 
struct  usb_dwc3
 
struct  usb_dwc3_cfg
 

Macros

#define USB_HOST0_DWC3_BASE   0x758C100
 
#define USB3_USB30_QSCRATCH_BASE   0x7678800
 
#define USB2_FEMTO_PHY_PRI_BASE   0x007A000
 
#define USB_HOST1_DWC3_BASE   0x78CC100
 
#define USB2_USB30_QSCRATCH_BASE   0x79B8800
 
#define USB2_FEMTO_PHY_SEC_BASE   0x007C000
 

Functions

 check_member (usb_qscratch, qscratch_cfg_reg, 0x08)
 
 check_member (usb_usb2_phy_dig, utmi_ctrl5, 0x74)
 
 check_member (usb_usb2_phy_dig, phy_ctrl1, 0x8C)
 
 check_member (usb_usb2_phy_dig, override_x0, 0x98)
 
 check_member (usb_usb2_phy_dig, tcsr_ctrl, 0xC0)
 
 check_member (usb_usb2_phy_dig, refclk_ctrl, 0xE8)
 
 check_member (usb_dwc3, usb3pipectl, 0x1c0)
 
void reset_usb (enum usb_port port)
 
static void usb2_phy_override_phy_params (struct usb_dwc3_cfg *dwc3)
 
static void hs_usb_phy_init (struct usb_dwc3_cfg *dwc3)
 
static void setup_dwc3 (struct usb_dwc3 *dwc3)
 
void setup_usb_host (enum usb_port port, struct usb_board_data *board_data)
 

Variables

static struct usb_dwc3_cfg usb_host_base [2]
 

Macro Definition Documentation

◆ USB2_FEMTO_PHY_PRI_BASE

#define USB2_FEMTO_PHY_PRI_BASE   0x007A000

Definition at line 13 of file usb.c.

◆ USB2_FEMTO_PHY_SEC_BASE

#define USB2_FEMTO_PHY_SEC_BASE   0x007C000

Definition at line 16 of file usb.c.

◆ USB2_USB30_QSCRATCH_BASE

#define USB2_USB30_QSCRATCH_BASE   0x79B8800

Definition at line 15 of file usb.c.

◆ USB3_USB30_QSCRATCH_BASE

#define USB3_USB30_QSCRATCH_BASE   0x7678800

Definition at line 12 of file usb.c.

◆ USB_HOST0_DWC3_BASE

#define USB_HOST0_DWC3_BASE   0x758C100

Definition at line 11 of file usb.c.

◆ USB_HOST1_DWC3_BASE

#define USB_HOST1_DWC3_BASE   0x78CC100

Definition at line 14 of file usb.c.

Function Documentation

◆ check_member() [1/7]

check_member ( usb_dwc3  ,
usb3pipectl  ,
0x1c0   
)

◆ check_member() [2/7]

check_member ( usb_qscratch  ,
qscratch_cfg_reg  ,
0x08   
)

◆ check_member() [3/7]

check_member ( usb_usb2_phy_dig  ,
override_x0  ,
0x98   
)

◆ check_member() [4/7]

check_member ( usb_usb2_phy_dig  ,
phy_ctrl1  ,
0x8C   
)

◆ check_member() [5/7]

check_member ( usb_usb2_phy_dig  ,
refclk_ctrl  ,
0xE8   
)

◆ check_member() [6/7]

check_member ( usb_usb2_phy_dig  ,
tcsr_ctrl  ,
0xC0   
)

◆ check_member() [7/7]

check_member ( usb_usb2_phy_dig  ,
utmi_ctrl5  ,
0x74   
)

◆ hs_usb_phy_init()

◆ reset_usb()

void reset_usb ( enum usb_port  port)

Definition at line 116 of file usb.c.

References BIOS_INFO, clock_reset_bcr(), printk, usb_dwc3_cfg::usb3_bcr, and usb_host_base.

Here is the call graph for this function:

◆ setup_dwc3()

◆ setup_usb_host()

◆ usb2_phy_override_phy_params()

Variable Documentation

◆ usb_host_base

struct usb_dwc3_cfg usb_host_base[2]
static
Initial value:
= {
.usb_host_dwc3 = (void *)USB_HOST0_DWC3_BASE,
.usb2_phy_dig = (void *)USB2_FEMTO_PHY_PRI_BASE,
.usb2_phy_bcr = (void *)GCC_USB_HS_PHY_CFG_AHB_BCR,
.usb2_phy_por_bcr = (void *)GCC_USB2A_PHY_BCR,
.usb3_bcr = (void *)GCC_USB_30_BCR,
.usb_qscratch_reg = (void *)USB3_USB30_QSCRATCH_BASE,
},
.usb_host_dwc3 = (void *)USB_HOST1_DWC3_BASE,
.usb2_phy_dig = (void *)USB2_FEMTO_PHY_SEC_BASE,
.usb2_phy_bcr = (void *)GCC_QUSB2_PHY_BCR,
.usb2_phy_por_bcr = (void *)GCC_USB2_HS_PHY_ONLY_BCR,
.usb3_bcr = (void *)GCC_USB_HS_BCR,
.usb_qscratch_reg = (void *)USB2_USB30_QSCRATCH_BASE,
},
}
#define GCC_USB_30_BCR
Definition: clock.h:18
#define GCC_QUSB2_PHY_BCR
Definition: clock.h:21
#define GCC_USB_HS_BCR
Definition: clock.h:17
#define GCC_USB_HS_PHY_CFG_AHB_BCR
USB BCR registers.
Definition: clock.h:16
#define GCC_USB2_HS_PHY_ONLY_BCR
Definition: clock.h:20
#define GCC_USB2A_PHY_BCR
Definition: clock.h:19
@ HSUSB_SS_PORT_0
Definition: usb.h:57
@ HSUSB_HS_PORT_1
Definition: usb.h:58
#define USB2_FEMTO_PHY_PRI_BASE
Definition: usb.c:13
#define USB_HOST1_DWC3_BASE
Definition: usb.c:14
#define USB2_FEMTO_PHY_SEC_BASE
Definition: usb.c:16
#define USB3_USB30_QSCRATCH_BASE
Definition: usb.c:12
#define USB2_USB30_QSCRATCH_BASE
Definition: usb.c:15
#define USB_HOST0_DWC3_BASE
Definition: usb.c:11

Definition at line 85 of file usb.c.

Referenced by reset_usb(), and setup_usb_host().