1 #ifndef __NVKM_DEVICE_TEGRA_H__
2 #define __NVKM_DEVICE_TEGRA_H__
3 #include <core/device.h>
6 struct nvkm_device_tegra {
7 const struct nvkm_device_tegra_func *func;
8 struct nvkm_device device;
9 struct platform_device *pdev;
12 struct reset_control *rst;
17 struct regulator *vdd;
21 * Protects accesses to mm from subsystems
26 struct iommu_domain *domain;
27 unsigned long pgshift;
34 struct nvkm_device_tegra_func {
36 * If an IOMMU is used, indicates which address bit will trigger a
37 * IOMMU translation when set (when this bit is not set, IOMMU is
38 * bypassed). A value of 0 means an IOMMU is never used.
42 * Whether the chip requires a reference clock
46 * Whether the chip requires the VDD regulator
51 int nvkm_device_tegra_new(const struct nvkm_device_tegra_func *,
52 struct platform_device *,
53 const char *cfg, const char *dbg,
54 bool detect, bool mmio, u64 subdev_mask,
55 struct nvkm_device **);