Lines Matching +full:pin +full:- +full:ctrl +full:- +full:enable

1 // SPDX-License-Identifier: GPL-2.0
13 #include "phy-brcm-usb-init.h"
36 /* Register definitions for the USB CTRL block */
110 void __iomem *usb_mdio = params->regs[BRCM_REGS_USB_MDIO]; in usb_mdio_write_7211b0()
112 addr &= 0x1f; /* 5-bit address */ in usb_mdio_write_7211b0()
128 void __iomem *usb_mdio = params->regs[BRCM_REGS_USB_MDIO]; in usb_mdio_read_7211b0()
130 addr &= 0x1f; /* 5-bit address */ in usb_mdio_read_7211b0()
155 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in xhci_soft_reset() local
156 void __iomem *xhci_gbl = params->regs[BRCM_REGS_XHCI_GBL]; in xhci_soft_reset()
160 USB_CTRL_UNSET(ctrl, USB_PM, XHC_SOFT_RESETB); in xhci_soft_reset()
161 /* De-assert reset */ in xhci_soft_reset()
163 USB_CTRL_SET(ctrl, USB_PM, XHC_SOFT_RESETB); in xhci_soft_reset()
165 if (params->supported_port_modes != USB_CTLR_MODE_DRD) in xhci_soft_reset()
173 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_ipp() local
179 orig_reg = reg = brcm_usb_readl(USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
180 if (params->ipp != 2) in usb_init_ipp()
181 /* override ipp strap pin (if it exits) */ in usb_init_ipp()
186 if (params->ioc) in usb_init_ipp()
188 if (params->ipp == 1) in usb_init_ipp()
190 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
211 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common() local
216 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
218 reg |= params->port_mode; in usb_init_common()
219 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
221 switch (params->supported_port_modes) { in usb_init_common()
223 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
226 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
227 USB_CTRL_SET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
233 bool enable) in usb_wake_enable_7211b0() argument
235 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7211b0() local
237 if (enable) in usb_wake_enable_7211b0()
238 USB_CTRL_SET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
240 USB_CTRL_UNSET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
244 bool enable) in usb_wake_enable_7216() argument
246 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7216() local
248 if (enable) in usb_wake_enable_7216()
249 USB_CTRL_SET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
251 USB_CTRL_UNSET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
256 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7211b0() local
257 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_init_common_7211b0()
258 void __iomem *bdc_ec = params->regs[BRCM_REGS_BDC_EC]; in usb_init_common_7211b0()
262 if (params->syscon_piarbctl) in usb_init_common_7211b0()
263 syscon_piarbctl_init(params->syscon_piarbctl); in usb_init_common_7211b0()
265 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7211b0()
268 if (!params->wake_enabled) { in usb_init_common_7211b0()
276 /* temporarily enable FSM so PHY comes up properly */ in usb_init_common_7211b0()
294 while (timeout_ms-- > 0) { in usb_init_common_7211b0()
304 reg |= params->supported_port_modes << USB_PHY_UTMI_CTL_1_PHY_MODE_SHIFT; in usb_init_common_7211b0()
314 if ((params->supported_port_modes != USB_CTLR_MODE_HOST) && bdc_ec) { in usb_init_common_7211b0()
334 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7216() local
336 USB_CTRL_UNSET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_init_common_7216()
342 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7216()
343 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7216()
345 /* 1 millisecond - for USB clocks to settle down */ in usb_init_common_7216()
352 if (params->supported_port_modes != USB_CTLR_MODE_DRD) in usb_init_common_7216()
353 USB_CTRL_SET(ctrl, P0_U2PHY_CFG1, COMMONONN); in usb_init_common_7216()
368 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7216() local
372 if (params->wake_enabled) { in usb_uninit_common_7216()
374 USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_uninit_common_7216()
377 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7216()
383 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_74110() local
386 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_PM)); in usb_init_common_74110()
389 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_PM)); in usb_init_common_74110()
393 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, P0_U2PHY_CFG2)); in usb_init_common_74110()
400 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, P0_U2PHY_CFG2)); in usb_init_common_74110()
405 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_74110() local
408 if (params->wake_enabled) { in usb_uninit_common_74110()
409 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_PM)); in usb_uninit_common_74110()
412 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_PM)); in usb_uninit_common_74110()
419 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7211b0() local
420 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_uninit_common_7211b0()
425 if (params->wake_enabled) { in usb_uninit_common_7211b0()
426 USB_CTRL_SET(ctrl, TEST_PORT_CTL, TPOUT_SEL_PME_GEN); in usb_uninit_common_7211b0()
429 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7211b0()
445 if (!params->wake_enabled) in usb_uninit_xhci()
451 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_get_dual_select() local
456 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_get_dual_select()
463 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_set_dual_select() local
468 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
470 reg |= params->port_mode; in usb_set_dual_select()
471 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
506 params->family_name = "74110"; in brcm_usb_dvr_init_74110()
507 params->ops = &bcm74110_ops; in brcm_usb_dvr_init_74110()
515 params->family_name = "7216"; in brcm_usb_dvr_init_7216()
516 params->ops = &bcm7216_ops; in brcm_usb_dvr_init_7216()
524 params->family_name = "7211"; in brcm_usb_dvr_init_7211b0()
525 params->ops = &bcm7211b0_ops; in brcm_usb_dvr_init_7211b0()