Commit | Line | Data |
---|---|---|
b7019ac5 | 1 | /* SPDX-License-Identifier: MIT */ |
0833428e BS |
2 | #ifndef __NVBIOS_VOLT_H__ |
3 | #define __NVBIOS_VOLT_H__ | |
7bddeba9 MP |
4 | |
5 | enum nvbios_volt_type { | |
6 | NVBIOS_VOLT_GPIO = 0, | |
7 | NVBIOS_VOLT_PWM, | |
8 | }; | |
9 | ||
0833428e | 10 | struct nvbios_volt { |
7bddeba9 | 11 | enum nvbios_volt_type type; |
0833428e BS |
12 | u32 min; |
13 | u32 max; | |
14 | u32 base; | |
7bddeba9 MP |
15 | |
16 | /* GPIO mode */ | |
17f486de KH |
17 | bool ranged; |
18 | u8 vidmask; | |
19 | s16 step; | |
7bddeba9 MP |
20 | |
21 | /* PWM mode */ | |
22 | u32 pwm_freq; | |
23 | u32 pwm_range; | |
0833428e BS |
24 | }; |
25 | ||
ff535412 BS |
26 | u32 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); |
27 | u32 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, | |
0833428e BS |
28 | struct nvbios_volt *); |
29 | ||
30 | struct nvbios_volt_entry { | |
31 | u32 voltage; | |
32 | u8 vid; | |
33 | }; | |
34 | ||
ff535412 BS |
35 | u32 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len); |
36 | u32 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len, | |
0833428e | 37 | struct nvbios_volt_entry *); |
0833428e | 38 | #endif |