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 bool ranged; 17 u8 vidmask; 18 s16 step; 19 20 /* PWM mode */ 21 u32 pwm_freq; 22 u32 pwm_range; 23 }; 24 25 u32 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); 26 u32 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, 27 struct nvbios_volt *); 28 29 struct nvbios_volt_entry { 30 u32 voltage; 31 u8 vid; 32 }; 33 34 u32 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len); 35 u32 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len, 36 struct nvbios_volt_entry *); 37 #endif 38