1*4882a593SmuzhiyunNVIDIA Tegra Graphics Processing Units 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired properties: 4*4882a593Smuzhiyun- compatible: "nvidia,<gpu>" 5*4882a593Smuzhiyun Currently recognized values: 6*4882a593Smuzhiyun - nvidia,gk20a 7*4882a593Smuzhiyun - nvidia,gm20b 8*4882a593Smuzhiyun - nvidia,gp10b 9*4882a593Smuzhiyun - nvidia,gv11b 10*4882a593Smuzhiyun- reg: Physical base address and length of the controller's registers. 11*4882a593Smuzhiyun Must contain two entries: 12*4882a593Smuzhiyun - first entry for bar0 13*4882a593Smuzhiyun - second entry for bar1 14*4882a593Smuzhiyun- interrupts: Must contain an entry for each entry in interrupt-names. 15*4882a593Smuzhiyun See ../interrupt-controller/interrupts.txt for details. 16*4882a593Smuzhiyun- interrupt-names: Must include the following entries: 17*4882a593Smuzhiyun - stall 18*4882a593Smuzhiyun - nonstall 19*4882a593Smuzhiyun- vdd-supply: regulator for supply voltage. Only required for GPUs not using 20*4882a593Smuzhiyun power domains. 21*4882a593Smuzhiyun- clocks: Must contain an entry for each entry in clock-names. 22*4882a593Smuzhiyun See ../clocks/clock-bindings.txt for details. 23*4882a593Smuzhiyun- clock-names: Must include the following entries: 24*4882a593Smuzhiyun - gpu 25*4882a593Smuzhiyun - pwr 26*4882a593SmuzhiyunIf the compatible string is "nvidia,gm20b", then the following clock 27*4882a593Smuzhiyunis also required: 28*4882a593Smuzhiyun - ref 29*4882a593SmuzhiyunIf the compatible string is "nvidia,gv11b", then the following clock is also 30*4882a593Smuzhiyunrequired: 31*4882a593Smuzhiyun - fuse 32*4882a593Smuzhiyun- resets: Must contain an entry for each entry in reset-names. 33*4882a593Smuzhiyun See ../reset/reset.txt for details. 34*4882a593Smuzhiyun- reset-names: Must include the following entries: 35*4882a593Smuzhiyun - gpu 36*4882a593Smuzhiyun- power-domains: GPUs that make use of power domains can define this property 37*4882a593Smuzhiyun instead of vdd-supply. Currently "nvidia,gp10b" makes use of this. 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunOptional properties: 40*4882a593Smuzhiyun- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunExample for GK20A: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun gpu@57000000 { 45*4882a593Smuzhiyun compatible = "nvidia,gk20a"; 46*4882a593Smuzhiyun reg = <0x0 0x57000000 0x0 0x01000000>, 47*4882a593Smuzhiyun <0x0 0x58000000 0x0 0x01000000>; 48*4882a593Smuzhiyun interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 49*4882a593Smuzhiyun <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 50*4882a593Smuzhiyun interrupt-names = "stall", "nonstall"; 51*4882a593Smuzhiyun vdd-supply = <&vdd_gpu>; 52*4882a593Smuzhiyun clocks = <&tegra_car TEGRA124_CLK_GPU>, 53*4882a593Smuzhiyun <&tegra_car TEGRA124_CLK_PLL_P_OUT5>; 54*4882a593Smuzhiyun clock-names = "gpu", "pwr"; 55*4882a593Smuzhiyun resets = <&tegra_car 184>; 56*4882a593Smuzhiyun reset-names = "gpu"; 57*4882a593Smuzhiyun iommus = <&mc TEGRA_SWGROUP_GPU>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunExample for GM20B: 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun gpu@57000000 { 63*4882a593Smuzhiyun compatible = "nvidia,gm20b"; 64*4882a593Smuzhiyun reg = <0x0 0x57000000 0x0 0x01000000>, 65*4882a593Smuzhiyun <0x0 0x58000000 0x0 0x01000000>; 66*4882a593Smuzhiyun interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 67*4882a593Smuzhiyun <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 68*4882a593Smuzhiyun interrupt-names = "stall", "nonstall"; 69*4882a593Smuzhiyun clocks = <&tegra_car TEGRA210_CLK_GPU>, 70*4882a593Smuzhiyun <&tegra_car TEGRA210_CLK_PLL_P_OUT5>, 71*4882a593Smuzhiyun <&tegra_car TEGRA210_CLK_PLL_G_REF>; 72*4882a593Smuzhiyun clock-names = "gpu", "pwr", "ref"; 73*4882a593Smuzhiyun resets = <&tegra_car 184>; 74*4882a593Smuzhiyun reset-names = "gpu"; 75*4882a593Smuzhiyun iommus = <&mc TEGRA_SWGROUP_GPU>; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun 78*4882a593SmuzhiyunExample for GP10B: 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun gpu@17000000 { 81*4882a593Smuzhiyun compatible = "nvidia,gp10b"; 82*4882a593Smuzhiyun reg = <0x0 0x17000000 0x0 0x1000000>, 83*4882a593Smuzhiyun <0x0 0x18000000 0x0 0x1000000>; 84*4882a593Smuzhiyun interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH 85*4882a593Smuzhiyun GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 86*4882a593Smuzhiyun interrupt-names = "stall", "nonstall"; 87*4882a593Smuzhiyun clocks = <&bpmp TEGRA186_CLK_GPCCLK>, 88*4882a593Smuzhiyun <&bpmp TEGRA186_CLK_GPU>; 89*4882a593Smuzhiyun clock-names = "gpu", "pwr"; 90*4882a593Smuzhiyun resets = <&bpmp TEGRA186_RESET_GPU>; 91*4882a593Smuzhiyun reset-names = "gpu"; 92*4882a593Smuzhiyun power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>; 93*4882a593Smuzhiyun iommus = <&smmu TEGRA186_SID_GPU>; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593SmuzhiyunExample for GV11B: 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun gpu@17000000 { 99*4882a593Smuzhiyun compatible = "nvidia,gv11b"; 100*4882a593Smuzhiyun reg = <0x17000000 0x10000000>, 101*4882a593Smuzhiyun <0x18000000 0x10000000>; 102*4882a593Smuzhiyun interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 103*4882a593Smuzhiyun <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 104*4882a593Smuzhiyun interrupt-names = "stall", "nonstall"; 105*4882a593Smuzhiyun clocks = <&bpmp TEGRA194_CLK_GPCCLK>, 106*4882a593Smuzhiyun <&bpmp TEGRA194_CLK_GPU_PWR>, 107*4882a593Smuzhiyun <&bpmp TEGRA194_CLK_FUSE>; 108*4882a593Smuzhiyun clock-names = "gpu", "pwr", "fuse"; 109*4882a593Smuzhiyun resets = <&bpmp TEGRA194_RESET_GPU>; 110*4882a593Smuzhiyun reset-names = "gpu"; 111*4882a593Smuzhiyun dma-coherent; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun power-domains = <&bpmp TEGRA194_POWER_DOMAIN_GPU>; 114*4882a593Smuzhiyun iommus = <&smmu TEGRA194_SID_GPU>; 115*4882a593Smuzhiyun }; 116