Lines Matching refs:soc
103 if (mc->soc->ops && mc->soc->ops->probe_device) in tegra_mc_probe_device()
104 return mc->soc->ops->probe_device(mc, dev); in tegra_mc_probe_device()
171 for (i = 0; i < mc->soc->num_resets; i++) in tegra_mc_reset_find()
172 if (mc->soc->resets[i].id == id) in tegra_mc_reset_find()
173 return &mc->soc->resets[i]; in tegra_mc_reset_find()
191 rst_ops = mc->soc->reset_ops; in tegra_mc_hotreset_assert()
250 rst_ops = mc->soc->reset_ops; in tegra_mc_hotreset_deassert()
288 rst_ops = mc->soc->reset_ops; in tegra_mc_hotreset_status()
309 mc->reset.nr_resets = mc->soc->num_resets; in tegra_mc_reset_setup()
336 for (i = 0; i < mc->soc->num_emem_regs; ++i) in tegra_mc_write_emem_configuration()
337 mc_writel(mc, timing->emem_data[i], mc->soc->emem_regs[i]); in tegra_mc_write_emem_configuration()
376 for (i = 0; i < mc->soc->num_clients; i++) { in tegra_mc_setup_latency_allowance()
377 const struct tegra_mc_client *client = &mc->soc->clients[i]; in tegra_mc_setup_latency_allowance()
407 timing->emem_data = devm_kcalloc(mc->dev, mc->soc->num_emem_regs, in load_one_timing()
414 mc->soc->num_emem_regs); in load_one_timing()
520 if ((status & mc->soc->ch_intmask) == 0) in mc_global_intstatus_to_channel()
523 *mc_channel = __ffs((status & mc->soc->ch_intmask) >> in mc_global_intstatus_to_channel()
524 mc->soc->global_intstatus_channel_shift); in mc_global_intstatus_to_channel()
532 return BIT(channel) << mc->soc->global_intstatus_channel_shift; in mc_channel_to_global_intstatus()
541 if (mc->soc->num_channels) { in tegra30_mc_handle_irq()
554 status = mc_ch_readl(mc, channel, MC_INTSTATUS) & mc->soc->intmask; in tegra30_mc_handle_irq()
556 status = mc_readl(mc, MC_INTSTATUS) & mc->soc->intmask; in tegra30_mc_handle_irq()
608 if (mc->soc->has_addr_hi_reg) in tegra30_mc_handle_irq()
614 if (mc->soc->num_channels) in tegra30_mc_handle_irq()
620 if (mc->soc->num_address_bits > 32) { in tegra30_mc_handle_irq()
622 if (mc->soc->num_channels) in tegra30_mc_handle_irq()
644 id = value & mc->soc->client_id_mask; in tegra30_mc_handle_irq()
646 for (i = 0; i < mc->soc->num_clients; i++) { in tegra30_mc_handle_irq()
647 if (mc->soc->clients[i].id == id) { in tegra30_mc_handle_irq()
648 client = mc->soc->clients[i].name; in tegra30_mc_handle_irq()
686 if (mc->soc->num_channels) in tegra30_mc_handle_irq()
698 if (mc->soc->num_channels) { in tegra30_mc_handle_irq()
763 !mc->soc->icc_ops) in tegra_mc_interconnect_setup()
768 mc->provider.set = mc->soc->icc_ops->set; in tegra_mc_interconnect_setup()
769 mc->provider.aggregate = mc->soc->icc_ops->aggregate; in tegra_mc_interconnect_setup()
770 mc->provider.xlate_extended = mc->soc->icc_ops->xlate_extended; in tegra_mc_interconnect_setup()
791 for (i = 0; i < mc->soc->num_clients; i++) { in tegra_mc_interconnect_setup()
793 node = icc_node_create(mc->soc->clients[i].id); in tegra_mc_interconnect_setup()
799 node->name = mc->soc->clients[i].name; in tegra_mc_interconnect_setup()
830 mc->soc = of_device_get_match_data(&pdev->dev); in tegra_mc_probe()
833 mask = DMA_BIT_MASK(mc->soc->num_address_bits); in tegra_mc_probe()
850 if (mc->soc->ops && mc->soc->ops->probe) { in tegra_mc_probe()
851 err = mc->soc->ops->probe(mc); in tegra_mc_probe()
856 if (mc->soc->ops && mc->soc->ops->handle_irq) { in tegra_mc_probe()
861 WARN(!mc->soc->client_id_mask, "missing client ID mask for this SoC\n"); in tegra_mc_probe()
863 if (mc->soc->num_channels) in tegra_mc_probe()
864 mc_ch_writel(mc, MC_BROADCAST_CHANNEL, mc->soc->intmask, in tegra_mc_probe()
867 mc_writel(mc, mc->soc->intmask, MC_INTMASK); in tegra_mc_probe()
869 err = devm_request_irq(&pdev->dev, mc->irq, mc->soc->ops->handle_irq, 0, in tegra_mc_probe()
878 if (mc->soc->reset_ops) { in tegra_mc_probe()
889 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU) && mc->soc->smmu) { in tegra_mc_probe()
890 mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc); in tegra_mc_probe()
898 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_GART) && !mc->soc->smmu) { in tegra_mc_probe()
914 if (mc->soc->ops && mc->soc->ops->suspend) in tegra_mc_suspend()
915 return mc->soc->ops->suspend(mc); in tegra_mc_suspend()
924 if (mc->soc->ops && mc->soc->ops->resume) in tegra_mc_resume()
925 return mc->soc->ops->resume(mc); in tegra_mc_resume()