Home
last modified time | relevance | path

Searched refs:bpmp (Results 1 – 25 of 34) sorted by relevance

12

/Linux-v5.10/drivers/firmware/tegra/
Dbpmp.c37 struct tegra_bpmp *bpmp = channel->bpmp; in channel_to_ops() local
39 return bpmp->soc->ops; in channel_to_ops()
45 struct tegra_bpmp *bpmp; in tegra_bpmp_get() local
54 bpmp = ERR_PTR(-ENODEV); in tegra_bpmp_get()
58 bpmp = platform_get_drvdata(pdev); in tegra_bpmp_get()
59 if (!bpmp) { in tegra_bpmp_get()
60 bpmp = ERR_PTR(-EPROBE_DEFER); in tegra_bpmp_get()
67 return bpmp; in tegra_bpmp_get()
71 void tegra_bpmp_put(struct tegra_bpmp *bpmp) in tegra_bpmp_put() argument
73 if (bpmp) in tegra_bpmp_put()
[all …]
Dbpmp-tegra186.c81 static int tegra186_bpmp_ring_doorbell(struct tegra_bpmp *bpmp) in tegra186_bpmp_ring_doorbell() argument
83 struct tegra186_bpmp *priv = bpmp->priv; in tegra186_bpmp_ring_doorbell()
97 struct tegra_bpmp *bpmp = data; in tegra186_bpmp_ivc_notify() local
98 struct tegra186_bpmp *priv = bpmp->priv; in tegra186_bpmp_ivc_notify()
103 tegra186_bpmp_ring_doorbell(bpmp); in tegra186_bpmp_ivc_notify()
107 struct tegra_bpmp *bpmp, in tegra186_bpmp_channel_init() argument
110 struct tegra186_bpmp *priv = bpmp->priv; in tegra186_bpmp_channel_init()
115 channel->ivc = devm_kzalloc(bpmp->dev, sizeof(*channel->ivc), in tegra186_bpmp_channel_init()
128 bpmp); in tegra186_bpmp_channel_init()
130 dev_err(bpmp->dev, "failed to setup IVC for channel %u: %d\n", in tegra186_bpmp_channel_init()
[all …]
Dbpmp-tegra210.c37 static u32 bpmp_channel_status(struct tegra_bpmp *bpmp, unsigned int index) in bpmp_channel_status() argument
39 struct tegra210_bpmp *priv = bpmp->priv; in bpmp_channel_status()
48 return bpmp_channel_status(channel->bpmp, index) == MA_ACKD(index); in tegra210_bpmp_is_response_ready()
55 return bpmp_channel_status(channel->bpmp, index) == SL_SIGL(index); in tegra210_bpmp_is_request_ready()
63 return bpmp_channel_status(channel->bpmp, index) == MA_FREE(index); in tegra210_bpmp_is_request_channel_free()
71 return bpmp_channel_status(channel->bpmp, index) == SL_QUED(index); in tegra210_bpmp_is_response_channel_free()
76 struct tegra210_bpmp *priv = channel->bpmp->priv; in tegra210_bpmp_post_request()
85 struct tegra210_bpmp *priv = channel->bpmp->priv; in tegra210_bpmp_post_response()
94 struct tegra210_bpmp *priv = channel->bpmp->priv; in tegra210_bpmp_ack_response()
104 struct tegra210_bpmp *priv = channel->bpmp->priv; in tegra210_bpmp_ack_request()
[all …]
Dbpmp-debugfs.c74 static const char *get_filename(struct tegra_bpmp *bpmp, in get_filename() argument
82 root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf, in get_filename()
102 static int mrq_debug_open(struct tegra_bpmp *bpmp, const char *name, in mrq_debug_open() argument
129 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_open()
141 static int mrq_debug_close(struct tegra_bpmp *bpmp, uint32_t fd) in mrq_debug_close() argument
163 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_close()
172 static int mrq_debug_read(struct tegra_bpmp *bpmp, const char *name, in mrq_debug_read() argument
194 err = mrq_debug_open(bpmp, name, &fd, &len, 0); in mrq_debug_read()
207 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_read()
229 err = mrq_debug_close(bpmp, fd); in mrq_debug_read()
[all …]
DMakefile2 tegra-bpmp-y = bpmp.o
3 tegra-bpmp-$(CONFIG_ARCH_TEGRA_210_SOC) += bpmp-tegra210.o
4 tegra-bpmp-$(CONFIG_ARCH_TEGRA_186_SOC) += bpmp-tegra186.o
5 tegra-bpmp-$(CONFIG_ARCH_TEGRA_194_SOC) += bpmp-tegra186.o
6 tegra-bpmp-$(CONFIG_DEBUG_FS) += bpmp-debugfs.o
7 obj-$(CONFIG_TEGRA_BPMP) += tegra-bpmp.o
Dbpmp-private.h12 int (*init)(struct tegra_bpmp *bpmp);
13 void (*deinit)(struct tegra_bpmp *bpmp);
22 int (*ring_doorbell)(struct tegra_bpmp *bpmp);
23 int (*resume)(struct tegra_bpmp *bpmp);
/Linux-v5.10/drivers/soc/tegra/
Dpowergate-bpmp.c22 struct tegra_bpmp *bpmp; member
32 static int tegra_bpmp_powergate_set_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_set_state() argument
49 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_set_state()
58 static int tegra_bpmp_powergate_get_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_state() argument
79 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_state()
88 static int tegra_bpmp_powergate_get_max_id(struct tegra_bpmp *bpmp) in tegra_bpmp_powergate_get_max_id() argument
107 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_max_id()
116 static char *tegra_bpmp_powergate_get_name(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_name() argument
137 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_name()
144 static inline bool tegra_bpmp_powergate_is_powered(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_is_powered() argument
[all …]
/Linux-v5.10/arch/arm64/boot/dts/nvidia/
Dtegra186.dtsi10 #include <dt-bindings/thermal/tegra186-bpmp-thermal.h>
55 clocks = <&bpmp TEGRA186_CLK_AXI_CBB>,
56 <&bpmp TEGRA186_CLK_EQOS_AXI>,
57 <&bpmp TEGRA186_CLK_EQOS_RX>,
58 <&bpmp TEGRA186_CLK_EQOS_TX>,
59 <&bpmp TEGRA186_CLK_EQOS_PTP_REF>;
61 resets = <&bpmp TEGRA186_RESET_EQOS>;
79 clocks = <&bpmp TEGRA186_CLK_APE>,
80 <&bpmp TEGRA186_CLK_APB2APE>;
82 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_AUD>;
[all …]
Dtegra194.dtsi9 #include <dt-bindings/thermal/tegra194-bpmp-thermal.h>
54 clocks = <&bpmp TEGRA194_CLK_AXI_CBB>,
55 <&bpmp TEGRA194_CLK_EQOS_AXI>,
56 <&bpmp TEGRA194_CLK_EQOS_RX>,
57 <&bpmp TEGRA194_CLK_EQOS_TX>,
58 <&bpmp TEGRA194_CLK_EQOS_PTP_REF>;
60 resets = <&bpmp TEGRA194_RESET_EQOS>;
77 clocks = <&bpmp TEGRA194_CLK_APE>,
78 <&bpmp TEGRA194_CLK_APB2APE>;
80 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_AUD>;
[all …]
Dtegra234.dtsi32 clocks = <&bpmp TEGRA234_CLK_UARTA>;
34 resets = <&bpmp TEGRA234_RESET_UARTA>;
43 clocks = <&bpmp TEGRA234_CLK_SDMMC4>;
45 resets = <&bpmp TEGRA234_RESET_SDMMC4>;
54 clocks = <&bpmp TEGRA234_CLK_FUSE>;
134 label = "cpu-bpmp-tx";
140 label = "cpu-bpmp-rx";
145 bpmp: bpmp { label
146 compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp";
155 compatible = "nvidia,tegra186-bpmp-i2c";
[all …]
/Linux-v5.10/include/soc/tegra/
Dbpmp.h40 struct tegra_bpmp *bpmp; member
111 void tegra_bpmp_put(struct tegra_bpmp *bpmp);
112 int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp,
114 int tegra_bpmp_transfer(struct tegra_bpmp *bpmp,
119 int tegra_bpmp_request_mrq(struct tegra_bpmp *bpmp, unsigned int mrq,
121 void tegra_bpmp_free_mrq(struct tegra_bpmp *bpmp, unsigned int mrq,
123 bool tegra_bpmp_mrq_is_supported(struct tegra_bpmp *bpmp, unsigned int mrq);
129 static inline void tegra_bpmp_put(struct tegra_bpmp *bpmp) in tegra_bpmp_put() argument
132 static inline int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp, in tegra_bpmp_transfer_atomic() argument
137 static inline int tegra_bpmp_transfer(struct tegra_bpmp *bpmp, in tegra_bpmp_transfer() argument
[all …]
/Linux-v5.10/drivers/clk/tegra/
Dclk-bpmp.c31 struct tegra_bpmp *bpmp; member
59 static int tegra_bpmp_clk_transfer(struct tegra_bpmp *bpmp, in tegra_bpmp_clk_transfer() argument
86 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_clk_transfer()
104 return tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_prepare()
117 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_unprepare()
119 dev_err(clk->bpmp->dev, "failed to disable clock %s: %d\n", in tegra_bpmp_clk_unprepare()
136 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_is_prepared()
160 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_recalc_rate()
187 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_round_rate()
213 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_set_parent()
[all …]
/Linux-v5.10/drivers/reset/tegra/
Dreset-bpmp.c20 struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc); in tegra_bpmp_reset_common() local
33 return tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_reset_common()
60 int tegra_bpmp_init_resets(struct tegra_bpmp *bpmp) in tegra_bpmp_init_resets() argument
62 bpmp->rstc.ops = &tegra_bpmp_reset_ops; in tegra_bpmp_init_resets()
63 bpmp->rstc.owner = THIS_MODULE; in tegra_bpmp_init_resets()
64 bpmp->rstc.of_node = bpmp->dev->of_node; in tegra_bpmp_init_resets()
65 bpmp->rstc.nr_resets = bpmp->soc->num_resets; in tegra_bpmp_init_resets()
67 return devm_reset_controller_register(bpmp->dev, &bpmp->rstc); in tegra_bpmp_init_resets()
DMakefile2 obj-$(CONFIG_RESET_TEGRA_BPMP) += reset-bpmp.o
/Linux-v5.10/drivers/thermal/tegra/
Dtegra-bpmp-thermal.c28 struct tegra_bpmp *bpmp; member
52 err = tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in tegra_bpmp_thermal_get_temp()
79 return tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in tegra_bpmp_thermal_set_trips()
122 static int tegra_bpmp_thermal_get_num_zones(struct tegra_bpmp *bpmp, in tegra_bpmp_thermal_get_num_zones() argument
140 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_thermal_get_num_zones()
156 struct tegra_bpmp *bpmp = dev_get_drvdata(pdev->dev.parent); in tegra_bpmp_thermal_probe() local
167 tegra->bpmp = bpmp; in tegra_bpmp_thermal_probe()
169 err = tegra_bpmp_thermal_get_num_zones(bpmp, &max_num_zones); in tegra_bpmp_thermal_probe()
214 err = tegra_bpmp_request_mrq(bpmp, MRQ_THERMAL, bpmp_mrq_thermal, in tegra_bpmp_thermal_probe()
231 tegra_bpmp_free_mrq(tegra->bpmp, MRQ_THERMAL, tegra); in tegra_bpmp_thermal_remove()
/Linux-v5.10/Documentation/devicetree/bindings/i2c/
Dnvidia,tegra186-bpmp-i2c.txt10 ../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding.
19 - "nvidia,tegra186-bpmp-i2c".
26 - nvidia,bpmp-bus-id:
33 bpmp {
37 compatible = "nvidia,tegra186-bpmp-i2c";
40 nvidia,bpmp-bus-id = <5>;
/Linux-v5.10/Documentation/devicetree/bindings/gpu/
Dnvidia,gk20a.txt87 clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
88 <&bpmp TEGRA186_CLK_GPU>;
90 resets = <&bpmp TEGRA186_RESET_GPU>;
92 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
105 clocks = <&bpmp TEGRA194_CLK_GPCCLK>,
106 <&bpmp TEGRA194_CLK_GPU_PWR>,
107 <&bpmp TEGRA194_CLK_FUSE>;
109 resets = <&bpmp TEGRA194_RESET_GPU>;
113 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_GPU>;
/Linux-v5.10/Documentation/devicetree/bindings/thermal/
Dnvidia,tegra186-bpmp-thermal.txt9 ../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding.
18 - "nvidia,tegra186-bpmp-thermal"
19 - "nvidia,tegra194-bpmp-thermal"
26 bpmp {
30 compatible = "nvidia,tegra186-bpmp-thermal";
/Linux-v5.10/drivers/cpufreq/
Dtegra186-cpufreq.c143 struct platform_device *pdev, struct tegra_bpmp *bpmp, in init_vhint_table() argument
154 virt = dma_alloc_coherent(bpmp->dev, sizeof(*data), &phys, in init_vhint_table()
170 err = tegra_bpmp_transfer(bpmp, &msg); in init_vhint_table()
222 dma_free_coherent(bpmp->dev, sizeof(*data), virt, phys); in init_vhint_table()
230 struct tegra_bpmp *bpmp; in tegra186_cpufreq_probe() local
244 bpmp = tegra_bpmp_get(&pdev->dev); in tegra186_cpufreq_probe()
245 if (IS_ERR(bpmp)) in tegra186_cpufreq_probe()
246 return PTR_ERR(bpmp); in tegra186_cpufreq_probe()
258 cluster->table = init_vhint_table(pdev, bpmp, cluster); in tegra186_cpufreq_probe()
270 tegra_bpmp_put(bpmp); in tegra186_cpufreq_probe()
Dtegra194-cpufreq.c252 init_freq_table(struct platform_device *pdev, struct tegra_bpmp *bpmp, in init_freq_table() argument
273 err = tegra_bpmp_transfer(bpmp, &msg); in init_freq_table()
320 struct tegra_bpmp *bpmp; in tegra194_cpufreq_probe() local
335 bpmp = tegra_bpmp_get(&pdev->dev); in tegra194_cpufreq_probe()
336 if (IS_ERR(bpmp)) in tegra194_cpufreq_probe()
337 return PTR_ERR(bpmp); in tegra194_cpufreq_probe()
347 data->tables[i] = init_freq_table(pdev, bpmp, i); in tegra194_cpufreq_probe()
363 tegra_bpmp_put(bpmp); in tegra194_cpufreq_probe()
/Linux-v5.10/drivers/memory/tegra/
Dtegra186-emc.c20 struct tegra_bpmp *bpmp; member
174 emc->bpmp = tegra_bpmp_get(&pdev->dev); in tegra186_emc_probe()
175 if (IS_ERR(emc->bpmp)) in tegra186_emc_probe()
176 return dev_err_probe(&pdev->dev, PTR_ERR(emc->bpmp), "failed to get BPMP\n"); in tegra186_emc_probe()
195 err = tegra_bpmp_transfer(emc->bpmp, &msg); in tegra186_emc_probe()
250 tegra_bpmp_put(emc->bpmp); in tegra186_emc_probe()
259 tegra_bpmp_put(emc->bpmp); in tegra186_emc_remove()
/Linux-v5.10/Documentation/devicetree/bindings/firmware/
Dnvidia,tegra210-bpmp.txt15 - "nvidia,tegra210-bpmp"
24 offloaded to bpmp.
28 bpmp@70016000 {
29 compatible = "nvidia,tegra210-bpmp";
Dnvidia,tegra186-bpmp.txt14 - "nvidia,tegra186-bpmp"
81 compatible = "nvidia,tegra186-bpmp-shmem";
83 label = "cpu-bpmp-tx";
88 compatible = "nvidia,tegra186-bpmp-shmem";
90 label = "cpu-bpmp-rx";
95 bpmp {
96 compatible = "nvidia,tegra186-bpmp";
/Linux-v5.10/Documentation/devicetree/bindings/pci/
Dnvidia,tegra194-pcie.txt47 - nvidia,bpmp: Must contain a pair of phandle to BPMP controller node followed
145 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
160 clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_0>;
163 resets = <&bpmp TEGRA194_RESET_PEX0_CORE_0_APB>,
164 <&bpmp TEGRA194_RESET_PEX0_CORE_0>;
175 nvidia,bpmp = <&bpmp 0>;
201 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
215 clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>;
218 resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
219 <&bpmp TEGRA194_RESET_PEX1_CORE_5>;
[all …]
/Linux-v5.10/drivers/i2c/busses/
Di2c-tegra-bpmp.c32 struct tegra_bpmp *bpmp; member
216 err = tegra_bpmp_transfer_atomic(i2c->bpmp, &msg); in tegra_bpmp_i2c_msg_xfer()
218 err = tegra_bpmp_transfer(i2c->bpmp, &msg); in tegra_bpmp_i2c_msg_xfer()
298 i2c->bpmp = dev_get_drvdata(pdev->dev.parent); in tegra_bpmp_i2c_probe()
299 if (!i2c->bpmp) in tegra_bpmp_i2c_probe()

12