162306a36Sopenharmony_ciNVIDIA Tegra Graphics Processing Units
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciRequired properties:
462306a36Sopenharmony_ci- compatible: "nvidia,<gpu>"
562306a36Sopenharmony_ci  Currently recognized values:
662306a36Sopenharmony_ci  - nvidia,gk20a
762306a36Sopenharmony_ci  - nvidia,gm20b
862306a36Sopenharmony_ci  - nvidia,gp10b
962306a36Sopenharmony_ci  - nvidia,gv11b
1062306a36Sopenharmony_ci- reg: Physical base address and length of the controller's registers.
1162306a36Sopenharmony_ci  Must contain two entries:
1262306a36Sopenharmony_ci  - first entry for bar0
1362306a36Sopenharmony_ci  - second entry for bar1
1462306a36Sopenharmony_ci- interrupts: Must contain an entry for each entry in interrupt-names.
1562306a36Sopenharmony_ci  See ../interrupt-controller/interrupts.txt for details.
1662306a36Sopenharmony_ci- interrupt-names: Must include the following entries:
1762306a36Sopenharmony_ci  - stall
1862306a36Sopenharmony_ci  - nonstall
1962306a36Sopenharmony_ci- vdd-supply: regulator for supply voltage. Only required for GPUs not using
2062306a36Sopenharmony_ci  power domains.
2162306a36Sopenharmony_ci- clocks: Must contain an entry for each entry in clock-names.
2262306a36Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
2362306a36Sopenharmony_ci- clock-names: Must include the following entries:
2462306a36Sopenharmony_ci  - gpu
2562306a36Sopenharmony_ci  - pwr
2662306a36Sopenharmony_ciIf the compatible string is "nvidia,gm20b", then the following clock
2762306a36Sopenharmony_ciis also required:
2862306a36Sopenharmony_ci  - ref
2962306a36Sopenharmony_ciIf the compatible string is "nvidia,gv11b", then the following clock is also
3062306a36Sopenharmony_cirequired:
3162306a36Sopenharmony_ci  - fuse
3262306a36Sopenharmony_ci- resets: Must contain an entry for each entry in reset-names.
3362306a36Sopenharmony_ci  See ../reset/reset.txt for details.
3462306a36Sopenharmony_ci- reset-names: Must include the following entries:
3562306a36Sopenharmony_ci  - gpu
3662306a36Sopenharmony_ci- power-domains: GPUs that make use of power domains can define this property
3762306a36Sopenharmony_ci  instead of vdd-supply. Currently "nvidia,gp10b" makes use of this.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciOptional properties:
4062306a36Sopenharmony_ci- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciExample for GK20A:
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	gpu@57000000 {
4562306a36Sopenharmony_ci		compatible = "nvidia,gk20a";
4662306a36Sopenharmony_ci		reg = <0x0 0x57000000 0x0 0x01000000>,
4762306a36Sopenharmony_ci		      <0x0 0x58000000 0x0 0x01000000>;
4862306a36Sopenharmony_ci		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
4962306a36Sopenharmony_ci			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
5062306a36Sopenharmony_ci		interrupt-names = "stall", "nonstall";
5162306a36Sopenharmony_ci		vdd-supply = <&vdd_gpu>;
5262306a36Sopenharmony_ci		clocks = <&tegra_car TEGRA124_CLK_GPU>,
5362306a36Sopenharmony_ci			 <&tegra_car TEGRA124_CLK_PLL_P_OUT5>;
5462306a36Sopenharmony_ci		clock-names = "gpu", "pwr";
5562306a36Sopenharmony_ci		resets = <&tegra_car 184>;
5662306a36Sopenharmony_ci		reset-names = "gpu";
5762306a36Sopenharmony_ci		iommus = <&mc TEGRA_SWGROUP_GPU>;
5862306a36Sopenharmony_ci	};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciExample for GM20B:
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	gpu@57000000 {
6362306a36Sopenharmony_ci		compatible = "nvidia,gm20b";
6462306a36Sopenharmony_ci		reg = <0x0 0x57000000 0x0 0x01000000>,
6562306a36Sopenharmony_ci		      <0x0 0x58000000 0x0 0x01000000>;
6662306a36Sopenharmony_ci		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
6762306a36Sopenharmony_ci			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
6862306a36Sopenharmony_ci		interrupt-names = "stall", "nonstall";
6962306a36Sopenharmony_ci		clocks = <&tegra_car TEGRA210_CLK_GPU>,
7062306a36Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_PLL_P_OUT5>,
7162306a36Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_PLL_G_REF>;
7262306a36Sopenharmony_ci		clock-names = "gpu", "pwr", "ref";
7362306a36Sopenharmony_ci		resets = <&tegra_car 184>;
7462306a36Sopenharmony_ci		reset-names = "gpu";
7562306a36Sopenharmony_ci		iommus = <&mc TEGRA_SWGROUP_GPU>;
7662306a36Sopenharmony_ci	};
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciExample for GP10B:
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci	gpu@17000000 {
8162306a36Sopenharmony_ci		compatible = "nvidia,gp10b";
8262306a36Sopenharmony_ci		reg = <0x0 0x17000000 0x0 0x1000000>,
8362306a36Sopenharmony_ci		      <0x0 0x18000000 0x0 0x1000000>;
8462306a36Sopenharmony_ci		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
8562306a36Sopenharmony_ci			      GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
8662306a36Sopenharmony_ci		interrupt-names = "stall", "nonstall";
8762306a36Sopenharmony_ci		clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
8862306a36Sopenharmony_ci			 <&bpmp TEGRA186_CLK_GPU>;
8962306a36Sopenharmony_ci		clock-names = "gpu", "pwr";
9062306a36Sopenharmony_ci		resets = <&bpmp TEGRA186_RESET_GPU>;
9162306a36Sopenharmony_ci		reset-names = "gpu";
9262306a36Sopenharmony_ci		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
9362306a36Sopenharmony_ci		iommus = <&smmu TEGRA186_SID_GPU>;
9462306a36Sopenharmony_ci	};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciExample for GV11B:
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci	gpu@17000000 {
9962306a36Sopenharmony_ci		compatible = "nvidia,gv11b";
10062306a36Sopenharmony_ci		reg = <0x17000000 0x1000000>,
10162306a36Sopenharmony_ci		      <0x18000000 0x1000000>;
10262306a36Sopenharmony_ci		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
10362306a36Sopenharmony_ci			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
10462306a36Sopenharmony_ci		interrupt-names = "stall", "nonstall";
10562306a36Sopenharmony_ci		clocks = <&bpmp TEGRA194_CLK_GPCCLK>,
10662306a36Sopenharmony_ci			 <&bpmp TEGRA194_CLK_GPU_PWR>,
10762306a36Sopenharmony_ci			 <&bpmp TEGRA194_CLK_FUSE>;
10862306a36Sopenharmony_ci		clock-names = "gpu", "pwr", "fuse";
10962306a36Sopenharmony_ci		resets = <&bpmp TEGRA194_RESET_GPU>;
11062306a36Sopenharmony_ci		reset-names = "gpu";
11162306a36Sopenharmony_ci		dma-coherent;
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_GPU>;
11462306a36Sopenharmony_ci		iommus = <&smmu TEGRA194_SID_GPU>;
11562306a36Sopenharmony_ci	};
116