/linux/drivers/clk/keystone/ |
A D | sci-clk.c | 104 ret = clk->provider->ops->put_clock(clk->provider->sci, clk->dev_id, in sci_clk_unprepare() 125 ret = clk->provider->ops->is_on(clk->provider->sci, clk->dev_id, in sci_clk_is_prepared() 187 ret = clk->provider->ops->get_best_match_freq(clk->provider->sci, in sci_clk_determine_rate() 397 clk = bsearch(&key, provider->clocks, provider->num_clocks, in sci_clk_get() 442 ret = provider->ops->get_num_parents(provider->sci, dev_id, in ti_sci_scan_clocks_from_fw() 481 sci_clk->provider = provider; in ti_sci_scan_clocks_from_fw() 563 sci_clk->provider = provider; in ti_sci_scan_clocks_from_dt() 564 provider->ops->get_num_parents(provider->sci, in ti_sci_scan_clocks_from_dt() 603 sci_clk->provider = provider; in ti_sci_scan_clocks_from_dt() 661 provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); in ti_sci_clk_probe() [all …]
|
/linux/drivers/interconnect/imx/ |
A D | imx.c | 68 dev_warn(node->provider->dev, in imx_icc_node_destroy() 83 struct device *dev = provider->dev; in imx_icc_node_init_qos() 152 icc_node_add(node, provider); in imx_icc_node_add() 228 struct icc_provider *provider; in imx_icc_register() local 240 provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); in imx_icc_register() 241 if (!provider) in imx_icc_register() 243 provider->set = imx_icc_set; in imx_icc_register() 246 provider->data = data; in imx_icc_register() 247 provider->dev = dev->parent; in imx_icc_register() 250 ret = icc_provider_add(provider); in imx_icc_register() [all …]
|
/linux/drivers/clk/tegra/ |
A D | clk-tegra210-emc.c | 93 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_round_rate() local 96 if (!provider || !provider->configs || provider->num_configs == 0) in tegra210_clk_emc_round_rate() 101 return provider->configs[i].rate; in tegra210_clk_emc_round_rate() 122 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_set_rate() local 131 if (!provider->configs || provider->num_configs == 0) in tegra210_clk_emc_set_rate() 136 config = &provider->configs[i]; in tegra210_clk_emc_set_rate() 141 if (i == provider->num_configs) in tegra210_clk_emc_set_rate() 354 emc->provider = provider; in tegra210_clk_emc_attach() 359 module_put(provider->owner); in tegra210_clk_emc_attach() 368 module_put(emc->provider->owner); in tegra210_clk_emc_detach() [all …]
|
/linux/drivers/interconnect/qcom/ |
A D | icc-rpm.c | 70 struct icc_provider *provider; in qcom_icc_set_bimc_qos() local 76 provider = src->provider; in qcom_icc_set_bimc_qos() 125 struct icc_provider *provider; in qcom_icc_set_noc_qos() local 130 provider = src->provider; in qcom_icc_set_noc_qos() 134 dev_dbg(src->provider->dev, in qcom_icc_set_noc_qos() 217 provider = src->provider; in qcom_icc_set() 343 provider = &qp->provider; in qnoc_probe() 345 provider->dev = dev; in qnoc_probe() 349 provider->data = data; in qnoc_probe() 382 icc_nodes_remove(provider); in qnoc_probe() [all …]
|
A D | osm-l3.c | 49 struct icc_provider provider; member 168 struct icc_provider *provider; in qcom_osm_l3_set() local 177 provider = src->provider; in qcom_osm_l3_set() 202 icc_nodes_remove(&qp->provider); in qcom_osm_l3_remove() 213 struct icc_provider *provider; in qcom_osm_l3_probe() local 282 provider = &qp->provider; in qcom_osm_l3_probe() 283 provider->dev = &pdev->dev; in qcom_osm_l3_probe() 288 provider->data = data; in qcom_osm_l3_probe() 308 icc_node_add(node, provider); in qcom_osm_l3_probe() 321 icc_nodes_remove(provider); in qcom_osm_l3_probe() [all …]
|
A D | icc-rpmh.c | 191 struct icc_provider *provider; in qcom_icc_rpmh_probe() local 213 provider = &qp->provider; in qcom_icc_rpmh_probe() 214 provider->dev = dev; in qcom_icc_rpmh_probe() 215 provider->set = qcom_icc_set; in qcom_icc_rpmh_probe() 219 INIT_LIST_HEAD(&provider->nodes); in qcom_icc_rpmh_probe() 220 provider->data = data; in qcom_icc_rpmh_probe() 230 ret = icc_provider_add(provider); in qcom_icc_rpmh_probe() 250 icc_node_add(node, provider); in qcom_icc_rpmh_probe() 263 icc_nodes_remove(provider); in qcom_icc_rpmh_probe() 264 icc_provider_del(provider); in qcom_icc_rpmh_probe() [all …]
|
A D | msm8974.c | 193 struct icc_provider provider; member 587 struct icc_provider *provider; in msm8974_icc_set() local 593 provider = src->provider; in msm8974_icc_set() 655 struct icc_provider *provider; in msm8974_icc_probe() local 694 provider = &qp->provider; in msm8974_icc_probe() 696 provider->dev = dev; in msm8974_icc_probe() 697 provider->set = msm8974_icc_set; in msm8974_icc_probe() 700 provider->data = data; in msm8974_icc_probe() 720 icc_node_add(node, provider); in msm8974_icc_probe() 737 icc_nodes_remove(provider); in msm8974_icc_probe() [all …]
|
A D | sc8180x.c | 510 struct icc_provider *provider; in qnoc_probe() local 532 provider = &qp->provider; in qnoc_probe() 533 provider->dev = &pdev->dev; in qnoc_probe() 534 provider->set = qcom_icc_set; in qnoc_probe() 538 INIT_LIST_HEAD(&provider->nodes); in qnoc_probe() 539 provider->data = data; in qnoc_probe() 549 ret = icc_provider_add(provider); in qnoc_probe() 572 icc_node_add(node, provider); in qnoc_probe() 585 icc_nodes_remove(provider); in qnoc_probe() 586 icc_provider_del(provider); in qnoc_probe() [all …]
|
/linux/drivers/interconnect/ |
A D | core.c | 113 if (provider->dev) in icc_graph_show() 124 if (n->provider == n->links[i]->provider) in icc_graph_show() 135 if (n->provider != n->links[i]->provider) in icc_graph_show() 292 p = next->provider; in apply_constraints() 369 data = provider->xlate_extended(spec, provider->data); in of_icc_get_from_provider() 375 node = provider->xlate(spec, provider->data); in of_icc_get_from_provider() 876 if (!node->provider) in icc_link_create() 967 node->provider = provider; in icc_node_add() 1041 if (WARN_ON(!provider->xlate && !provider->xlate_extended)) in icc_provider_add() 1066 if (provider->users) { in icc_provider_del() [all …]
|
/linux/drivers/clk/ti/ |
A D | clkctrl.c | 590 provider = kzalloc(sizeof(*provider), GFP_KERNEL); in _ti_omap4_clkctrl_setup() 591 if (!provider) in _ti_omap4_clkctrl_setup() 594 provider->base = of_iomap(node, 0); in _ti_omap4_clkctrl_setup() 610 if (!provider->clkdm_name) { in _ti_omap4_clkctrl_setup() 611 kfree(provider); in _ti_omap4_clkctrl_setup() 619 provider->clkdm_name[strlen(provider->clkdm_name) - 2] = 0; in _ti_omap4_clkctrl_setup() 622 if (!provider->clkdm_name) { in _ti_omap4_clkctrl_setup() 623 kfree(provider); in _ti_omap4_clkctrl_setup() 631 provider->clkdm_name[strlen(provider->clkdm_name) - 7] = 0; in _ti_omap4_clkctrl_setup() 637 c = provider->clkdm_name; in _ti_omap4_clkctrl_setup() [all …]
|
/linux/drivers/interconnect/samsung/ |
A D | exynos.c | 24 struct icc_provider provider; member 105 icc_nodes_remove(&priv->provider); in exynos_generic_icc_remove() 115 struct icc_provider *provider; in exynos_generic_icc_probe() local 126 provider = &priv->provider; in exynos_generic_icc_probe() 131 provider->dev = bus_dev; in exynos_generic_icc_probe() 132 provider->inter_set = true; in exynos_generic_icc_probe() 133 provider->data = priv; in exynos_generic_icc_probe() 135 ret = icc_provider_add(provider); in exynos_generic_icc_probe() 161 icc_node_add(icc_node, provider); in exynos_generic_icc_probe() 179 icc_nodes_remove(provider); in exynos_generic_icc_probe() [all …]
|
/linux/include/linux/ |
A D | interconnect-provider.h | 101 struct icc_provider *provider; member 122 void icc_node_add(struct icc_node *node, struct icc_provider *provider); 124 int icc_nodes_remove(struct icc_provider *provider); 125 int icc_provider_add(struct icc_provider *provider); 126 int icc_provider_del(struct icc_provider *provider); 157 static inline void icc_node_add(struct icc_node *node, struct icc_provider *provider) in icc_node_add() argument 165 static inline int icc_nodes_remove(struct icc_provider *provider) in icc_nodes_remove() argument 170 static inline int icc_provider_add(struct icc_provider *provider) in icc_provider_add() argument 175 static inline int icc_provider_del(struct icc_provider *provider) in icc_provider_del() argument
|
A D | pci-p2pdma.h | 22 int pci_p2pdma_distance_many(struct pci_dev *provider, struct device **clients, 47 static inline int pci_p2pdma_distance_many(struct pci_dev *provider, in pci_p2pdma_distance_many() argument 111 static inline int pci_p2pdma_distance(struct pci_dev *provider, in pci_p2pdma_distance() argument 114 return pci_p2pdma_distance_many(provider, &client, 1, verbose); in pci_p2pdma_distance()
|
/linux/Documentation/devicetree/bindings/power/ |
A D | power-domain.yaml | 20 their PM domains provided by PM domain providers. A PM domain provider can be 22 domains. A consumer node can refer to the provider by a phandle and a set of 24 \#power-domain-cells property in the PM domain provider node. 34 power-domain provider. The idle state definitions are compatible with the 47 provider. If the provider provides a single power domain only or all 48 the power domains provided by the provider have identical OPP tables, 57 by device tree binding documentation of particular provider. 66 by the given provider should be subdomains of the domain specified 82 // The node above defines a power controller that is a PM domain provider and
|
/linux/drivers/pci/ |
A D | p2pdma.c | 38 struct pci_dev *provider; member 208 p2p_pgmap->provider = pdev; in pci_p2pdma_add_resource() 454 struct pci_dev *a = provider, *b = client, *bb; in calc_map_type_and_dist() 520 pci_name(provider)); in calc_map_type_and_dist() 528 !host_bridge_whitelist(provider, client, acs_redirects)) { in calc_map_type_and_dist() 531 pci_name(provider)); in calc_map_type_and_dist() 536 p2pdma = rcu_dereference(provider->p2pdma); in calc_map_type_and_dist() 582 map = calc_map_type_and_dist(provider, pci_client, &distance, in pci_p2pdma_distance_many() 848 struct pci_dev *provider = to_p2p_pgmap(pgmap)->provider; in pci_p2pdma_map_type() local 852 if (!provider->p2pdma) in pci_p2pdma_map_type() [all …]
|
/linux/drivers/phy/broadcom/ |
A D | phy-bcm-ns2-pcie.c | 56 struct phy_provider *provider; in ns2_pci_phy_probe() local 67 provider = devm_of_phy_provider_register(&phy->dev, in ns2_pci_phy_probe() 69 if (IS_ERR(provider)) { in ns2_pci_phy_probe() 71 return PTR_ERR(provider); in ns2_pci_phy_probe()
|
/linux/drivers/phy/marvell/ |
A D | phy-mmp3-hsic.c | 43 struct phy_provider *provider; in mmp3_hsic_phy_probe() local 60 provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); in mmp3_hsic_phy_probe() 61 if (IS_ERR(provider)) { in mmp3_hsic_phy_probe() 63 return PTR_ERR(provider); in mmp3_hsic_phy_probe()
|
/linux/Documentation/driver-api/ |
A D | interconnect.rst | 55 Interconnect provider is the software definition of the interconnect hardware. 60 port. Each interconnect provider consists of multiple interconnect nodes, 63 called an interconnect node, which belongs to the Mem NoC interconnect provider. 81 Interconnect provider is an entity that implements methods to initialize and 82 configure interconnect bus hardware. The interconnect provider drivers should 83 be registered with the interconnect provider core. 85 .. kernel-doc:: include/linux/interconnect-provider.h 111 same provider as subgraphs. The format is human-readable and can also be piped
|
/linux/Documentation/devicetree/bindings/dvfs/ |
A D | performance-domain.yaml | 26 providers. A performance domain provider can be represented by any node in 28 node can refer to the provider by a phandle and a set of phandle arguments 30 \#performance-domain-cells property in the performance domain provider node. 41 provider. 49 performance controller/provider specified by phandle. 62 // domain provider and expects one cell as its phandle argument.
|
/linux/Documentation/driver-api/pci/ |
A D | p2pdma.rst | 44 it may be typical for a driver to be both a provider and a client). 48 * The NVMe PCI driver is both a client, provider and orchestrator 50 resource (provider), it accepts P2P memory pages as buffers in requests 61 memory behind it, its driver could add support as a P2P provider and 69 A provider simply needs to register a BAR (or a portion of a BAR) 108 a specific P2P provider to use it may check compatibility using 109 :c:func:`pci_p2pdma_distance()` otherwise it may find a memory provider 112 be chosen first. If more than one provider is an equal distance away, the 114 truly random). This function returns the PCI device to use for the provider 118 Once a provider is selected, the orchestrator can then use [all …]
|
/linux/drivers/memory/tegra/ |
A D | tegra20-emc.c | 200 struct icc_provider provider; member 962 return container_of(provider, struct tegra_emc, provider); in to_tegra_emc_provider() 968 struct icc_provider *provider = data; in emc_of_icc_xlate_extended() local 1031 emc->provider.dev = emc->dev; in tegra_emc_interconnect_init() 1032 emc->provider.set = emc_icc_set; in tegra_emc_interconnect_init() 1033 emc->provider.data = &emc->provider; in tegra_emc_interconnect_init() 1037 err = icc_provider_add(&emc->provider); in tegra_emc_interconnect_init() 1049 icc_node_add(node, &emc->provider); in tegra_emc_interconnect_init() 1064 icc_node_add(node, &emc->provider); in tegra_emc_interconnect_init() 1069 icc_nodes_remove(&emc->provider); in tegra_emc_interconnect_init() [all …]
|
A D | mc.c | 665 mc->provider.dev = mc->dev; in tegra_mc_interconnect_setup() 666 mc->provider.data = &mc->provider; in tegra_mc_interconnect_setup() 667 mc->provider.set = mc->soc->icc_ops->set; in tegra_mc_interconnect_setup() 668 mc->provider.aggregate = mc->soc->icc_ops->aggregate; in tegra_mc_interconnect_setup() 669 mc->provider.xlate_extended = mc->soc->icc_ops->xlate_extended; in tegra_mc_interconnect_setup() 671 err = icc_provider_add(&mc->provider); in tegra_mc_interconnect_setup() 683 icc_node_add(node, &mc->provider); in tegra_mc_interconnect_setup() 699 icc_node_add(node, &mc->provider); in tegra_mc_interconnect_setup() 710 icc_nodes_remove(&mc->provider); in tegra_mc_interconnect_setup() 712 icc_provider_del(&mc->provider); in tegra_mc_interconnect_setup() [all …]
|
/linux/drivers/phy/ |
A D | phy-pistachio-usb.c | 135 struct phy_provider *provider; in pistachio_usb_phy_probe() local 175 provider = devm_of_phy_provider_register(p_phy->dev, in pistachio_usb_phy_probe() 177 if (IS_ERR(provider)) { in pistachio_usb_phy_probe() 179 PTR_ERR(provider)); in pistachio_usb_phy_probe() 180 return PTR_ERR(provider); in pistachio_usb_phy_probe()
|
/linux/drivers/phy/renesas/ |
A D | phy-rcar-gen3-pcie.c | 77 struct phy_provider *provider; in rcar_gen3_phy_pcie_probe() local 114 provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); in rcar_gen3_phy_pcie_probe() 115 if (IS_ERR(provider)) { in rcar_gen3_phy_pcie_probe() 117 error = PTR_ERR(provider); in rcar_gen3_phy_pcie_probe()
|
/linux/Documentation/devicetree/bindings/reset/ |
A D | reset.txt | 9 a reset provider (e.g. power management or clock module) and received by a 11 ordinate module is reset). This binding exists to represent the provider and 14 A reset signal is represented by the phandle of the provider, plus a reset 16 provider. The length (number of cells) and semantics of the reset specifier 17 are dictated by the binding of the reset provider, although common schemes 50 device manages. Note: if the reset provider specifies '0' for
|