1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
2151abd44SBen Skeggs #ifndef __NV50_DEVINIT_H__
3151abd44SBen Skeggs #define __NV50_DEVINIT_H__
4151abd44SBen Skeggs #define nv50_devinit(p) container_of((p), struct nv50_devinit, base)
5c39f472eSBen Skeggs #include "priv.h"
6c39f472eSBen Skeggs 
7266f8b5eSBen Skeggs struct nv50_devinit {
8a8c4362bSBen Skeggs 	struct nvkm_devinit base;
9c39f472eSBen Skeggs 	u32 r001540;
10c39f472eSBen Skeggs };
11c39f472eSBen Skeggs 
124a34fd0eSBen Skeggs int nv50_devinit_new_(const struct nvkm_devinit_func *, struct nvkm_device *, enum nvkm_subdev_type,
13151abd44SBen Skeggs 		      int, struct nvkm_devinit **);
14151abd44SBen Skeggs void nv50_devinit_preinit(struct nvkm_devinit *);
15151abd44SBen Skeggs void nv50_devinit_init(struct nvkm_devinit *);
16a8c4362bSBen Skeggs int  nv50_devinit_pll_set(struct nvkm_devinit *, u32, u32);
17c39f472eSBen Skeggs 
18a8c4362bSBen Skeggs int  gt215_devinit_pll_set(struct nvkm_devinit *, u32, u32);
19c39f472eSBen Skeggs 
204d4d6f75SBen Skeggs int  gf100_devinit_ctor(struct nvkm_object *, struct nvkm_object *,
214d4d6f75SBen Skeggs 			struct nvkm_oclass *, void *, u32,
224d4d6f75SBen Skeggs 			struct nvkm_object **);
23a8c4362bSBen Skeggs int  gf100_devinit_pll_set(struct nvkm_devinit *, u32, u32);
24a6a0f67cSAlexandre Courbot void gf100_devinit_preinit(struct nvkm_devinit *);
25c39f472eSBen Skeggs 
26*da2b1a0aSDeepak R Varma void  gm107_devinit_disable(struct nvkm_devinit *);
278769dc98SBen Skeggs 
288769dc98SBen Skeggs int gm200_devinit_post(struct nvkm_devinit *, bool);
29a31e24a7SBen Skeggs void gm200_devinit_preos(struct nv50_devinit *, bool);
30c39f472eSBen Skeggs #endif
31