qcom_scmi_vendor.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Qcom scmi vendor protocol's header
  4. *
  5. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  6. */
  7. #ifndef _QCOM_SCMI_VENDOR_H
  8. #define _QCOM_SCMI_VENDOR_H
  9. #include <linux/bitfield.h>
  10. #include <linux/device.h>
  11. #include <linux/types.h>
  12. #define QCOM_SCMI_VENDOR_PROTOCOL 0x80
  13. struct scmi_protocol_handle;
  14. extern struct scmi_device *get_qcom_scmi_device(void);
  15. /**
  16. * struct qcom_scmi_vendor_ops - represents the various operations provided
  17. * by qcom scmi vendor protocol
  18. */
  19. struct qcom_scmi_vendor_ops {
  20. int (*set_param)(const struct scmi_protocol_handle *ph, void *buf, u64 algo_str,
  21. u32 param_id, size_t size);
  22. int (*get_param)(const struct scmi_protocol_handle *ph, void *buf, u64 algo_str,
  23. u32 param_id, size_t tx_size, size_t rx_size);
  24. int (*start_activity)(const struct scmi_protocol_handle *ph, void *buf, u64 algo_str,
  25. u32 param_id, size_t size);
  26. int (*stop_activity)(const struct scmi_protocol_handle *ph, void *buf, u64 algo_str,
  27. u32 param_id, size_t size);
  28. };
  29. #endif /* _QCOM_SCMI_VENDOR_H */