1*b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
2c39f472eSBen Skeggs #ifndef __NVBIOS_CSTEP_H__
3c39f472eSBen Skeggs #define __NVBIOS_CSTEP_H__
46496b4e5SBen Skeggs u32 nvbios_cstepTe(struct nvkm_bios *,
5c39f472eSBen Skeggs 		   u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *xnr, u8 *xsz);
6c39f472eSBen Skeggs 
7c39f472eSBen Skeggs struct nvbios_cstepE {
8c39f472eSBen Skeggs 	u8  pstate;
9c39f472eSBen Skeggs 	u8  index;
10c39f472eSBen Skeggs };
11c39f472eSBen Skeggs 
126496b4e5SBen Skeggs u32 nvbios_cstepEe(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr);
136496b4e5SBen Skeggs u32 nvbios_cstepEp(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr,
14c39f472eSBen Skeggs 		   struct nvbios_cstepE *);
156496b4e5SBen Skeggs u32 nvbios_cstepEm(struct nvkm_bios *, u8 pstate, u8 *ver, u8 *hdr,
16c39f472eSBen Skeggs 		   struct nvbios_cstepE *);
17c39f472eSBen Skeggs 
18c39f472eSBen Skeggs struct nvbios_cstepX {
19c39f472eSBen Skeggs 	u32 freq;
20c39f472eSBen Skeggs 	u8  unkn[2];
21c39f472eSBen Skeggs 	u8  voltage;
22c39f472eSBen Skeggs };
23c39f472eSBen Skeggs 
246496b4e5SBen Skeggs u32 nvbios_cstepXe(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr);
256496b4e5SBen Skeggs u32 nvbios_cstepXp(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr,
26c39f472eSBen Skeggs 		   struct nvbios_cstepX *);
27c39f472eSBen Skeggs #endif
28