coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
snps_usb_phy.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <soc/usb/snps_usb_phy.h>
4 #include <soc/addressmap.h>
5 #include <commonlib/helpers.h>
6 #include <soc/usb/usb_common.h>
7 
8 #define SLEEPM BIT(0)
9 
10 #define TERMSEL BIT(5)
11 
12 #define POR BIT(1)
13 
14 #define FSEL_MASK GENMASK(7, 5)
15 #define FSEL_DEFAULT (0x3 << 4)
16 
17 #define VBUSVLDEXTSEL0 BIT(4)
18 #define PLLBTUNE BIT(5)
19 
20 #define VREGBYPASS BIT(0)
21 
22 #define VBUSVLDEXT0 BIT(0)
23 
24 #define USB2_SUSPEND_N BIT(2)
25 #define USB2_SUSPEND_N_SEL BIT(3)
26 
27 #define UTMI_PHY_CMN_CTRL_OVERRIDE_EN BIT(1)
28 
29 #define REFCLK_SEL_MASK GENMASK(1, 0)
30 #define REFCLK_SEL_DEFAULT (0x2 << 0)
31 
32 #define PARAM_OVRD_MASK 0xFF
33 
35 
37 {
38  struct usb_board_data *override_data =
39  (struct usb_board_data *) board_data;
40 
43 
45 
47 
49 
52 
55 
57 
58  if (board_data) {
60  PARAM_OVRD_MASK, override_data->parameter_override_x0);
61 
63  PARAM_OVRD_MASK, override_data->parameter_override_x1);
64 
66  PARAM_OVRD_MASK, override_data->parameter_override_x2);
67 
69  PARAM_OVRD_MASK, override_data->parameter_override_x3);
70  }
72 
76 
78 
80 
82 
84 
85  printk(BIOS_DEBUG, "USB HS PHY initialized\n");
86 }
#define printk(level,...)
Definition: stdlib.h:16
#define clrsetbits32(addr, clear, set)
Definition: mmio.h:16
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
#define HS_USB_PRIM_PHY_BASE
Definition: qusb_phy.h:40
void hs_usb_phy_init(void *board_data)
Definition: snps_usb_phy.c:36
#define USB2_SUSPEND_N_SEL
Definition: snps_usb_phy.c:25
#define UTMI_PHY_CMN_CTRL_OVERRIDE_EN
Definition: snps_usb_phy.c:27
#define VBUSVLDEXT0
Definition: snps_usb_phy.c:22
#define POR
Definition: snps_usb_phy.c:12
#define SLEEPM
Definition: snps_usb_phy.c:8
struct hs_usb_phy_reg * hs_phy_reg
Definition: snps_usb_phy.c:34
#define FSEL_MASK
Definition: snps_usb_phy.c:14
#define REFCLK_SEL_DEFAULT
Definition: snps_usb_phy.c:30
#define REFCLK_SEL_MASK
Definition: snps_usb_phy.c:29
#define USB2_SUSPEND_N
Definition: snps_usb_phy.c:24
#define PARAM_OVRD_MASK
Definition: snps_usb_phy.c:32
#define VBUSVLDEXTSEL0
Definition: snps_usb_phy.c:17
#define VREGBYPASS
Definition: snps_usb_phy.c:20
#define PLLBTUNE
Definition: snps_usb_phy.c:18
u32 hs_phy_override_x2
Definition: snps_usb_phy.h:28
u32 hs_phy_override_x1
Definition: snps_usb_phy.h:27
u32 hs_phy_override_x3
Definition: snps_usb_phy.h:29
u32 hs_phy_ctrl_common0
Definition: snps_usb_phy.h:20
struct usb_board_data * board_data
Definition: qusb_phy.h:94
u32 hs_phy_ctrl_common2
Definition: snps_usb_phy.h:22
u32 hs_phy_ctrl_common1
Definition: snps_usb_phy.h:21
u32 hs_phy_override_x0
Definition: snps_usb_phy.h:26
u8 parameter_override_x2
Definition: snps_usb_phy.h:10
u8 parameter_override_x0
Definition: snps_usb_phy.h:8
u8 parameter_override_x3
Definition: snps_usb_phy.h:11
u8 parameter_override_x1
Definition: snps_usb_phy.h:9