volt.h 746 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef __NVBIOS_VOLT_H__
  2. #define __NVBIOS_VOLT_H__
  3. enum nvbios_volt_type {
  4. NVBIOS_VOLT_GPIO = 0,
  5. NVBIOS_VOLT_PWM,
  6. };
  7. struct nvbios_volt {
  8. enum nvbios_volt_type type;
  9. u32 min;
  10. u32 max;
  11. u32 base;
  12. /* GPIO mode */
  13. bool ranged;
  14. u8 vidmask;
  15. s16 step;
  16. /* PWM mode */
  17. u32 pwm_freq;
  18. u32 pwm_range;
  19. };
  20. u32 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
  21. u32 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
  22. struct nvbios_volt *);
  23. struct nvbios_volt_entry {
  24. u32 voltage;
  25. u8 vid;
  26. };
  27. u32 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len);
  28. u32 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len,
  29. struct nvbios_volt_entry *);
  30. #endif