Other Parts Discussed in Thread: TUSB1210
主题中讨论的其他器件:TUSB1210
工具/软件:Linux
您好!
我正在使用 DRA74x 芯片和 Linux 版本3.14.57、我在此配置 TUSB1210芯片、它可以正常工作、但进入鼠标系统的 USB1端口将死机、USB4端口不会挂起。我想问您如何在器件树中配置 TUSB1210。 这是我的配置。GPIO5_17是 tusb1210的复位引脚、timer5 nod 是时钟源、为 TUSB1210提供19.2MHz 的频率。
&OMA_dwc3_4{
状态="正常";
extcon =<扩展 con_USB4>;
};
和 timer5{
时钟=<&timer5_gfclk_mux>;
时钟名称="timer_ext_ck";
};
和 USB4{
DR_MODE ="OTG";
SNP、hsphy_interface ="ULPI";
RESET-GPIO =<&GPIO5 17 GPIO_ACTIVE_LOW>;
计时器=<&timer5>;
时钟=<&DPLL_PCIe_ref_ck>、<&DPLL_PCIe_ref_m2_ck>、<&PCIe2_dclk_dclk_ddiv>、<&clkoutmux0_clk_mux>、<&timer5_gfclk_mux>;
时钟名称="PCIe_ref"、"PCIe_ref_m2"、"PCIe2"、"clkout0"、"timer5";
};
以下 是 core.c 中的备选代码:
静态 int dwc3_phy_setup (struct dwc3 * DWC)
{
u32 reg;
int ret = 0;
reg = dwc3_readl (DWC->regs、DWC3_GUSB3PIPECTL (0));
/*
*高于1.94a 时、建议设置 DWC3_GUSB3PIPECTL_SUSPHY
在 coreConsultant 配置期间将*更改为"0"。 因此是默认值
内核复位时*将为'0'。 应用程序需要设置它
内核初始化完成后将*更改为"1"。
*
if (DWC->REVISION > DWC3_REVISION_194A)
reg |= DWC3_GUSB3PIPECTL_SUSPHY;
if (DWC->u2ss_inp3_quirk)
reg |= DWC3_GUSB3PIPECTL_U2SSINP3OK;
if (DWC->req_p1p2p3_quik)
reg |= DWC3_GUSB3PIPECTL_REQP1P2P3;
if (DWC->DEL_p1p2p3_quirik)
reg |= DWC3_GUSB3PIPECTL_DEP1P2P3_EN;
if (DWC->DEL_phy_power_chg_quirik)
reg |= DWC3_GUSB3PIPECTL_DEPOCHANGE;
if (DWC->LFPs_filter_quirk)
reg |= DWC3_GUSB3PIPECTL_LFPSFILT;
if (DWC->Rx_detect_poll_quirk)
reg |= DWC3_GUSB3PIPECTL_RX_DETOPOLL;
if (DWC->TX_DE_Emphasis_quirk)
reg |= DWC3_GUSB3PIPECTL_TX_DEEPH (DWC->TX_DE_Emphasis>);
if (DWC->ds_u3_suspuhy_quirik)
REG &=~DWC3_GUSB3PIPECTL_SUSPHY;
dwc3_writel (DWC->regs、DWC3_GUSB3PIPECTL (0)、reg);
reg = dwc3_readl (DWC->regs、DWC3_GUSB2PHYCFG (0));
/*选择 HS PHY 接口*/
switch (DWC3_GHWPARAMS3_HSPHY_IFC (DWC->hwparams.hwparams3)){
案例 DWC3_GHWPARAMS3_HSPHY_IFC_UTMI_ULPI:
if (DWC->hsphy_interface &&)
!strncmp(DwC->hsphy_interface,"utmi",4)){
REG &=~DWC3_GUSB2PHYCFG_ULPI_UTMI;
中断;
}如果(DWC->hsphy_interface &&),则为其他
!strncmp(DwC->hsphy_interface,"ULPI",4)){
reg |= DWC3_GUSB2PHYCFG_ULPI_UTMI;
dwc3_writel (DWC->regs、DWC3_GUSB2PHYCFG (0)、reg);
}否则{
/*依赖于默认值。 *
IF (!(reg & DWC3_GUSB2PHYCFG_ULPI_UTMI))
中断;
}
/* FALLTHROUGH */
案例 DWC3_GHWPARAMS3_HSPHY_IFC_ULPI:
/*确保接口和 PHY 正常运行*/
RET = dwc3_SOFT_RESET (DWC);
IF (RET)
回程;
tusb1210_clk_init (DWC);
udelay (1);
tusb1210_reset_f (DWC);
RET = dwc3_ULPI_init (DWC);
IF (RET)
回程;
/* FALLTHROUGH */
默认值:
中断;
}
…
}