mmrm_resources.h 917 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef _MMRM_RESOURCES_H_
  6. #define _MMRM_RESOURCES_H_
  7. #include <linux/platform_device.h>
  8. #define MMRM_MAX_THROTTLE_CLIENTS 5
  9. struct corner_info {
  10. const char *name;
  11. u32 volt_factor;
  12. u32 scaling_factor_dyn;
  13. u32 scaling_factor_leak;
  14. };
  15. struct voltage_corner_set {
  16. struct corner_info *corner_tbl;
  17. u32 count;
  18. };
  19. struct nom_clk_src_info {
  20. u32 domain;
  21. u32 clk_src_id;
  22. u32 nom_dyn_pwr;
  23. u32 nom_leak_pwr;
  24. u32 num_hw_block;
  25. };
  26. struct nom_clk_src_set {
  27. struct nom_clk_src_info *clk_src_tbl;
  28. u32 count;
  29. };
  30. struct mmrm_clk_platform_resources {
  31. struct platform_device *pdev;
  32. u32 scheme;
  33. u32 clsid_threshold_clients[MMRM_MAX_THROTTLE_CLIENTS];
  34. u16 throttle_clients_data_length;
  35. struct voltage_corner_set corner_set;
  36. struct nom_clk_src_set nom_clk_set;
  37. u32 peak_threshold;
  38. };
  39. #endif