coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
qusb_phy.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
device/mmio.h
>
4
#include <
console/console.h
>
5
6
#define PORT_TUNE1_MASK 0xf0
7
8
/* QUSB2PHY_PWR_CTRL1 register related bits */
9
#define POWER_DOWN BIT(0)
10
11
/* DEBUG_CTRL2 register value to program VSTATUS MUX for PHY status */
12
#define DEBUG_CTRL2_MUX_PLL_LOCK_STATUS 0x4
13
14
/* STAT5 register bits */
15
#define VSTATUS_PLL_LOCK_STATUS_MASK BIT(0)
16
17
/* QUSB PHY register values */
18
#define QUSB2PHY_PLL_ANALOG_CONTROLS_TWO 0x03
19
#define QUSB2PHY_PLL_CLOCK_INVERTERS 0x7c
20
#define QUSB2PHY_PLL_CMODE 0x80
21
#define QUSB2PHY_PLL_LOCK_DELAY 0x0a
22
#define QUSB2PHY_PLL_DIGITAL_TIMERS_TWO 0x19
23
#define QUSB2PHY_PLL_BIAS_CONTROL_1 0x40
24
#define QUSB2PHY_PLL_BIAS_CONTROL_2 0x22
25
#define QUSB2PHY_PWR_CTRL2 0x21
26
#define QUSB2PHY_IMP_CTRL1 0x08
27
#define QUSB2PHY_IMP_CTRL2 0x58
28
#define QUSB2PHY_PORT_TUNE1 0xc5
29
#define QUSB2PHY_PORT_TUNE2 0x29
30
#define QUSB2PHY_PORT_TUNE3 0xca
31
#define QUSB2PHY_PORT_TUNE4 0x04
32
#define QUSB2PHY_PORT_TUNE5 0x03
33
#define QUSB2PHY_CHG_CTRL2 0x30
34
35
36
#define QFPROM_BASE 0x00780000
37
#define QUSB_PRIM_PHY_BASE 0x088e3000
38
#define QUSB_PRIM_PHY_DIG_BASE 0x088e3200
39
40
#define HS_USB_PRIM_PHY_BASE QUSB_PRIM_PHY_BASE
41
42
struct
usb_board_data
{
43
/* Register values going to override from the boardfile */
44
u32
pll_bias_control_2
;
45
u32
imp_ctrl1
;
46
u32
port_tune1
;
47
};
48
49
struct
usb_qusb_phy_dig
{
50
u8
rsvd1
[16];
51
u32
pwr_ctrl1
;
52
u32
pwr_ctrl2
;
53
u8
rsvd2
[8];
54
u32
imp_ctrl1
;
55
u32
imp_ctrl2
;
56
u8
rsvd3
[20];
57
u32
chg_ctrl2
;
58
u32
tune1
;
59
u32
tune2
;
60
u32
tune3
;
61
u32
tune4
;
62
u32
tune5
;
63
u8
rsvd4
[44];
64
u32
debug_ctrl2
;
65
u8
rsvd5
[28];
66
u32
debug_stat5
;
67
};
68
check_member
(
usb_qusb_phy_dig
, tune5, 0x50);
69
check_member
(
usb_qusb_phy_dig
, debug_ctrl2, 0x80);
70
check_member
(
usb_qusb_phy_dig
, debug_stat5, 0xA0);
71
72
struct
usb_qusb_phy_pll
{
73
u8
rsvd0
[4];
74
u32
analog_controls_two
;
75
u8
rsvd1
[36];
76
u32
cmode
;
77
u8
rsvd2
[132];
78
u32
dig_tim
;
79
u8
rsvd3
[204];
80
u32
lock_delay
;
81
u8
rsvd4
[4];
82
u32
clock_inverters
;
83
u8
rsvd5
[4];
84
u32
bias_ctrl_1
;
85
u32
bias_ctrl_2
;
86
};
87
check_member
(
usb_qusb_phy_pll
, cmode, 0x2C);
88
check_member
(
usb_qusb_phy_pll
, bias_ctrl_2, 0x198);
89
check_member
(
usb_qusb_phy_pll
, dig_tim, 0xB4);
90
91
struct
hs_usb_phy_reg
{
92
struct
usb_qusb_phy_pll
*
phy_pll
;
93
struct
usb_qusb_phy_dig
*
phy_dig
;
94
struct
usb_board_data
*
board_data
;
95
u32
efuse_offset
;
96
};
console.h
mmio.h
check_member
check_member(usb_qusb_phy_dig, tune5, 0x50)
u32
uint32_t u32
Definition:
stdint.h:51
u8
uint8_t u8
Definition:
stdint.h:45
hs_usb_phy_reg
Definition:
qusb_phy.h:91
hs_usb_phy_reg::board_data
struct usb_board_data * board_data
Definition:
qusb_phy.h:94
hs_usb_phy_reg::phy_dig
struct usb_qusb_phy_dig * phy_dig
Definition:
qusb_phy.h:93
hs_usb_phy_reg::phy_pll
struct usb_qusb_phy_pll * phy_pll
Definition:
qusb_phy.h:92
hs_usb_phy_reg::efuse_offset
u32 efuse_offset
Definition:
qusb_phy.h:95
usb_board_data
Definition:
qusb_phy.h:42
usb_board_data::pll_bias_control_2
u32 pll_bias_control_2
Definition:
qusb_phy.h:44
usb_board_data::imp_ctrl1
u32 imp_ctrl1
Definition:
qusb_phy.h:45
usb_board_data::port_tune1
u32 port_tune1
Definition:
qusb_phy.h:46
usb_qusb_phy_dig
Definition:
qusb_phy.h:49
usb_qusb_phy_dig::tune5
u32 tune5
Definition:
qusb_phy.h:62
usb_qusb_phy_dig::tune3
u32 tune3
Definition:
qusb_phy.h:60
usb_qusb_phy_dig::rsvd1
u8 rsvd1[16]
Definition:
qusb_phy.h:50
usb_qusb_phy_dig::tune4
u32 tune4
Definition:
qusb_phy.h:61
usb_qusb_phy_dig::pwr_ctrl2
u32 pwr_ctrl2
Definition:
qusb_phy.h:52
usb_qusb_phy_dig::rsvd3
u8 rsvd3[20]
Definition:
qusb_phy.h:56
usb_qusb_phy_dig::debug_ctrl2
u32 debug_ctrl2
Definition:
qusb_phy.h:64
usb_qusb_phy_dig::imp_ctrl2
u32 imp_ctrl2
Definition:
qusb_phy.h:55
usb_qusb_phy_dig::tune1
u32 tune1
Definition:
qusb_phy.h:58
usb_qusb_phy_dig::rsvd4
u8 rsvd4[44]
Definition:
qusb_phy.h:63
usb_qusb_phy_dig::imp_ctrl1
u32 imp_ctrl1
Definition:
qusb_phy.h:54
usb_qusb_phy_dig::rsvd5
u8 rsvd5[28]
Definition:
qusb_phy.h:65
usb_qusb_phy_dig::debug_stat5
u32 debug_stat5
Definition:
qusb_phy.h:66
usb_qusb_phy_dig::rsvd2
u8 rsvd2[8]
Definition:
qusb_phy.h:53
usb_qusb_phy_dig::chg_ctrl2
u32 chg_ctrl2
Definition:
qusb_phy.h:57
usb_qusb_phy_dig::tune2
u32 tune2
Definition:
qusb_phy.h:59
usb_qusb_phy_dig::pwr_ctrl1
u32 pwr_ctrl1
Definition:
qusb_phy.h:51
usb_qusb_phy_pll
Definition:
qusb_phy.h:72
usb_qusb_phy_pll::analog_controls_two
u32 analog_controls_two
Definition:
qusb_phy.h:74
usb_qusb_phy_pll::rsvd5
u8 rsvd5[4]
Definition:
qusb_phy.h:83
usb_qusb_phy_pll::bias_ctrl_1
u32 bias_ctrl_1
Definition:
qusb_phy.h:84
usb_qusb_phy_pll::rsvd1
u8 rsvd1[36]
Definition:
qusb_phy.h:75
usb_qusb_phy_pll::rsvd4
u8 rsvd4[4]
Definition:
qusb_phy.h:81
usb_qusb_phy_pll::dig_tim
u32 dig_tim
Definition:
qusb_phy.h:78
usb_qusb_phy_pll::bias_ctrl_2
u32 bias_ctrl_2
Definition:
qusb_phy.h:85
usb_qusb_phy_pll::rsvd2
u8 rsvd2[132]
Definition:
qusb_phy.h:77
usb_qusb_phy_pll::clock_inverters
u32 clock_inverters
Definition:
qusb_phy.h:82
usb_qusb_phy_pll::cmode
u32 cmode
Definition:
qusb_phy.h:76
usb_qusb_phy_pll::rsvd0
u8 rsvd0[4]
Definition:
qusb_phy.h:73
usb_qusb_phy_pll::lock_delay
u32 lock_delay
Definition:
qusb_phy.h:80
usb_qusb_phy_pll::rsvd3
u8 rsvd3[204]
Definition:
qusb_phy.h:79
src
soc
qualcomm
common
include
soc
usb
qusb_phy.h
Generated by
1.9.1