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 */
101 void __iomem *usb_mdio = params->regs[BRCM_REGS_USB_MDIO]; in usb_mdio_write_7211b0()
103 addr &= 0x1f; /* 5-bit address */ in usb_mdio_write_7211b0()
119 void __iomem *usb_mdio = params->regs[BRCM_REGS_USB_MDIO]; in usb_mdio_read_7211b0()
121 addr &= 0x1f; /* 5-bit address */ in usb_mdio_read_7211b0()
146 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in xhci_soft_reset() local
147 void __iomem *xhci_gbl = params->regs[BRCM_REGS_XHCI_GBL]; in xhci_soft_reset()
151 USB_CTRL_UNSET(ctrl, USB_PM, XHC_SOFT_RESETB); in xhci_soft_reset()
152 /* De-assert reset */ in xhci_soft_reset()
154 USB_CTRL_SET(ctrl, USB_PM, XHC_SOFT_RESETB); in xhci_soft_reset()
156 if (params->supported_port_modes != USB_CTLR_MODE_DRD) in xhci_soft_reset()
164 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_ipp() local
170 orig_reg = reg = brcm_usb_readl(USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
171 if (params->ipp != 2) in usb_init_ipp()
172 /* override ipp strap pin (if it exits) */ in usb_init_ipp()
177 if (params->ioc) in usb_init_ipp()
179 if (params->ipp == 1) in usb_init_ipp()
181 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
202 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common() local
207 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
209 reg |= params->port_mode; in usb_init_common()
210 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
212 switch (params->supported_port_modes) { in usb_init_common()
214 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
217 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
218 USB_CTRL_SET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
224 bool enable) in usb_wake_enable_7211b0() argument
226 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7211b0() local
228 if (enable) in usb_wake_enable_7211b0()
229 USB_CTRL_SET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
231 USB_CTRL_UNSET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
235 bool enable) in usb_wake_enable_7216() argument
237 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7216() local
239 if (enable) in usb_wake_enable_7216()
240 USB_CTRL_SET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
242 USB_CTRL_UNSET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
247 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7211b0() local
248 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_init_common_7211b0()
249 void __iomem *bdc_ec = params->regs[BRCM_REGS_BDC_EC]; in usb_init_common_7211b0()
253 if (params->syscon_piarbctl) in usb_init_common_7211b0()
254 syscon_piarbctl_init(params->syscon_piarbctl); in usb_init_common_7211b0()
256 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7211b0()
259 if (!params->wake_enabled) { in usb_init_common_7211b0()
267 /* temporarily enable FSM so PHY comes up properly */ in usb_init_common_7211b0()
285 while (timeout_ms-- > 0) { in usb_init_common_7211b0()
295 reg |= params->supported_port_modes << USB_PHY_UTMI_CTL_1_PHY_MODE_SHIFT; in usb_init_common_7211b0()
305 if ((params->supported_port_modes != USB_CTLR_MODE_HOST) && bdc_ec) { in usb_init_common_7211b0()
325 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7216() local
327 USB_CTRL_UNSET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_init_common_7216()
333 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7216()
334 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7216()
336 /* 1 millisecond - for USB clocks to settle down */ in usb_init_common_7216()
343 if (params->supported_port_modes != USB_CTLR_MODE_DRD) in usb_init_common_7216()
344 USB_CTRL_SET(ctrl, P0_U2PHY_CFG1, COMMONONN); in usb_init_common_7216()
359 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7216() local
363 if (params->wake_enabled) { in usb_uninit_common_7216()
365 USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_uninit_common_7216()
368 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7216()
374 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7211b0() local
375 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_uninit_common_7211b0()
380 if (params->wake_enabled) { in usb_uninit_common_7211b0()
381 USB_CTRL_SET(ctrl, TEST_PORT_CTL, TPOUT_SEL_PME_GEN); in usb_uninit_common_7211b0()
384 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7211b0()
400 if (!params->wake_enabled) in usb_uninit_xhci()
406 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_get_dual_select() local
411 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_get_dual_select()
418 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_set_dual_select() local
423 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
425 reg |= params->port_mode; in usb_set_dual_select()
426 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
454 params->family_name = "7216"; in brcm_usb_dvr_init_7216()
455 params->ops = &bcm7216_ops; in brcm_usb_dvr_init_7216()
463 params->family_name = "7211"; in brcm_usb_dvr_init_7211b0()
464 params->ops = &bcm7211b0_ops; in brcm_usb_dvr_init_7211b0()