1#ifndef __NVKM_DEVIDX_H__
2#define __NVKM_DEVIDX_H__
3enum nvkm_devidx {
4	NVDEV_ENGINE_DEVICE,
5	NVDEV_SUBDEV_VBIOS,
6
7	/* All subdevs from DEVINIT to DEVINIT_LAST will be created before
8	 * *any* of them are initialised.  This subdev category is used
9	 * for any subdevs that the VBIOS init table parsing may call out
10	 * to during POST.
11	 */
12	NVDEV_SUBDEV_DEVINIT,
13	NVDEV_SUBDEV_IBUS,
14	NVDEV_SUBDEV_GPIO,
15	NVDEV_SUBDEV_I2C,
16	NVDEV_SUBDEV_DEVINIT_LAST = NVDEV_SUBDEV_I2C,
17
18	/* This grouping of subdevs are initialised right after they've
19	 * been created, and are allowed to assume any subdevs in the
20	 * list above them exist and have been initialised.
21	 */
22	NVDEV_SUBDEV_FUSE,
23	NVDEV_SUBDEV_MXM,
24	NVDEV_SUBDEV_MC,
25	NVDEV_SUBDEV_BUS,
26	NVDEV_SUBDEV_TIMER,
27	NVDEV_SUBDEV_FB,
28	NVDEV_SUBDEV_LTC,
29	NVDEV_SUBDEV_INSTMEM,
30	NVDEV_SUBDEV_MMU,
31	NVDEV_SUBDEV_BAR,
32	NVDEV_SUBDEV_PMU,
33	NVDEV_SUBDEV_VOLT,
34	NVDEV_SUBDEV_THERM,
35	NVDEV_SUBDEV_CLK,
36
37	NVDEV_ENGINE_FIRST,
38	NVDEV_ENGINE_DMAOBJ = NVDEV_ENGINE_FIRST,
39	NVDEV_ENGINE_IFB,
40	NVDEV_ENGINE_FIFO,
41	NVDEV_ENGINE_SW,
42	NVDEV_ENGINE_GR,
43	NVDEV_ENGINE_MPEG,
44	NVDEV_ENGINE_ME,
45	NVDEV_ENGINE_VP,
46	NVDEV_ENGINE_CIPHER,
47	NVDEV_ENGINE_BSP,
48	NVDEV_ENGINE_MSPPP,
49	NVDEV_ENGINE_CE0,
50	NVDEV_ENGINE_CE1,
51	NVDEV_ENGINE_CE2,
52	NVDEV_ENGINE_VIC,
53	NVDEV_ENGINE_MSENC,
54	NVDEV_ENGINE_DISP,
55	NVDEV_ENGINE_PM,
56	NVDEV_ENGINE_MSVLD,
57	NVDEV_ENGINE_SEC,
58	NVDEV_ENGINE_MSPDEC,
59
60	NVDEV_SUBDEV_NR,
61};
62#endif
63