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()
162 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_ipp() local
168 orig_reg = reg = brcm_usb_readl(USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
169 if (params->ipp != 2) in usb_init_ipp()
170 /* override ipp strap pin (if it exits) */ in usb_init_ipp()
175 if (params->ioc) in usb_init_ipp()
177 if (params->ipp == 1) in usb_init_ipp()
179 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, SETUP)); in usb_init_ipp()
200 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common() local
205 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
207 reg |= params->port_mode; in usb_init_common()
208 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_init_common()
210 switch (params->supported_port_modes) { in usb_init_common()
212 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
215 USB_CTRL_UNSET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
216 USB_CTRL_SET(ctrl, USB_PM, BDC_SOFT_RESETB); in usb_init_common()
222 bool enable) in usb_wake_enable_7211b0() argument
224 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7211b0() local
226 if (enable) in usb_wake_enable_7211b0()
227 USB_CTRL_SET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
229 USB_CTRL_UNSET(ctrl, CTLR_CSHCR, ctl_pme_en); in usb_wake_enable_7211b0()
233 bool enable) in usb_wake_enable_7216() argument
235 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_wake_enable_7216() local
237 if (enable) in usb_wake_enable_7216()
238 USB_CTRL_SET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
240 USB_CTRL_UNSET(ctrl, USB_PM, XHC_PME_EN); in usb_wake_enable_7216()
245 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7211b0() local
246 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_init_common_7211b0()
247 void __iomem *bdc_ec = params->regs[BRCM_REGS_BDC_EC]; in usb_init_common_7211b0()
251 if (params->syscon_piarbctl) in usb_init_common_7211b0()
252 syscon_piarbctl_init(params->syscon_piarbctl); in usb_init_common_7211b0()
254 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7211b0()
257 if (!params->wake_enabled) { in usb_init_common_7211b0()
265 /* temporarily enable FSM so PHY comes up properly */ in usb_init_common_7211b0()
283 while (timeout_ms-- > 0) { in usb_init_common_7211b0()
293 reg |= params->supported_port_modes << USB_PHY_UTMI_CTL_1_PHY_MODE_SHIFT; in usb_init_common_7211b0()
303 if ((params->supported_port_modes != USB_CTLR_MODE_HOST) && bdc_ec) { in usb_init_common_7211b0()
323 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_init_common_7216() local
325 USB_CTRL_UNSET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_init_common_7216()
326 USB_CTRL_UNSET(ctrl, USB_PM, USB_PWRDN); in usb_init_common_7216()
328 /* 1 millisecond - for USB clocks to settle down */ in usb_init_common_7216()
332 USB_CTRL_SET(ctrl, P0_U2PHY_CFG1, COMMONONN); in usb_init_common_7216()
347 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7216() local
351 if (params->wake_enabled) { in usb_uninit_common_7216()
353 USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); in usb_uninit_common_7216()
356 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7216()
362 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_uninit_common_7211b0() local
363 void __iomem *usb_phy = params->regs[BRCM_REGS_USB_PHY]; in usb_uninit_common_7211b0()
368 if (params->wake_enabled) { in usb_uninit_common_7211b0()
369 USB_CTRL_SET(ctrl, TEST_PORT_CTL, TPOUT_SEL_PME_GEN); in usb_uninit_common_7211b0()
372 USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); in usb_uninit_common_7211b0()
388 if (!params->wake_enabled) in usb_uninit_xhci()
394 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_get_dual_select() local
399 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_get_dual_select()
406 void __iomem *ctrl = params->regs[BRCM_REGS_CTRL]; in usb_set_dual_select() local
411 reg = brcm_usb_readl(USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
413 reg |= params->port_mode; in usb_set_dual_select()
414 brcm_usb_writel(reg, USB_CTRL_REG(ctrl, USB_DEVICE_CTL1)); in usb_set_dual_select()
442 params->family_name = "7216"; in brcm_usb_dvr_init_7216()
443 params->ops = &bcm7216_ops; in brcm_usb_dvr_init_7216()
451 params->family_name = "7211"; in brcm_usb_dvr_init_7211b0()
452 params->ops = &bcm7211b0_ops; in brcm_usb_dvr_init_7211b0()