• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
2 
3 #include <device/mmio.h>
4 #include <soc/infracfg.h>
5 #include <soc/pll.h>
6 #include <soc/usb.h>
7 
mtk_usb_prepare(void)8 void mtk_usb_prepare(void)
9 {
10 	mt_pll_set_usb_clock();
11 }
12 
mtk_usb_adjust_phy_shift(void)13 void mtk_usb_adjust_phy_shift(void)
14 {
15 	u32 phy_set_val, write_val;
16 	struct ssusb_sif_port *phy = (void *)(SSUSB_SIF_BASE);
17 
18 	SET32_BITFIELDS(&phy->u3phyd.phyd_reserved,
19 			AUTO_LOAD_DIS, 1);
20 
21 	phy_set_val = read32((void *)USB_PHY_SETTING_REG);
22 
23 	/* TX imp */
24 	write_val = (phy_set_val & TX_IMP_MASK) >> TX_IMP_SHIFT;
25 	SET32_BITFIELDS(&phy->u3phyd.phyd_cal0,
26 			TX_IMP_CAL, write_val,
27 			TX_IMP_CAL_EN, 1);
28 
29 	/* RX imp */
30 	write_val = (phy_set_val & RX_IMP_MASK) >> RX_IMP_SHIFT;
31 	SET32_BITFIELDS(&phy->u3phyd.phyd_cal1,
32 			RX_IMP_CAL, write_val,
33 			RX_IMP_CAL_EN, 1);
34 
35 	/* Intr_cal */
36 	write_val = (phy_set_val & INTR_CAL_MASK) >> INTR_CAL_SHIFT;
37 	SET32_BITFIELDS(&phy->u3phya.phya_reg0,
38 			INTR_CAL, write_val);
39 }
40