1#ifndef __NVKM_DEVINIT_H__
2#define __NVKM_DEVINIT_H__
3#include <core/subdev.h>
4
5struct nvkm_devinit {
6	struct nvkm_subdev base;
7	bool post;
8	void (*meminit)(struct nvkm_devinit *);
9	int  (*pll_set)(struct nvkm_devinit *, u32 type, u32 freq);
10	u32  (*mmio)(struct nvkm_devinit *, u32 addr);
11};
12
13static inline struct nvkm_devinit *
14nvkm_devinit(void *obj)
15{
16	return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_DEVINIT);
17}
18
19extern struct nvkm_oclass *nv04_devinit_oclass;
20extern struct nvkm_oclass *nv05_devinit_oclass;
21extern struct nvkm_oclass *nv10_devinit_oclass;
22extern struct nvkm_oclass *nv1a_devinit_oclass;
23extern struct nvkm_oclass *nv20_devinit_oclass;
24extern struct nvkm_oclass *nv50_devinit_oclass;
25extern struct nvkm_oclass *g84_devinit_oclass;
26extern struct nvkm_oclass *g98_devinit_oclass;
27extern struct nvkm_oclass *gt215_devinit_oclass;
28extern struct nvkm_oclass *mcp89_devinit_oclass;
29extern struct nvkm_oclass *gf100_devinit_oclass;
30extern struct nvkm_oclass *gm107_devinit_oclass;
31extern struct nvkm_oclass *gm204_devinit_oclass;
32#endif
33