1*677dec6eSriastradh /* $NetBSD: bus.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $ */ 2d350ecf5Sriastradh 3*677dec6eSriastradh /* SPDX-License-Identifier: MIT */ 4d350ecf5Sriastradh #ifndef __NVKM_BUS_H__ 5d350ecf5Sriastradh #define __NVKM_BUS_H__ 6d350ecf5Sriastradh #include <core/subdev.h> 7d350ecf5Sriastradh 8d350ecf5Sriastradh struct nvkm_bus { 9d350ecf5Sriastradh const struct nvkm_bus_func *func; 10d350ecf5Sriastradh struct nvkm_subdev subdev; 11d350ecf5Sriastradh }; 12d350ecf5Sriastradh 13d350ecf5Sriastradh /* interface to sequencer */ 14d350ecf5Sriastradh struct nvkm_hwsq; 15d350ecf5Sriastradh int nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **); 16d350ecf5Sriastradh int nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec); 17d350ecf5Sriastradh void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data); 18d350ecf5Sriastradh void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data); 19d350ecf5Sriastradh void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data); 20d350ecf5Sriastradh void nvkm_hwsq_wait_vblank(struct nvkm_hwsq *); 21d350ecf5Sriastradh void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec); 22d350ecf5Sriastradh 23d350ecf5Sriastradh int nv04_bus_new(struct nvkm_device *, int, struct nvkm_bus **); 24d350ecf5Sriastradh int nv31_bus_new(struct nvkm_device *, int, struct nvkm_bus **); 25d350ecf5Sriastradh int nv50_bus_new(struct nvkm_device *, int, struct nvkm_bus **); 26d350ecf5Sriastradh int g94_bus_new(struct nvkm_device *, int, struct nvkm_bus **); 27d350ecf5Sriastradh int gf100_bus_new(struct nvkm_device *, int, struct nvkm_bus **); 28d350ecf5Sriastradh #endif 29