coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
usb.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <device/mmio.h>
4 #include <soc/infracfg.h>
5 #include <soc/pll.h>
6 #include <soc/usb.h>
7 
8 void mtk_usb_prepare(void)
9 {
10  setbits32(&mtk_topckgen->clk_cfg_11_clr, BIT(7) | BIT(15));
12 }
13 
15 {
16  u32 phy_set_val, write_val;
17  struct ssusb_sif_port *phy = (void *)(SSUSB_SIF_BASE);
18 
20  AUTO_LOAD_DIS, 1);
21 
22  phy_set_val = read32((void *)USB_PHY_SETTING_REG);
23 
24  /* TX imp */
25  write_val = (phy_set_val & TX_IMP_MASK) >> TX_IMP_SHIFT;
27  TX_IMP_CAL, write_val,
28  TX_IMP_CAL_EN, 1);
29 
30  /* RX imp */
31  write_val = (phy_set_val & RX_IMP_MASK) >> RX_IMP_SHIFT;
33  RX_IMP_CAL, write_val,
34  RX_IMP_CAL_EN, 1);
35 
36  /* Intr_cal */
37  write_val = (phy_set_val & INTR_CAL_MASK) >> INTR_CAL_SHIFT;
39  INTR_CAL, write_val);
40 }
static uint32_t read32(const void *addr)
Definition: mmio.h:22
#define BIT(nr)
Definition: ec_commands.h:45
#define setbits32(addr, set)
Definition: mmio.h:21
#define SET32_BITFIELDS(addr,...)
Definition: mmio.h:201
static struct mt8195_infracfg_ao_regs *const mt8195_infracfg_ao
Definition: infracfg.h:409
#define mtk_topckgen
Definition: pll_common.h:11
__weak void mtk_usb_adjust_phy_shift(void)
Definition: usb.c:148
__weak void mtk_usb_prepare(void)
Definition: usb.c:143
@ SSUSB_SIF_BASE
Definition: addressmap.h:43
#define TX_IMP_SHIFT
Definition: usb.h:30
#define INTR_CAL_MASK
Definition: usb.h:33
#define RX_IMP_MASK
Definition: usb.h:31
#define RX_IMP_SHIFT
Definition: usb.h:32
#define INTR_CAL_SHIFT
Definition: usb.h:34
#define TX_IMP_MASK
Definition: usb.h:29
#define USB_PHY_SETTING_REG
Definition: usb.h:36
uint32_t u32
Definition: stdint.h:51
u32 phya_reg0
Definition: usb_common.h:143
u32 phyd_reserved
Definition: usb_common.h:137
u32 phyd_cal0
Definition: usb_common.h:134
u32 phyd_cal1
Definition: usb_common.h:135
struct sif_u3phyd u3phyd
Definition: usb.h:10
struct sif_u3phya u3phya
Definition: usb.h:12