xref: /kernel/linux/linux-6.6/drivers/firmware/tegra/bpmp-private.h (revision 62306a36)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/drivers/firmware/tegra/
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (c) 2018, NVIDIA CORPORATION.
4 */
5
6#ifndef __FIRMWARE_TEGRA_BPMP_PRIVATE_H
7#define __FIRMWARE_TEGRA_BPMP_PRIVATE_H
8
9#include <soc/tegra/bpmp.h>
10
11struct tegra_bpmp_ops {
12	int (*init)(struct tegra_bpmp *bpmp);
13	void (*deinit)(struct tegra_bpmp *bpmp);
14	bool (*is_response_ready)(struct tegra_bpmp_channel *channel);
15	bool (*is_request_ready)(struct tegra_bpmp_channel *channel);
16	int (*ack_response)(struct tegra_bpmp_channel *channel);
17	int (*ack_request)(struct tegra_bpmp_channel *channel);
18	bool (*is_response_channel_free)(struct tegra_bpmp_channel *channel);
19	bool (*is_request_channel_free)(struct tegra_bpmp_channel *channel);
20	int (*post_response)(struct tegra_bpmp_channel *channel);
21	int (*post_request)(struct tegra_bpmp_channel *channel);
22	int (*ring_doorbell)(struct tegra_bpmp *bpmp);
23	int (*resume)(struct tegra_bpmp *bpmp);
24};
25
26#if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
27    IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
28    IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
29extern const struct tegra_bpmp_ops tegra186_bpmp_ops;
30#endif
31#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
32extern const struct tegra_bpmp_ops tegra210_bpmp_ops;
33#endif
34
35#endif
36

Indexes created Thu Nov 07 10:32:03 CST 2024