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