| /kernel/linux/linux-4.19/drivers/firmware/tegra/ |
| D | bpmp.c | 24 #include <soc/tegra/bpmp.h> 25 #include <soc/tegra/bpmp-abi.h> 40 struct tegra_bpmp *bpmp; in tegra_bpmp_get() local 43 np = of_parse_phandle(dev->of_node, "nvidia,bpmp", 0); in tegra_bpmp_get() 49 bpmp = ERR_PTR(-ENODEV); in tegra_bpmp_get() 53 bpmp = platform_get_drvdata(pdev); in tegra_bpmp_get() 54 if (!bpmp) { in tegra_bpmp_get() 55 bpmp = ERR_PTR(-EPROBE_DEFER); in tegra_bpmp_get() 62 return bpmp; in tegra_bpmp_get() 66 void tegra_bpmp_put(struct tegra_bpmp *bpmp) in tegra_bpmp_put() argument [all …]
|
| D | bpmp-debugfs.c | 18 #include <soc/tegra/bpmp.h> 19 #include <soc/tegra/bpmp-abi.h> 79 /* map filename in Linux debugfs to corresponding entry in BPMP */ 80 static const char *get_filename(struct tegra_bpmp *bpmp, in get_filename() argument 88 root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf, in get_filename() 108 static int mrq_debugfs_read(struct tegra_bpmp *bpmp, in mrq_debugfs_read() argument 136 err = tegra_bpmp_transfer(bpmp, &msg); in mrq_debugfs_read() 145 static int mrq_debugfs_write(struct tegra_bpmp *bpmp, in mrq_debugfs_write() argument 166 return tegra_bpmp_transfer(bpmp, &msg); in mrq_debugfs_write() 169 static int mrq_debugfs_dumpdir(struct tegra_bpmp *bpmp, dma_addr_t addr, in mrq_debugfs_dumpdir() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/firmware/tegra/ |
| D | bpmp.c | 18 #include <soc/tegra/bpmp.h> 19 #include <soc/tegra/bpmp-abi.h> 22 #include "bpmp-private.h" 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 48 np = of_parse_phandle(dev->of_node, "nvidia,bpmp", 0); in tegra_bpmp_get() 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() [all …]
|
| D | bpmp-tegra186.c | 10 #include <soc/tegra/bpmp.h> 11 #include <soc/tegra/bpmp-abi.h> 14 #include "bpmp-private.h" 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() [all …]
|
| D | bpmp-tegra210.c | 12 #include <soc/tegra/bpmp.h> 14 #include "bpmp-private.h" 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() [all …]
|
| D | bpmp-debugfs.c | 10 #include <soc/tegra/bpmp.h> 11 #include <soc/tegra/bpmp-abi.h> 73 /* map filename in Linux debugfs to corresponding entry in BPMP */ 74 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 [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
|
| /kernel/linux/linux-4.19/arch/arm64/boot/dts/nvidia/ |
| D | tegra186.dtsi | 9 #include <dt-bindings/thermal/tegra186-bpmp-thermal.h> 54 clocks = <&bpmp TEGRA186_CLK_AXI_CBB>, 55 <&bpmp TEGRA186_CLK_EQOS_AXI>, 56 <&bpmp TEGRA186_CLK_EQOS_RX>, 57 <&bpmp TEGRA186_CLK_EQOS_TX>, 58 <&bpmp TEGRA186_CLK_EQOS_PTP_REF>; 60 resets = <&bpmp TEGRA186_RESET_EQOS>; 82 clocks = <&bpmp TEGRA186_CLK_UARTA>; 84 resets = <&bpmp TEGRA186_RESET_UARTA>; 94 clocks = <&bpmp TEGRA186_CLK_UARTB>; [all …]
|
| D | tegra194.dtsi | 43 clocks = <&bpmp TEGRA194_CLK_AXI_CBB>, 44 <&bpmp TEGRA194_CLK_EQOS_AXI>, 45 <&bpmp TEGRA194_CLK_EQOS_RX>, 46 <&bpmp TEGRA194_CLK_EQOS_TX>, 47 <&bpmp TEGRA194_CLK_EQOS_PTP_REF>; 49 resets = <&bpmp TEGRA194_RESET_EQOS>; 65 clocks = <&bpmp TEGRA194_CLK_UARTA>; 67 resets = <&bpmp TEGRA194_RESET_UARTA>; 77 clocks = <&bpmp TEGRA194_CLK_UARTB>; 79 resets = <&bpmp TEGRA194_RESET_UARTB>; [all …]
|
| /kernel/linux/linux-5.10/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 clocks = <&bpmp TEGRA186_CLK_APE>, 80 <&bpmp TEGRA186_CLK_APB2APE>; 82 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_AUD>; [all …]
|
| D | tegra194.dtsi | 9 #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 …]
|
| /kernel/linux/linux-5.10/drivers/soc/tegra/ |
| D | powergate-bpmp.c | 12 #include <soc/tegra/bpmp.h> 13 #include <soc/tegra/bpmp-abi.h> 22 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 [all …]
|
| /kernel/linux/linux-4.19/drivers/soc/tegra/ |
| D | powergate-bpmp.c | 20 #include <soc/tegra/bpmp.h> 21 #include <soc/tegra/bpmp-abi.h> 30 struct tegra_bpmp *bpmp; member 40 static int tegra_bpmp_powergate_set_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_set_state() argument 57 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_set_state() 66 static int tegra_bpmp_powergate_get_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_state() argument 87 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_state() 96 static int tegra_bpmp_powergate_get_max_id(struct tegra_bpmp *bpmp) in tegra_bpmp_powergate_get_max_id() argument 115 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_max_id() 124 static char *tegra_bpmp_powergate_get_name(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_name() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/clk/tegra/ |
| D | clk-bpmp.c | 11 #include <soc/tegra/bpmp.h> 12 #include <soc/tegra/bpmp-abi.h> 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() [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/tegra/ |
| D | clk-bpmp.c | 14 #include <soc/tegra/bpmp.h> 15 #include <soc/tegra/bpmp-abi.h> 34 struct tegra_bpmp *bpmp; member 62 static int tegra_bpmp_clk_transfer(struct tegra_bpmp *bpmp, in tegra_bpmp_clk_transfer() argument 89 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_clk_transfer() 107 return tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_prepare() 120 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_unprepare() 122 dev_err(clk->bpmp->dev, "failed to disable clock %s: %d\n", in tegra_bpmp_clk_unprepare() 139 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_is_prepared() 163 err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); in tegra_bpmp_clk_recalc_rate() [all …]
|
| /kernel/linux/linux-5.10/include/soc/tegra/ |
| D | bpmp.h | 15 #include <soc/tegra/bpmp-abi.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 [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/firmware/ |
| D | nvidia,tegra186-bpmp.txt | 1 NVIDIA Tegra Boot and Power Management Processor (BPMP) 3 The BPMP is a specific processor in Tegra chip, which is designed for 6 defines the resources that would be used by the BPMP firmware driver, 8 and BPMP. 11 - name : Should be bpmp 15 - "nvidia,tegra186-bpmp" 18 the IPC between CPU and BPMP is based on. 41 The BPMP implements some services which must be represented by separate nodes. 44 be nested directly inside the main BPMP node. 46 Software can determine whether a child node of the BPMP node represents a device [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/firmware/ |
| D | nvidia,tegra186-bpmp.txt | 1 NVIDIA Tegra Boot and Power Management Processor (BPMP) 3 The BPMP is a specific processor in Tegra chip, which is designed for 6 defines the resources that would be used by the BPMP firmware driver, 8 and BPMP. 14 - "nvidia,tegra186-bpmp" 17 the IPC between CPU and BPMP is based on. 40 The BPMP implements some services which must be represented by separate nodes. 43 be nested directly inside the main BPMP node. 45 Software can determine whether a child node of the BPMP node represents a device 48 property may be used to provide configuration information regarding the BPMP [all …]
|
| /kernel/linux/linux-4.19/include/soc/tegra/ |
| D | bpmp.h | 23 #include <soc/tegra/bpmp-abi.h> 45 struct tegra_bpmp *bpmp; member 120 void tegra_bpmp_put(struct tegra_bpmp *bpmp); 121 int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp, 123 int tegra_bpmp_transfer(struct tegra_bpmp *bpmp, 128 int tegra_bpmp_request_mrq(struct tegra_bpmp *bpmp, unsigned int mrq, 130 void tegra_bpmp_free_mrq(struct tegra_bpmp *bpmp, unsigned int mrq, 137 static inline void tegra_bpmp_put(struct tegra_bpmp *bpmp) in tegra_bpmp_put() argument 140 static inline int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp, in tegra_bpmp_transfer_atomic() argument 145 static inline int tegra_bpmp_transfer(struct tegra_bpmp *bpmp, in tegra_bpmp_transfer() argument [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/i2c/ |
| D | nvidia,tegra186-bpmp-i2c.txt | 1 NVIDIA Tegra186 BPMP I2C controller 3 In Tegra186, the BPMP (Boot and Power Management Processor) owns certain HW 5 running on other CPUs must perform IPC to the BPMP in order to execute 9 The BPMP I2C node must be located directly inside the main BPMP node. See 10 ../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding. 19 - "nvidia,tegra186-bpmp-i2c". 26 - nvidia,bpmp-bus-id: 29 BPMP firmware. 33 bpmp { 37 compatible = "nvidia,tegra186-bpmp-i2c"; [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/i2c/ |
| D | nvidia,tegra186-bpmp-i2c.txt | 1 NVIDIA Tegra186 BPMP I2C controller 3 In Tegra186, the BPMP (Boot and Power Management Processor) owns certain HW 5 running on other CPUs must perform IPC to the BPMP in order to execute 9 The BPMP I2C node must be located directly inside the main BPMP node. See 10 ../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding. 19 - "nvidia,tegra186-bpmp-i2c". 26 - nvidia,bpmp-bus-id: 29 BPMP firmware. 33 bpmp { 37 compatible = "nvidia,tegra186-bpmp-i2c"; [all …]
|
| /kernel/linux/linux-5.10/drivers/reset/tegra/ |
| D | reset-bpmp.c | 8 #include <soc/tegra/bpmp.h> 9 #include <soc/tegra/bpmp-abi.h> 20 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()
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/thermal/ |
| D | nvidia,tegra186-bpmp-thermal.txt | 1 NVIDIA Tegra186 BPMP thermal sensor 3 In Tegra186, the BPMP (Boot and Power Management Processor) implements an 6 exposed by BPMP. 8 The BPMP thermal node must be located directly inside the main BPMP node. See 9 ../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";
|
| /kernel/linux/linux-4.19/drivers/reset/tegra/ |
| D | reset-bpmp.c | 11 #include <soc/tegra/bpmp.h> 12 #include <soc/tegra/bpmp-abi.h> 23 struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc); in tegra_bpmp_reset_common() local 36 return tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_reset_common() 63 int tegra_bpmp_init_resets(struct tegra_bpmp *bpmp) in tegra_bpmp_init_resets() argument 65 bpmp->rstc.ops = &tegra_bpmp_reset_ops; in tegra_bpmp_init_resets() 66 bpmp->rstc.owner = THIS_MODULE; in tegra_bpmp_init_resets() 67 bpmp->rstc.of_node = bpmp->dev->of_node; in tegra_bpmp_init_resets() 68 bpmp->rstc.nr_resets = bpmp->soc->num_resets; in tegra_bpmp_init_resets() 70 return devm_reset_controller_register(bpmp->dev, &bpmp->rstc); in tegra_bpmp_init_resets()
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/thermal/ |
| D | nvidia,tegra186-bpmp-thermal.txt | 1 NVIDIA Tegra186 BPMP thermal sensor 3 In Tegra186, the BPMP (Boot and Power Management Processor) implements an 6 exposed by BPMP. 8 The BPMP thermal node must be located directly inside the main BPMP node. See 9 ../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding. 18 - "nvidia,tegra186-bpmp-thermal". 25 bpmp { 29 compatible = "nvidia,tegra186-bpmp-thermal";
|