153cafb93SAlexandre CourbotNVIDIA Tegra Graphics Processing Units 22b372f56SAlexandre Courbot 32b372f56SAlexandre CourbotRequired properties: 435815801SAlexandre Courbot- compatible: "nvidia,<gpu>" 52b372f56SAlexandre Courbot Currently recognized values: 635815801SAlexandre Courbot - nvidia,gk20a 753cafb93SAlexandre Courbot - nvidia,gm20b 8bf594a89SAlexandre Courbot - nvidia,gp10b 92b372f56SAlexandre Courbot- reg: Physical base address and length of the controller's registers. 102b372f56SAlexandre Courbot Must contain two entries: 112b372f56SAlexandre Courbot - first entry for bar0 122b372f56SAlexandre Courbot - second entry for bar1 132b372f56SAlexandre Courbot- interrupts: Must contain an entry for each entry in interrupt-names. 142b372f56SAlexandre Courbot See ../interrupt-controller/interrupts.txt for details. 152b372f56SAlexandre Courbot- interrupt-names: Must include the following entries: 162b372f56SAlexandre Courbot - stall 172b372f56SAlexandre Courbot - nonstall 18bf594a89SAlexandre Courbot- vdd-supply: regulator for supply voltage. Only required for GPUs not using 19bf594a89SAlexandre Courbot power domains. 202b372f56SAlexandre Courbot- clocks: Must contain an entry for each entry in clock-names. 212b372f56SAlexandre Courbot See ../clocks/clock-bindings.txt for details. 222b372f56SAlexandre Courbot- clock-names: Must include the following entries: 232b372f56SAlexandre Courbot - gpu 242b372f56SAlexandre Courbot - pwr 2553cafb93SAlexandre CourbotIf the compatible string is "nvidia,gm20b", then the following clock 2653cafb93SAlexandre Courbotis also required: 2753cafb93SAlexandre Courbot - ref 282b372f56SAlexandre Courbot- resets: Must contain an entry for each entry in reset-names. 292b372f56SAlexandre Courbot See ../reset/reset.txt for details. 302b372f56SAlexandre Courbot- reset-names: Must include the following entries: 312b372f56SAlexandre Courbot - gpu 32bf594a89SAlexandre Courbot- power-domains: GPUs that make use of power domains can define this property 33bf594a89SAlexandre Courbot instead of vdd-supply. Currently "nvidia,gp10b" makes use of this. 342b372f56SAlexandre Courbot 35375d2447SAlexandre CourbotOptional properties: 36375d2447SAlexandre Courbot- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details. 37375d2447SAlexandre Courbot 3853cafb93SAlexandre CourbotExample for GK20A: 392b372f56SAlexandre Courbot 4053cafb93SAlexandre Courbot gpu@57000000 { 412b372f56SAlexandre Courbot compatible = "nvidia,gk20a"; 422b372f56SAlexandre Courbot reg = <0x0 0x57000000 0x0 0x01000000>, 432b372f56SAlexandre Courbot <0x0 0x58000000 0x0 0x01000000>; 442b372f56SAlexandre Courbot interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 452b372f56SAlexandre Courbot <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 462b372f56SAlexandre Courbot interrupt-names = "stall", "nonstall"; 472b372f56SAlexandre Courbot vdd-supply = <&vdd_gpu>; 482b372f56SAlexandre Courbot clocks = <&tegra_car TEGRA124_CLK_GPU>, 492b372f56SAlexandre Courbot <&tegra_car TEGRA124_CLK_PLL_P_OUT5>; 502b372f56SAlexandre Courbot clock-names = "gpu", "pwr"; 512b372f56SAlexandre Courbot resets = <&tegra_car 184>; 522b372f56SAlexandre Courbot reset-names = "gpu"; 53375d2447SAlexandre Courbot iommus = <&mc TEGRA_SWGROUP_GPU>; 542b372f56SAlexandre Courbot status = "disabled"; 552b372f56SAlexandre Courbot }; 5653cafb93SAlexandre Courbot 5753cafb93SAlexandre CourbotExample for GM20B: 5853cafb93SAlexandre Courbot 5953cafb93SAlexandre Courbot gpu@57000000 { 6053cafb93SAlexandre Courbot compatible = "nvidia,gm20b"; 6153cafb93SAlexandre Courbot reg = <0x0 0x57000000 0x0 0x01000000>, 6253cafb93SAlexandre Courbot <0x0 0x58000000 0x0 0x01000000>; 6353cafb93SAlexandre Courbot interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 6453cafb93SAlexandre Courbot <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 6553cafb93SAlexandre Courbot interrupt-names = "stall", "nonstall"; 6653cafb93SAlexandre Courbot clocks = <&tegra_car TEGRA210_CLK_GPU>, 6753cafb93SAlexandre Courbot <&tegra_car TEGRA210_CLK_PLL_P_OUT5>, 6853cafb93SAlexandre Courbot <&tegra_car TEGRA210_CLK_PLL_G_REF>; 6953cafb93SAlexandre Courbot clock-names = "gpu", "pwr", "ref"; 7053cafb93SAlexandre Courbot resets = <&tegra_car 184>; 7153cafb93SAlexandre Courbot reset-names = "gpu"; 7253cafb93SAlexandre Courbot iommus = <&mc TEGRA_SWGROUP_GPU>; 7353cafb93SAlexandre Courbot status = "disabled"; 7453cafb93SAlexandre Courbot }; 75bf594a89SAlexandre Courbot 76bf594a89SAlexandre CourbotExample for GP10B: 77bf594a89SAlexandre Courbot 78bf594a89SAlexandre Courbot gpu@17000000 { 79bf594a89SAlexandre Courbot compatible = "nvidia,gp10b"; 80bf594a89SAlexandre Courbot reg = <0x0 0x17000000 0x0 0x1000000>, 81bf594a89SAlexandre Courbot <0x0 0x18000000 0x0 0x1000000>; 82bf594a89SAlexandre Courbot interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH 83bf594a89SAlexandre Courbot GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 84bf594a89SAlexandre Courbot interrupt-names = "stall", "nonstall"; 85bf594a89SAlexandre Courbot clocks = <&bpmp TEGRA186_CLK_GPCCLK>, 86bf594a89SAlexandre Courbot <&bpmp TEGRA186_CLK_GPU>; 87bf594a89SAlexandre Courbot clock-names = "gpu", "pwr"; 88bf594a89SAlexandre Courbot resets = <&bpmp TEGRA186_RESET_GPU>; 89bf594a89SAlexandre Courbot reset-names = "gpu"; 90bf594a89SAlexandre Courbot power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>; 91bf594a89SAlexandre Courbot iommus = <&smmu TEGRA186_SID_GPU>; 92bf594a89SAlexandre Courbot status = "disabled"; 93bf594a89SAlexandre Courbot }; 94