1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */ 2c39f472eSBen Skeggs #ifndef __NVKM_DEVINIT_PRIV_H__ 3c39f472eSBen Skeggs #define __NVKM_DEVINIT_PRIV_H__ 4151abd44SBen Skeggs #define nvkm_devinit(p) container_of((p), struct nvkm_devinit, subdev) 5c39f472eSBen Skeggs #include <subdev/devinit.h> 6c39f472eSBen Skeggs 7151abd44SBen Skeggs struct nvkm_devinit_func { 8151abd44SBen Skeggs void *(*dtor)(struct nvkm_devinit *); 9151abd44SBen Skeggs void (*preinit)(struct nvkm_devinit *); 10151abd44SBen Skeggs void (*init)(struct nvkm_devinit *); 11151abd44SBen Skeggs int (*post)(struct nvkm_devinit *, bool post); 12151abd44SBen Skeggs u32 (*mmio)(struct nvkm_devinit *, u32); 13a8c4362bSBen Skeggs void (*meminit)(struct nvkm_devinit *); 14a8c4362bSBen Skeggs int (*pll_set)(struct nvkm_devinit *, u32 type, u32 freq); 15*da2b1a0aSDeepak R Varma void (*disable)(struct nvkm_devinit *); 16c39f472eSBen Skeggs }; 17c39f472eSBen Skeggs 18151abd44SBen Skeggs void nvkm_devinit_ctor(const struct nvkm_devinit_func *, struct nvkm_device *, 194a34fd0eSBen Skeggs enum nvkm_subdev_type, int inst, struct nvkm_devinit *); 200fa5680cSBen Skeggs u64 nvkm_devinit_disable(struct nvkm_devinit *); 21c39f472eSBen Skeggs 22151abd44SBen Skeggs int nv04_devinit_post(struct nvkm_devinit *, bool); 237ddf5e95SBen Skeggs int tu102_devinit_post(struct nvkm_devinit *, bool); 24c39f472eSBen Skeggs #endif 25