volt.h 730 B

123456789101112131415161718192021222324252627282930313233343536
  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. u8 vidmask;
  14. s16 step;
  15. /* PWM mode */
  16. u32 pwm_freq;
  17. u32 pwm_range;
  18. };
  19. u16 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
  20. u16 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
  21. struct nvbios_volt *);
  22. struct nvbios_volt_entry {
  23. u32 voltage;
  24. u8 vid;
  25. };
  26. u16 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len);
  27. u16 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len,
  28. struct nvbios_volt_entry *);
  29. #endif