18c2ecf20Sopenharmony_ciNVIDIA Tegra Graphics Processing Units
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible: "nvidia,<gpu>"
58c2ecf20Sopenharmony_ci  Currently recognized values:
68c2ecf20Sopenharmony_ci  - nvidia,gk20a
78c2ecf20Sopenharmony_ci  - nvidia,gm20b
88c2ecf20Sopenharmony_ci  - nvidia,gp10b
98c2ecf20Sopenharmony_ci  - nvidia,gv11b
108c2ecf20Sopenharmony_ci- reg: Physical base address and length of the controller's registers.
118c2ecf20Sopenharmony_ci  Must contain two entries:
128c2ecf20Sopenharmony_ci  - first entry for bar0
138c2ecf20Sopenharmony_ci  - second entry for bar1
148c2ecf20Sopenharmony_ci- interrupts: Must contain an entry for each entry in interrupt-names.
158c2ecf20Sopenharmony_ci  See ../interrupt-controller/interrupts.txt for details.
168c2ecf20Sopenharmony_ci- interrupt-names: Must include the following entries:
178c2ecf20Sopenharmony_ci  - stall
188c2ecf20Sopenharmony_ci  - nonstall
198c2ecf20Sopenharmony_ci- vdd-supply: regulator for supply voltage. Only required for GPUs not using
208c2ecf20Sopenharmony_ci  power domains.
218c2ecf20Sopenharmony_ci- clocks: Must contain an entry for each entry in clock-names.
228c2ecf20Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
238c2ecf20Sopenharmony_ci- clock-names: Must include the following entries:
248c2ecf20Sopenharmony_ci  - gpu
258c2ecf20Sopenharmony_ci  - pwr
268c2ecf20Sopenharmony_ciIf the compatible string is "nvidia,gm20b", then the following clock
278c2ecf20Sopenharmony_ciis also required:
288c2ecf20Sopenharmony_ci  - ref
298c2ecf20Sopenharmony_ciIf the compatible string is "nvidia,gv11b", then the following clock is also
308c2ecf20Sopenharmony_cirequired:
318c2ecf20Sopenharmony_ci  - fuse
328c2ecf20Sopenharmony_ci- resets: Must contain an entry for each entry in reset-names.
338c2ecf20Sopenharmony_ci  See ../reset/reset.txt for details.
348c2ecf20Sopenharmony_ci- reset-names: Must include the following entries:
358c2ecf20Sopenharmony_ci  - gpu
368c2ecf20Sopenharmony_ci- power-domains: GPUs that make use of power domains can define this property
378c2ecf20Sopenharmony_ci  instead of vdd-supply. Currently "nvidia,gp10b" makes use of this.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciOptional properties:
408c2ecf20Sopenharmony_ci- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciExample for GK20A:
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	gpu@57000000 {
458c2ecf20Sopenharmony_ci		compatible = "nvidia,gk20a";
468c2ecf20Sopenharmony_ci		reg = <0x0 0x57000000 0x0 0x01000000>,
478c2ecf20Sopenharmony_ci		      <0x0 0x58000000 0x0 0x01000000>;
488c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
498c2ecf20Sopenharmony_ci			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
508c2ecf20Sopenharmony_ci		interrupt-names = "stall", "nonstall";
518c2ecf20Sopenharmony_ci		vdd-supply = <&vdd_gpu>;
528c2ecf20Sopenharmony_ci		clocks = <&tegra_car TEGRA124_CLK_GPU>,
538c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA124_CLK_PLL_P_OUT5>;
548c2ecf20Sopenharmony_ci		clock-names = "gpu", "pwr";
558c2ecf20Sopenharmony_ci		resets = <&tegra_car 184>;
568c2ecf20Sopenharmony_ci		reset-names = "gpu";
578c2ecf20Sopenharmony_ci		iommus = <&mc TEGRA_SWGROUP_GPU>;
588c2ecf20Sopenharmony_ci	};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciExample for GM20B:
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci	gpu@57000000 {
638c2ecf20Sopenharmony_ci		compatible = "nvidia,gm20b";
648c2ecf20Sopenharmony_ci		reg = <0x0 0x57000000 0x0 0x01000000>,
658c2ecf20Sopenharmony_ci		      <0x0 0x58000000 0x0 0x01000000>;
668c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
678c2ecf20Sopenharmony_ci			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
688c2ecf20Sopenharmony_ci		interrupt-names = "stall", "nonstall";
698c2ecf20Sopenharmony_ci		clocks = <&tegra_car TEGRA210_CLK_GPU>,
708c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_PLL_P_OUT5>,
718c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_PLL_G_REF>;
728c2ecf20Sopenharmony_ci		clock-names = "gpu", "pwr", "ref";
738c2ecf20Sopenharmony_ci		resets = <&tegra_car 184>;
748c2ecf20Sopenharmony_ci		reset-names = "gpu";
758c2ecf20Sopenharmony_ci		iommus = <&mc TEGRA_SWGROUP_GPU>;
768c2ecf20Sopenharmony_ci	};
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciExample for GP10B:
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci	gpu@17000000 {
818c2ecf20Sopenharmony_ci		compatible = "nvidia,gp10b";
828c2ecf20Sopenharmony_ci		reg = <0x0 0x17000000 0x0 0x1000000>,
838c2ecf20Sopenharmony_ci		      <0x0 0x18000000 0x0 0x1000000>;
848c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
858c2ecf20Sopenharmony_ci			      GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
868c2ecf20Sopenharmony_ci		interrupt-names = "stall", "nonstall";
878c2ecf20Sopenharmony_ci		clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
888c2ecf20Sopenharmony_ci			 <&bpmp TEGRA186_CLK_GPU>;
898c2ecf20Sopenharmony_ci		clock-names = "gpu", "pwr";
908c2ecf20Sopenharmony_ci		resets = <&bpmp TEGRA186_RESET_GPU>;
918c2ecf20Sopenharmony_ci		reset-names = "gpu";
928c2ecf20Sopenharmony_ci		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
938c2ecf20Sopenharmony_ci		iommus = <&smmu TEGRA186_SID_GPU>;
948c2ecf20Sopenharmony_ci	};
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciExample for GV11B:
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci	gpu@17000000 {
998c2ecf20Sopenharmony_ci		compatible = "nvidia,gv11b";
1008c2ecf20Sopenharmony_ci		reg = <0x17000000 0x10000000>,
1018c2ecf20Sopenharmony_ci		      <0x18000000 0x10000000>;
1028c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1038c2ecf20Sopenharmony_ci			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
1048c2ecf20Sopenharmony_ci		interrupt-names = "stall", "nonstall";
1058c2ecf20Sopenharmony_ci		clocks = <&bpmp TEGRA194_CLK_GPCCLK>,
1068c2ecf20Sopenharmony_ci			 <&bpmp TEGRA194_CLK_GPU_PWR>,
1078c2ecf20Sopenharmony_ci			 <&bpmp TEGRA194_CLK_FUSE>;
1088c2ecf20Sopenharmony_ci		clock-names = "gpu", "pwr", "fuse";
1098c2ecf20Sopenharmony_ci		resets = <&bpmp TEGRA194_RESET_GPU>;
1108c2ecf20Sopenharmony_ci		reset-names = "gpu";
1118c2ecf20Sopenharmony_ci		dma-coherent;
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_GPU>;
1148c2ecf20Sopenharmony_ci		iommus = <&smmu TEGRA194_SID_GPU>;
1158c2ecf20Sopenharmony_ci	};
116