linux/drivers/firmware/tegra/bpmp-private.h
<<
>>
Prefs
   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)
  28extern const struct tegra_bpmp_ops tegra186_bpmp_ops;
  29#endif
  30#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
  31extern const struct tegra_bpmp_ops tegra210_bpmp_ops;
  32#endif
  33
  34#endif
  35