1/* $NetBSD: volt.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $ */ 2 3/* SPDX-License-Identifier: MIT */ 4#ifndef __NVBIOS_VOLT_H__ 5#define __NVBIOS_VOLT_H__ 6 7enum nvbios_volt_type { 8 NVBIOS_VOLT_GPIO = 0, 9 NVBIOS_VOLT_PWM, 10}; 11 12struct nvbios_volt { 13 enum nvbios_volt_type type; 14 u32 min; 15 u32 max; 16 u32 base; 17 18 /* GPIO mode */ 19 bool ranged; 20 u8 vidmask; 21 s16 step; 22 23 /* PWM mode */ 24 u32 pwm_freq; 25 u32 pwm_range; 26}; 27 28u32 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); 29u32 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, 30 struct nvbios_volt *); 31 32struct nvbios_volt_entry { 33 u32 voltage; 34 u8 vid; 35}; 36 37u32 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len); 38u32 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len, 39 struct nvbios_volt_entry *); 40#endif 41