Lines Matching refs:hda

92 static void hda_tegra_init(struct hda_tegra *hda)
97 v = readl(hda->regs + HDA_IPFS_CONFIG);
99 writel(v, hda->regs + HDA_IPFS_CONFIG);
102 v = readl(hda->regs + HDA_CFG_CMD);
106 writel(v, hda->regs + HDA_CFG_CMD);
108 writel(HDA_BAR0_INIT_PROGRAM, hda->regs + HDA_CFG_BAR0);
109 writel(HDA_BAR0_FINAL_PROGRAM, hda->regs + HDA_CFG_BAR0);
110 writel(HDA_FPCI_BAR0_START, hda->regs + HDA_IPFS_FPCI_BAR0);
112 v = readl(hda->regs + HDA_IPFS_INTR_MASK);
114 writel(v, hda->regs + HDA_IPFS_INTR_MASK);
150 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
160 clk_bulk_disable_unprepare(hda->nclocks, hda->clocks);
169 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
173 rc = reset_control_assert(hda->reset);
178 rc = clk_bulk_prepare_enable(hda->nclocks, hda->clocks);
182 hda_tegra_init(hda);
190 rc = reset_control_deassert(hda->reset);
219 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
221 cancel_work_sync(&hda->probe_work);
236 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
238 struct device *dev = hda->dev;
242 hda->regs = devm_ioremap_resource(dev, res);
243 if (IS_ERR(hda->regs))
244 return PTR_ERR(hda->regs);
246 bus->remap_addr = hda->regs + HDA_BAR0;
249 hda_tegra_init(hda);
256 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
262 const char *sname, *drv_name = "tegra-hda";
293 if (of_device_is_compatible(np, "nvidia,tegra194-hda")) {
299 val = readl(hda->regs + FPCI_DBG_CFG_2) & ~FPCI_GCAP_NSDO_MASK;
301 writel(val, hda->regs + FPCI_DBG_CFG_2);
354 if (of_device_is_compatible(np, "nvidia,tegra30-hda"))
389 struct hda_tegra *hda)
398 chip = &hda->chip;
413 INIT_WORK(&hda->probe_work, hda_tegra_probe_work);
433 { .compatible = "nvidia,tegra30-hda" },
434 { .compatible = "nvidia,tegra194-hda" },
446 struct hda_tegra *hda;
449 hda = devm_kzalloc(&pdev->dev, sizeof(*hda), GFP_KERNEL);
450 if (!hda)
452 hda->dev = &pdev->dev;
453 chip = &hda->chip;
462 hda->reset = devm_reset_control_array_get_exclusive(&pdev->dev);
463 if (IS_ERR(hda->reset)) {
464 err = PTR_ERR(hda->reset);
468 hda->clocks[hda->nclocks++].id = "hda";
469 hda->clocks[hda->nclocks++].id = "hda2hdmi";
470 hda->clocks[hda->nclocks++].id = "hda2codec_2x";
472 err = devm_clk_bulk_get(&pdev->dev, hda->nclocks, hda->clocks);
476 err = hda_tegra_create(card, driver_flags, hda);
483 pm_runtime_enable(hda->dev);
485 pm_runtime_forbid(hda->dev);
487 schedule_work(&hda->probe_work);
498 struct hda_tegra *hda = container_of(work, struct hda_tegra, probe_work);
499 struct azx *chip = &hda->chip;
500 struct platform_device *pdev = to_platform_device(hda->dev);
503 pm_runtime_get_sync(hda->dev);
525 pm_runtime_put(hda->dev);
553 .name = "tegra-hda",