Lines Matching +full:vbus +full:- +full:divider

1 // SPDX-License-Identifier: GPL-2.0
3 * dwc3-am62.c - TI specific Glue layer for AM62 DWC3 USB Controller
5 * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com
144 return readl((am62->usbss) + offset);
149 writel(value, (am62->usbss) + offset);
154 struct device *dev = am62->dev;
155 struct device_node *node = dev->of_node;
159 syscon = syscon_regmap_lookup_by_phandle_args(node, "ti,syscon-phy-pll-refclk",
160 1, &am62->offset);
162 dev_err(dev, "unable to get ti,syscon-phy-pll-refclk regmap\n");
166 am62->syscon = syscon;
169 ret = regmap_update_bits(am62->syscon, am62->offset, PHY_CORE_VOLTAGE_MASK, 0);
175 ret = regmap_update_bits(am62->syscon, am62->offset, PHY_PLL_REFCLK_MASK, am62->rate_code);
195 if (am62->phy_regs) {
196 reg = readl(am62->phy_regs + USB_PHY_PLL_REG12);
198 writel(reg, am62->phy_regs + USB_PHY_PLL_REG12);
201 /* VBUS divider select */
203 if (am62->vbus_divider)
208 clk_prepare_enable(am62->usb2_refclk);
220 struct device *dev = &pdev->dev;
221 struct device_node *node = pdev->dev.of_node;
228 return -ENOMEM;
230 am62->dev = dev;
233 am62->usbss = devm_platform_ioremap_resource(pdev, 0);
234 if (IS_ERR(am62->usbss)) {
236 return PTR_ERR(am62->usbss);
239 am62->usb2_refclk = devm_clk_get(dev, "ref");
240 if (IS_ERR(am62->usb2_refclk)) {
242 return PTR_ERR(am62->usb2_refclk);
246 rate = clk_get_rate(am62->usb2_refclk);
255 return -EINVAL;
258 am62->rate_code = i;
260 am62->phy_regs = devm_platform_ioremap_resource(pdev, 1);
261 if (IS_ERR(am62->phy_regs)) {
263 am62->phy_regs = NULL;
266 am62->vbus_divider = device_property_read_bool(dev, "ti,vbus-divider");
300 clk_disable_unprepare(am62->usb2_refclk);
308 struct device *dev = &pdev->dev;
345 * and in U2/L3 state else it causes spurious wake-up.
356 clk_disable_unprepare(am62->usb2_refclk);
372 clk_prepare_enable(am62->usb2_refclk);
381 am62->wakeup_stat = reg;
395 { .compatible = "ti,am62-usb"},
404 .name = "dwc3-am62",
412 MODULE_ALIAS("platform:dwc3-am62");
413 MODULE_AUTHOR("Aswath Govindraju <a-govindraju@ti.com>");