• Home
  • Raw
  • Download

Lines Matching +full:tegra210 +full:- +full:pmc

1 // SPDX-License-Identifier: GPL-2.0
11 #include <linux/dma-mapping.h>
25 #include <soc/tegra/pmc.h>
212 return readl(tegra->fpci_base + offset); in fpci_readl()
218 writel(value, tegra->fpci_base + offset); in fpci_writel()
223 return readl(tegra->ipfs_base + offset); in ipfs_readl()
229 writel(value, tegra->ipfs_base + offset); in ipfs_writel()
256 struct clk *clk = tegra->ss_src_clk; in tegra_xusb_set_ss_clk()
270 new_parent_rate = clk_get_rate(tegra->pll_u_480m); in tegra_xusb_set_ss_clk()
277 err = clk_set_parent(clk, tegra->pll_u_480m); in tegra_xusb_set_ss_clk()
293 err = clk_set_parent(clk, tegra->clk_m); in tegra_xusb_set_ss_clk()
304 dev_err(tegra->dev, "Invalid SS rate: %lu Hz\n", rate); in tegra_xusb_set_ss_clk()
305 return -EINVAL; in tegra_xusb_set_ss_clk()
309 dev_err(tegra->dev, "SS clock doesn't match requested rate\n"); in tegra_xusb_set_ss_clk()
310 return -EINVAL; in tegra_xusb_set_ss_clk()
319 return (value >> start) & ((1 << count) - 1); in extract_field()
380 return (msg->cmd & CMD_TYPE_MASK) << CMD_TYPE_SHIFT | in tegra_xusb_mbox_pack()
381 (msg->data & CMD_DATA_MASK) << CMD_DATA_SHIFT; in tegra_xusb_mbox_pack()
386 msg->cmd = (value >> CMD_TYPE_SHIFT) & CMD_TYPE_MASK; in tegra_xusb_mbox_unpack()
387 msg->data = (value >> CMD_DATA_SHIFT) & CMD_DATA_MASK; in tegra_xusb_mbox_unpack()
413 if (!(msg->cmd == MBOX_CMD_ACK || msg->cmd == MBOX_CMD_NAK)) { in tegra_xusb_mbox_send()
416 dev_err(tegra->dev, "mailbox is busy\n"); in tegra_xusb_mbox_send()
417 return -EBUSY; in tegra_xusb_mbox_send()
424 dev_err(tegra->dev, "failed to acquire mailbox\n"); in tegra_xusb_mbox_send()
425 return -EBUSY; in tegra_xusb_mbox_send()
453 return -ETIMEDOUT; in tegra_xusb_mbox_send()
469 dev_err(tegra->dev, "controller firmware hang\n"); in tegra_xusb_mbox_irq()
477 struct tegra_xusb_padctl *padctl = tegra->padctl; in tegra_xusb_mbox_handle()
478 const struct tegra_xusb_soc *soc = tegra->soc; in tegra_xusb_mbox_handle()
479 struct device *dev = tegra->dev; in tegra_xusb_mbox_handle()
488 switch (msg->cmd) { in tegra_xusb_mbox_handle()
491 rsp.data = clk_get_rate(tegra->falcon_clk) / 1000; in tegra_xusb_mbox_handle()
492 if (rsp.data != msg->data) in tegra_xusb_mbox_handle()
501 if (tegra->soc->scale_ss_clock) { in tegra_xusb_mbox_handle()
502 err = tegra_xusb_set_ss_clk(tegra, msg->data * 1000); in tegra_xusb_mbox_handle()
508 rsp.data = clk_get_rate(tegra->ss_src_clk) / 1000; in tegra_xusb_mbox_handle()
511 rsp.data = msg->data; in tegra_xusb_mbox_handle()
525 err = tegra_xusb_padctl_usb3_save_context(padctl, msg->data); in tegra_xusb_mbox_handle()
528 msg->data, err); in tegra_xusb_mbox_handle()
534 rsp.data = msg->data; in tegra_xusb_mbox_handle()
539 if (msg->cmd == MBOX_CMD_STOP_HSIC_IDLE) in tegra_xusb_mbox_handle()
544 mask = extract_field(msg->data, 1 + soc->ports.hsic.offset, in tegra_xusb_mbox_handle()
545 soc->ports.hsic.count); in tegra_xusb_mbox_handle()
562 rsp.data = msg->data; in tegra_xusb_mbox_handle()
567 if (msg->cmd == MBOX_CMD_DISABLE_SS_LFPS_DETECTION) in tegra_xusb_mbox_handle()
572 mask = extract_field(msg->data, 1 + soc->ports.usb3.offset, in tegra_xusb_mbox_handle()
573 soc->ports.usb3.count); in tegra_xusb_mbox_handle()
575 for_each_set_bit(port, &mask, soc->ports.usb3.count) { in tegra_xusb_mbox_handle()
592 rsp.data = msg->data; in tegra_xusb_mbox_handle()
596 dev_warn(dev, "unknown message: %#x\n", msg->cmd); in tegra_xusb_mbox_handle()
615 mutex_lock(&tegra->lock); in tegra_xusb_mbox_thread()
630 mutex_unlock(&tegra->lock); in tegra_xusb_mbox_thread()
648 value |= regs->start & (XUSB_BASE_ADDR_MASK << XUSB_BASE_ADDR_SHIFT); in tegra_xusb_ipfs_config()
671 err = clk_prepare_enable(tegra->pll_e); in tegra_xusb_clk_enable()
675 err = clk_prepare_enable(tegra->host_clk); in tegra_xusb_clk_enable()
679 err = clk_prepare_enable(tegra->ss_clk); in tegra_xusb_clk_enable()
683 err = clk_prepare_enable(tegra->falcon_clk); in tegra_xusb_clk_enable()
687 err = clk_prepare_enable(tegra->fs_src_clk); in tegra_xusb_clk_enable()
691 err = clk_prepare_enable(tegra->hs_src_clk); in tegra_xusb_clk_enable()
695 if (tegra->soc->scale_ss_clock) { in tegra_xusb_clk_enable()
704 clk_disable_unprepare(tegra->hs_src_clk); in tegra_xusb_clk_enable()
706 clk_disable_unprepare(tegra->fs_src_clk); in tegra_xusb_clk_enable()
708 clk_disable_unprepare(tegra->falcon_clk); in tegra_xusb_clk_enable()
710 clk_disable_unprepare(tegra->ss_clk); in tegra_xusb_clk_enable()
712 clk_disable_unprepare(tegra->host_clk); in tegra_xusb_clk_enable()
714 clk_disable_unprepare(tegra->pll_e); in tegra_xusb_clk_enable()
720 clk_disable_unprepare(tegra->pll_e); in tegra_xusb_clk_disable()
721 clk_disable_unprepare(tegra->host_clk); in tegra_xusb_clk_disable()
722 clk_disable_unprepare(tegra->ss_clk); in tegra_xusb_clk_disable()
723 clk_disable_unprepare(tegra->falcon_clk); in tegra_xusb_clk_disable()
724 clk_disable_unprepare(tegra->fs_src_clk); in tegra_xusb_clk_disable()
725 clk_disable_unprepare(tegra->hs_src_clk); in tegra_xusb_clk_disable()
733 for (i = 0; i < tegra->num_phys; i++) { in tegra_xusb_phy_enable()
734 err = phy_init(tegra->phys[i]); in tegra_xusb_phy_enable()
738 err = phy_power_on(tegra->phys[i]); in tegra_xusb_phy_enable()
740 phy_exit(tegra->phys[i]); in tegra_xusb_phy_enable()
748 while (i--) { in tegra_xusb_phy_enable()
749 phy_power_off(tegra->phys[i]); in tegra_xusb_phy_enable()
750 phy_exit(tegra->phys[i]); in tegra_xusb_phy_enable()
760 for (i = 0; i < tegra->num_phys; i++) { in tegra_xusb_phy_disable()
761 phy_power_off(tegra->phys[i]); in tegra_xusb_phy_disable()
762 phy_exit(tegra->phys[i]); in tegra_xusb_phy_disable()
771 regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies); in tegra_xusb_runtime_suspend()
788 err = regulator_bulk_enable(tegra->soc->num_supplies, tegra->supplies); in tegra_xusb_runtime_resume()
803 regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies); in tegra_xusb_runtime_resume()
813 struct device *dev = tegra->dev; in tegra_xusb_load_firmware()
822 err = request_firmware(&fw, tegra->soc->firmware, tegra->dev); in tegra_xusb_load_firmware()
824 dev_err(tegra->dev, "failed to request firmware: %d\n", err); in tegra_xusb_load_firmware()
829 header = (struct tegra_xusb_fw_header *)fw->data; in tegra_xusb_load_firmware()
830 tegra->fw.size = le32_to_cpu(header->fwimg_len); in tegra_xusb_load_firmware()
832 tegra->fw.virt = dma_alloc_coherent(tegra->dev, tegra->fw.size, in tegra_xusb_load_firmware()
833 &tegra->fw.phys, GFP_KERNEL); in tegra_xusb_load_firmware()
834 if (!tegra->fw.virt) { in tegra_xusb_load_firmware()
835 dev_err(tegra->dev, "failed to allocate memory for firmware\n"); in tegra_xusb_load_firmware()
837 return -ENOMEM; in tegra_xusb_load_firmware()
840 header = (struct tegra_xusb_fw_header *)tegra->fw.virt; in tegra_xusb_load_firmware()
841 memcpy(tegra->fw.virt, fw->data, tegra->fw.size); in tegra_xusb_load_firmware()
851 csb_writel(tegra, tegra->fw.size, XUSB_CSB_MP_ILOAD_ATTR); in tegra_xusb_load_firmware()
857 address = tegra->fw.phys + sizeof(*header); in tegra_xusb_load_firmware()
871 code_tag_blocks = DIV_ROUND_UP(le32_to_cpu(header->boot_codetag), in tegra_xusb_load_firmware()
873 code_size_blocks = DIV_ROUND_UP(le32_to_cpu(header->boot_codesize), in tegra_xusb_load_firmware()
887 /* Setup Falcon auto-fill. */ in tegra_xusb_load_firmware()
900 csb_writel(tegra, le32_to_cpu(header->boot_codetag), in tegra_xusb_load_firmware()
918 return -EIO; in tegra_xusb_load_firmware()
921 timestamp = le32_to_cpu(header->fwimg_created_time); in tegra_xusb_load_firmware()
924 dev_info(dev, "Firmware timestamp: %ld-%02d-%02d %02d:%02d:%02d UTC\n", in tegra_xusb_load_firmware()
943 tegra = devm_kzalloc(&pdev->dev, sizeof(*tegra), GFP_KERNEL); in tegra_xusb_probe()
945 return -ENOMEM; in tegra_xusb_probe()
947 tegra->soc = of_device_get_match_data(&pdev->dev); in tegra_xusb_probe()
948 mutex_init(&tegra->lock); in tegra_xusb_probe()
949 tegra->dev = &pdev->dev; in tegra_xusb_probe()
952 tegra->regs = devm_ioremap_resource(&pdev->dev, regs); in tegra_xusb_probe()
953 if (IS_ERR(tegra->regs)) in tegra_xusb_probe()
954 return PTR_ERR(tegra->regs); in tegra_xusb_probe()
957 tegra->fpci_base = devm_ioremap_resource(&pdev->dev, res); in tegra_xusb_probe()
958 if (IS_ERR(tegra->fpci_base)) in tegra_xusb_probe()
959 return PTR_ERR(tegra->fpci_base); in tegra_xusb_probe()
962 tegra->ipfs_base = devm_ioremap_resource(&pdev->dev, res); in tegra_xusb_probe()
963 if (IS_ERR(tegra->ipfs_base)) in tegra_xusb_probe()
964 return PTR_ERR(tegra->ipfs_base); in tegra_xusb_probe()
966 tegra->xhci_irq = platform_get_irq(pdev, 0); in tegra_xusb_probe()
967 if (tegra->xhci_irq < 0) in tegra_xusb_probe()
968 return tegra->xhci_irq; in tegra_xusb_probe()
970 tegra->mbox_irq = platform_get_irq(pdev, 1); in tegra_xusb_probe()
971 if (tegra->mbox_irq < 0) in tegra_xusb_probe()
972 return tegra->mbox_irq; in tegra_xusb_probe()
974 tegra->padctl = tegra_xusb_padctl_get(&pdev->dev); in tegra_xusb_probe()
975 if (IS_ERR(tegra->padctl)) in tegra_xusb_probe()
976 return PTR_ERR(tegra->padctl); in tegra_xusb_probe()
978 tegra->host_clk = devm_clk_get(&pdev->dev, "xusb_host"); in tegra_xusb_probe()
979 if (IS_ERR(tegra->host_clk)) { in tegra_xusb_probe()
980 err = PTR_ERR(tegra->host_clk); in tegra_xusb_probe()
981 dev_err(&pdev->dev, "failed to get xusb_host: %d\n", err); in tegra_xusb_probe()
985 tegra->falcon_clk = devm_clk_get(&pdev->dev, "xusb_falcon_src"); in tegra_xusb_probe()
986 if (IS_ERR(tegra->falcon_clk)) { in tegra_xusb_probe()
987 err = PTR_ERR(tegra->falcon_clk); in tegra_xusb_probe()
988 dev_err(&pdev->dev, "failed to get xusb_falcon_src: %d\n", err); in tegra_xusb_probe()
992 tegra->ss_clk = devm_clk_get(&pdev->dev, "xusb_ss"); in tegra_xusb_probe()
993 if (IS_ERR(tegra->ss_clk)) { in tegra_xusb_probe()
994 err = PTR_ERR(tegra->ss_clk); in tegra_xusb_probe()
995 dev_err(&pdev->dev, "failed to get xusb_ss: %d\n", err); in tegra_xusb_probe()
999 tegra->ss_src_clk = devm_clk_get(&pdev->dev, "xusb_ss_src"); in tegra_xusb_probe()
1000 if (IS_ERR(tegra->ss_src_clk)) { in tegra_xusb_probe()
1001 err = PTR_ERR(tegra->ss_src_clk); in tegra_xusb_probe()
1002 dev_err(&pdev->dev, "failed to get xusb_ss_src: %d\n", err); in tegra_xusb_probe()
1006 tegra->hs_src_clk = devm_clk_get(&pdev->dev, "xusb_hs_src"); in tegra_xusb_probe()
1007 if (IS_ERR(tegra->hs_src_clk)) { in tegra_xusb_probe()
1008 err = PTR_ERR(tegra->hs_src_clk); in tegra_xusb_probe()
1009 dev_err(&pdev->dev, "failed to get xusb_hs_src: %d\n", err); in tegra_xusb_probe()
1013 tegra->fs_src_clk = devm_clk_get(&pdev->dev, "xusb_fs_src"); in tegra_xusb_probe()
1014 if (IS_ERR(tegra->fs_src_clk)) { in tegra_xusb_probe()
1015 err = PTR_ERR(tegra->fs_src_clk); in tegra_xusb_probe()
1016 dev_err(&pdev->dev, "failed to get xusb_fs_src: %d\n", err); in tegra_xusb_probe()
1020 tegra->pll_u_480m = devm_clk_get(&pdev->dev, "pll_u_480m"); in tegra_xusb_probe()
1021 if (IS_ERR(tegra->pll_u_480m)) { in tegra_xusb_probe()
1022 err = PTR_ERR(tegra->pll_u_480m); in tegra_xusb_probe()
1023 dev_err(&pdev->dev, "failed to get pll_u_480m: %d\n", err); in tegra_xusb_probe()
1027 tegra->clk_m = devm_clk_get(&pdev->dev, "clk_m"); in tegra_xusb_probe()
1028 if (IS_ERR(tegra->clk_m)) { in tegra_xusb_probe()
1029 err = PTR_ERR(tegra->clk_m); in tegra_xusb_probe()
1030 dev_err(&pdev->dev, "failed to get clk_m: %d\n", err); in tegra_xusb_probe()
1034 tegra->pll_e = devm_clk_get(&pdev->dev, "pll_e"); in tegra_xusb_probe()
1035 if (IS_ERR(tegra->pll_e)) { in tegra_xusb_probe()
1036 err = PTR_ERR(tegra->pll_e); in tegra_xusb_probe()
1037 dev_err(&pdev->dev, "failed to get pll_e: %d\n", err); in tegra_xusb_probe()
1041 if (!pdev->dev.pm_domain) { in tegra_xusb_probe()
1042 tegra->host_rst = devm_reset_control_get(&pdev->dev, in tegra_xusb_probe()
1044 if (IS_ERR(tegra->host_rst)) { in tegra_xusb_probe()
1045 err = PTR_ERR(tegra->host_rst); in tegra_xusb_probe()
1046 dev_err(&pdev->dev, in tegra_xusb_probe()
1051 tegra->ss_rst = devm_reset_control_get(&pdev->dev, "xusb_ss"); in tegra_xusb_probe()
1052 if (IS_ERR(tegra->ss_rst)) { in tegra_xusb_probe()
1053 err = PTR_ERR(tegra->ss_rst); in tegra_xusb_probe()
1054 dev_err(&pdev->dev, "failed to get xusb_ss reset: %d\n", in tegra_xusb_probe()
1060 tegra->ss_clk, in tegra_xusb_probe()
1061 tegra->ss_rst); in tegra_xusb_probe()
1063 dev_err(&pdev->dev, in tegra_xusb_probe()
1069 tegra->host_clk, in tegra_xusb_probe()
1070 tegra->host_rst); in tegra_xusb_probe()
1072 dev_err(&pdev->dev, in tegra_xusb_probe()
1078 tegra->supplies = devm_kcalloc(&pdev->dev, tegra->soc->num_supplies, in tegra_xusb_probe()
1079 sizeof(*tegra->supplies), GFP_KERNEL); in tegra_xusb_probe()
1080 if (!tegra->supplies) { in tegra_xusb_probe()
1081 err = -ENOMEM; in tegra_xusb_probe()
1085 for (i = 0; i < tegra->soc->num_supplies; i++) in tegra_xusb_probe()
1086 tegra->supplies[i].supply = tegra->soc->supply_names[i]; in tegra_xusb_probe()
1088 err = devm_regulator_bulk_get(&pdev->dev, tegra->soc->num_supplies, in tegra_xusb_probe()
1089 tegra->supplies); in tegra_xusb_probe()
1091 dev_err(&pdev->dev, "failed to get regulators: %d\n", err); in tegra_xusb_probe()
1095 for (i = 0; i < tegra->soc->num_types; i++) in tegra_xusb_probe()
1096 tegra->num_phys += tegra->soc->phy_types[i].num; in tegra_xusb_probe()
1098 tegra->phys = devm_kcalloc(&pdev->dev, tegra->num_phys, in tegra_xusb_probe()
1099 sizeof(*tegra->phys), GFP_KERNEL); in tegra_xusb_probe()
1100 if (!tegra->phys) { in tegra_xusb_probe()
1101 err = -ENOMEM; in tegra_xusb_probe()
1105 for (i = 0, k = 0; i < tegra->soc->num_types; i++) { in tegra_xusb_probe()
1108 for (j = 0; j < tegra->soc->phy_types[i].num; j++) { in tegra_xusb_probe()
1109 snprintf(prop, sizeof(prop), "%s-%d", in tegra_xusb_probe()
1110 tegra->soc->phy_types[i].name, j); in tegra_xusb_probe()
1112 phy = devm_phy_optional_get(&pdev->dev, prop); in tegra_xusb_probe()
1114 dev_err(&pdev->dev, in tegra_xusb_probe()
1121 tegra->phys[k++] = phy; in tegra_xusb_probe()
1125 tegra->hcd = usb_create_hcd(&tegra_xhci_hc_driver, &pdev->dev, in tegra_xusb_probe()
1126 dev_name(&pdev->dev)); in tegra_xusb_probe()
1127 if (!tegra->hcd) { in tegra_xusb_probe()
1128 err = -ENOMEM; in tegra_xusb_probe()
1138 pm_runtime_enable(&pdev->dev); in tegra_xusb_probe()
1139 if (pm_runtime_enabled(&pdev->dev)) in tegra_xusb_probe()
1140 err = pm_runtime_get_sync(&pdev->dev); in tegra_xusb_probe()
1142 err = tegra_xusb_runtime_resume(&pdev->dev); in tegra_xusb_probe()
1145 dev_err(&pdev->dev, "failed to enable device: %d\n", err); in tegra_xusb_probe()
1155 err = dma_set_mask_and_coherent(tegra->dev, DMA_BIT_MASK(40)); in tegra_xusb_probe()
1157 dev_err(&pdev->dev, "failed to set DMA mask: %d\n", err); in tegra_xusb_probe()
1163 dev_err(&pdev->dev, "failed to load firmware: %d\n", err); in tegra_xusb_probe()
1167 tegra->hcd->regs = tegra->regs; in tegra_xusb_probe()
1168 tegra->hcd->rsrc_start = regs->start; in tegra_xusb_probe()
1169 tegra->hcd->rsrc_len = resource_size(regs); in tegra_xusb_probe()
1171 err = usb_add_hcd(tegra->hcd, tegra->xhci_irq, IRQF_SHARED); in tegra_xusb_probe()
1173 dev_err(&pdev->dev, "failed to add USB HCD: %d\n", err); in tegra_xusb_probe()
1177 device_wakeup_enable(tegra->hcd->self.controller); in tegra_xusb_probe()
1179 xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_probe()
1181 xhci->shared_hcd = usb_create_shared_hcd(&tegra_xhci_hc_driver, in tegra_xusb_probe()
1182 &pdev->dev, in tegra_xusb_probe()
1183 dev_name(&pdev->dev), in tegra_xusb_probe()
1184 tegra->hcd); in tegra_xusb_probe()
1185 if (!xhci->shared_hcd) { in tegra_xusb_probe()
1186 dev_err(&pdev->dev, "failed to create shared HCD\n"); in tegra_xusb_probe()
1187 err = -ENOMEM; in tegra_xusb_probe()
1191 err = usb_add_hcd(xhci->shared_hcd, tegra->xhci_irq, IRQF_SHARED); in tegra_xusb_probe()
1193 dev_err(&pdev->dev, "failed to add shared HCD: %d\n", err); in tegra_xusb_probe()
1197 mutex_lock(&tegra->lock); in tegra_xusb_probe()
1205 dev_err(&pdev->dev, "failed to enable messages: %d\n", err); in tegra_xusb_probe()
1206 mutex_unlock(&tegra->lock); in tegra_xusb_probe()
1210 mutex_unlock(&tegra->lock); in tegra_xusb_probe()
1212 err = devm_request_threaded_irq(&pdev->dev, tegra->mbox_irq, in tegra_xusb_probe()
1215 dev_name(&pdev->dev), tegra); in tegra_xusb_probe()
1217 dev_err(&pdev->dev, "failed to request IRQ: %d\n", err); in tegra_xusb_probe()
1224 usb_remove_hcd(xhci->shared_hcd); in tegra_xusb_probe()
1226 usb_put_hcd(xhci->shared_hcd); in tegra_xusb_probe()
1228 usb_remove_hcd(tegra->hcd); in tegra_xusb_probe()
1230 if (!pm_runtime_status_suspended(&pdev->dev)) in tegra_xusb_probe()
1231 tegra_xusb_runtime_suspend(&pdev->dev); in tegra_xusb_probe()
1233 pm_runtime_disable(&pdev->dev); in tegra_xusb_probe()
1234 usb_put_hcd(tegra->hcd); in tegra_xusb_probe()
1236 if (!pdev->dev.pm_domain) in tegra_xusb_probe()
1239 if (!pdev->dev.pm_domain) in tegra_xusb_probe()
1242 tegra_xusb_padctl_put(tegra->padctl); in tegra_xusb_probe()
1249 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_remove()
1251 usb_remove_hcd(xhci->shared_hcd); in tegra_xusb_remove()
1252 usb_put_hcd(xhci->shared_hcd); in tegra_xusb_remove()
1253 xhci->shared_hcd = NULL; in tegra_xusb_remove()
1254 usb_remove_hcd(tegra->hcd); in tegra_xusb_remove()
1255 usb_put_hcd(tegra->hcd); in tegra_xusb_remove()
1257 dma_free_coherent(&pdev->dev, tegra->fw.size, tegra->fw.virt, in tegra_xusb_remove()
1258 tegra->fw.phys); in tegra_xusb_remove()
1260 pm_runtime_put_sync(&pdev->dev); in tegra_xusb_remove()
1261 pm_runtime_disable(&pdev->dev); in tegra_xusb_remove()
1263 tegra_xusb_padctl_put(tegra->padctl); in tegra_xusb_remove()
1272 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_suspend()
1282 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_resume()
1295 "avddio-pex",
1296 "dvddio-pex",
1297 "avdd-usb",
1298 "avdd-pll-utmip",
1299 "avdd-pll-erefe",
1300 "avdd-usb-ss-pll",
1301 "hvdd-usb-ss",
1302 "hvdd-usb-ss-pll-e",
1327 "dvddio-pex",
1328 "hvddio-pex",
1329 "avdd-usb",
1330 "avdd-pll-utmip",
1331 "avdd-pll-uerefe",
1332 "dvdd-pex-pll",
1333 "hvdd-pex-pll-e",
1343 .firmware = "nvidia/tegra210/xusb.bin",
1355 MODULE_FIRMWARE("nvidia/tegra210/xusb.bin");
1358 { .compatible = "nvidia,tegra124-xusb", .data = &tegra124_soc },
1359 { .compatible = "nvidia,tegra210-xusb", .data = &tegra210_soc },
1368 .name = "tegra-xusb",
1376 xhci->quirks |= XHCI_PLAT; in tegra_xhci_quirks()
1403 MODULE_DESCRIPTION("NVIDIA Tegra XUSB xHCI host-controller driver");