/linux-6.1.9/drivers/firmware/tegra/ |
D | bpmp.c | 37 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 …]
|
D | bpmp-tegra186.c | 81 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 …]
|
D | bpmp-tegra210.c | 37 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 …]
|
D | Makefile | 2 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_ARCH_TEGRA_234_SOC) += bpmp-tegra186.o 7 tegra-bpmp-$(CONFIG_DEBUG_FS) += bpmp-debugfs.o 8 obj-$(CONFIG_TEGRA_BPMP) += tegra-bpmp.o
|
D | bpmp-debugfs.c | 74 static const char *get_filename(struct tegra_bpmp *bpmp, in get_filename() argument 86 root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf, in get_filename() 111 static int mrq_debug_open(struct tegra_bpmp *bpmp, const char *name, in mrq_debug_open() argument 138 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_open() 150 static int mrq_debug_close(struct tegra_bpmp *bpmp, uint32_t fd) in mrq_debug_close() argument 172 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_close() 181 static int mrq_debug_read(struct tegra_bpmp *bpmp, const char *name, in mrq_debug_read() argument 203 err = mrq_debug_open(bpmp, name, &fd, &len, 0); in mrq_debug_read() 216 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debug_read() 238 err = mrq_debug_close(bpmp, fd); in mrq_debug_read() [all …]
|
D | bpmp-private.h | 12 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-6.1.9/drivers/soc/tegra/ |
D | powergate-bpmp.c | 21 struct tegra_bpmp *bpmp; member 31 static int tegra_bpmp_powergate_set_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_set_state() argument 48 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_set_state() 57 static int tegra_bpmp_powergate_get_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_state() argument 78 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_state() 87 static int tegra_bpmp_powergate_get_max_id(struct tegra_bpmp *bpmp) in tegra_bpmp_powergate_get_max_id() argument 106 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_max_id() 115 static char *tegra_bpmp_powergate_get_name(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_name() argument 136 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_name() 143 static inline bool tegra_bpmp_powergate_is_powered(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_is_powered() argument [all …]
|
/linux-6.1.9/arch/arm64/boot/dts/nvidia/ |
D | tegra186.dtsi | 10 #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 resets = <&bpmp TEGRA186_RESET_GPCDMA>; 121 clocks = <&bpmp TEGRA186_CLK_APE>, 122 <&bpmp TEGRA186_CLK_APB2APE>; [all …]
|
D | tegra194.dtsi | 10 #include <dt-bindings/thermal/tegra194-bpmp-thermal.h> 118 clocks = <&bpmp TEGRA194_CLK_AXI_CBB>, 119 <&bpmp TEGRA194_CLK_EQOS_AXI>, 120 <&bpmp TEGRA194_CLK_EQOS_RX>, 121 <&bpmp TEGRA194_CLK_EQOS_TX>, 122 <&bpmp TEGRA194_CLK_EQOS_PTP_REF>; 124 resets = <&bpmp TEGRA194_RESET_EQOS>; 143 resets = <&bpmp TEGRA194_RESET_GPCDMA>; 185 clocks = <&bpmp TEGRA194_CLK_APE>, 186 <&bpmp TEGRA194_CLK_APB2APE>; [all …]
|
D | tegra234.dtsi | 28 resets = <&bpmp TEGRA234_RESET_GPCDMA>; 69 clocks = <&bpmp TEGRA234_CLK_APE>, 70 <&bpmp TEGRA234_CLK_APB2APE>; 72 power-domains = <&bpmp TEGRA234_POWER_DOMAIN_AUD>; 81 clocks = <&bpmp TEGRA234_CLK_AHUB>; 83 assigned-clocks = <&bpmp TEGRA234_CLK_AHUB>; 84 assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>; 94 clocks = <&bpmp TEGRA234_CLK_I2S1>, 95 <&bpmp TEGRA234_CLK_I2S1_SYNC_INPUT>; 97 assigned-clocks = <&bpmp TEGRA234_CLK_I2S1>; [all …]
|
/linux-6.1.9/include/soc/tegra/ |
D | bpmp.h | 40 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-6.1.9/drivers/clk/tegra/ |
D | clk-bpmp.c | 31 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() 190 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_determine_rate() 218 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_set_parent() [all …]
|
/linux-6.1.9/Documentation/devicetree/bindings/display/tegra/ |
D | nvidia,tegra186-display.yaml | 128 resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>, 129 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>, 130 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>, 131 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP2>, 132 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP3>, 133 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP4>, 134 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP5>; 137 clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_DISP>, 138 <&bpmp TEGRA186_CLK_NVDISPLAY_DSC>, 139 <&bpmp TEGRA186_CLK_NVDISPLAYHUB>; [all …]
|
/linux-6.1.9/drivers/reset/tegra/ |
D | reset-bpmp.c | 20 struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc); in tegra_bpmp_reset_common() local 34 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_reset_common() 67 int tegra_bpmp_init_resets(struct tegra_bpmp *bpmp) in tegra_bpmp_init_resets() argument 69 bpmp->rstc.ops = &tegra_bpmp_reset_ops; in tegra_bpmp_init_resets() 70 bpmp->rstc.owner = THIS_MODULE; in tegra_bpmp_init_resets() 71 bpmp->rstc.of_node = bpmp->dev->of_node; in tegra_bpmp_init_resets() 72 bpmp->rstc.nr_resets = bpmp->soc->num_resets; in tegra_bpmp_init_resets() 74 return devm_reset_controller_register(bpmp->dev, &bpmp->rstc); in tegra_bpmp_init_resets()
|
/linux-6.1.9/Documentation/devicetree/bindings/net/ |
D | nvidia,tegra234-mgbe.yaml | 124 clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>, 125 <&bpmp TEGRA234_CLK_MGBE0_MAC>, 126 <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>, 127 <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>, 128 <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>, 129 <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>, 130 <&bpmp TEGRA234_CLK_MGBE0_TX>, 131 <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>, 132 <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>, 133 <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>, [all …]
|
/linux-6.1.9/drivers/thermal/tegra/ |
D | tegra-bpmp-thermal.c | 28 struct tegra_bpmp *bpmp; member 52 err = tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in __tegra_bpmp_thermal_get_temp() 87 err = tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in tegra_bpmp_thermal_set_trips() 136 static int tegra_bpmp_thermal_get_num_zones(struct tegra_bpmp *bpmp, in tegra_bpmp_thermal_get_num_zones() argument 154 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_thermal_get_num_zones() 172 struct tegra_bpmp *bpmp = dev_get_drvdata(pdev->dev.parent); in tegra_bpmp_thermal_probe() local 183 tegra->bpmp = bpmp; in tegra_bpmp_thermal_probe() 185 err = tegra_bpmp_thermal_get_num_zones(bpmp, &max_num_zones); in tegra_bpmp_thermal_probe() 230 err = tegra_bpmp_request_mrq(bpmp, MRQ_THERMAL, bpmp_mrq_thermal, in tegra_bpmp_thermal_probe() 247 tegra_bpmp_free_mrq(tegra->bpmp, MRQ_THERMAL, tegra); in tegra_bpmp_thermal_remove()
|
/linux-6.1.9/drivers/cpufreq/ |
D | tegra186-cpufreq.c | 130 struct platform_device *pdev, struct tegra_bpmp *bpmp, in init_vhint_table() argument 141 virt = dma_alloc_coherent(bpmp->dev, sizeof(*data), &phys, in init_vhint_table() 157 err = tegra_bpmp_transfer(bpmp, &msg); in init_vhint_table() 213 dma_free_coherent(bpmp->dev, sizeof(*data), virt, phys); in init_vhint_table() 221 struct tegra_bpmp *bpmp; in tegra186_cpufreq_probe() local 235 bpmp = tegra_bpmp_get(&pdev->dev); in tegra186_cpufreq_probe() 236 if (IS_ERR(bpmp)) in tegra186_cpufreq_probe() 237 return PTR_ERR(bpmp); in tegra186_cpufreq_probe() 248 cluster->table = init_vhint_table(pdev, bpmp, cluster, i); in tegra186_cpufreq_probe() 260 tegra_bpmp_put(bpmp); in tegra186_cpufreq_probe()
|
/linux-6.1.9/Documentation/devicetree/bindings/gpu/ |
D | nvidia,gk20a.txt | 87 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-6.1.9/Documentation/devicetree/bindings/firmware/ |
D | nvidia,tegra186-bpmp.yaml | 4 $id: http://devicetree.org/schemas/firmware/nvidia,tegra186-bpmp.yaml# 68 - nvidia,tegra194-bpmp 69 - nvidia,tegra234-bpmp 70 - const: nvidia,tegra186-bpmp 71 - const: nvidia,tegra186-bpmp 149 label = "cpu-bpmp-tx"; 155 label = "cpu-bpmp-rx"; 160 bpmp { 161 compatible = "nvidia,tegra186-bpmp"; 176 compatible = "nvidia,tegra186-bpmp-i2c"; [all …]
|
/linux-6.1.9/Documentation/devicetree/bindings/i2c/ |
D | nvidia,tegra186-bpmp-i2c.yaml | 4 $id: http://devicetree.org/schemas/i2c/nvidia,tegra186-bpmp-i2c.yaml# 21 See ../firmware/nvidia,tegra186-bpmp.yaml for details of the BPMP 29 const: nvidia,tegra186-bpmp-i2c 31 nvidia,bpmp-bus-id: 45 - nvidia,bpmp-bus-id
|
/linux-6.1.9/Documentation/devicetree/bindings/pci/ |
D | nvidia,tegra194-pcie-ep.yaml | 116 nvidia,bpmp: 204 - nvidia,bpmp 229 clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>; 232 resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>, 233 <&bpmp TEGRA194_RESET_PEX1_CORE_5>; 236 power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>; 240 nvidia,bpmp = <&bpmp 5>; 278 power-domains = <&bpmp TEGRA234_POWER_DOMAIN_PCIEX8A>; 288 clocks = <&bpmp TEGRA234_CLK_PEX1_C5_CORE>; 291 resets = <&bpmp TEGRA234_RESET_PEX1_CORE_5_APB>, [all …]
|
/linux-6.1.9/Documentation/devicetree/bindings/arm/tegra/ |
D | nvidia,tegra-ccplex-cluster.yaml | 31 nvidia,bpmp: 42 - nvidia,bpmp 49 nvidia,bpmp = <&bpmp>;
|
/linux-6.1.9/drivers/memory/tegra/ |
D | tegra186-emc.c | 20 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() 255 tegra_bpmp_put(emc->bpmp); in tegra186_emc_probe() 264 tegra_bpmp_put(emc->bpmp); in tegra186_emc_remove()
|
/linux-6.1.9/Documentation/devicetree/bindings/thermal/ |
D | nvidia,tegra186-bpmp-thermal.yaml | 4 $id: http://devicetree.org/schemas/thermal/nvidia,tegra186-bpmp-thermal.yaml# 20 node. See ../firmware/nvidia,tegra186-bpmp.yaml for details of the 32 - nvidia,tegra186-bpmp-thermal 33 - nvidia,tegra194-bpmp-thermal
|
/linux-6.1.9/Documentation/devicetree/bindings/arm/ |
D | nvidia,tegra194-ccplex.yaml | 27 nvidia,bpmp: 30 Specifies the bpmp node that needs to be queried to get 39 nvidia,bpmp = <&bpmp>;
|