1 #ifndef __NVKM_DEVICE_TEGRA_H__
2 #define __NVKM_DEVICE_TEGRA_H__
3 #include <core/device.h>
4 #include <core/mm.h>
5 
6 struct nvkm_device_tegra {
7 	struct nvkm_device device;
8 	struct platform_device *pdev;
9 	int irq;
10 
11 	struct reset_control *rst;
12 	struct clk *clk;
13 	struct clk *clk_pwr;
14 
15 	struct regulator *vdd;
16 
17 	struct {
18 		/*
19 		 * Protects accesses to mm from subsystems
20 		 */
21 		struct mutex mutex;
22 
23 		struct nvkm_mm mm;
24 		struct iommu_domain *domain;
25 		unsigned long pgshift;
26 	} iommu;
27 
28 	int gpu_speedo;
29 };
30 
31 int nvkm_device_tegra_new(struct platform_device *,
32 			  const char *cfg, const char *dbg,
33 			  bool detect, bool mmio, u64 subdev_mask,
34 			  struct nvkm_device **);
35 #endif
36