1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# (C) COPYRIGHT 2013-2017 ARM Limited. All rights reserved. 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# This program is free software and is provided to you under the terms of the 5*4882a593Smuzhiyun# GNU General Public License version 2 as published by the Free Software 6*4882a593Smuzhiyun# Foundation, and any use by you of this program is subject to the terms 7*4882a593Smuzhiyun# of such GNU licence. 8*4882a593Smuzhiyun# 9*4882a593Smuzhiyun# A copy of the licence is included with the program, and can also be obtained 10*4882a593Smuzhiyun# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 11*4882a593Smuzhiyun# Boston, MA 02110-1301, USA. 12*4882a593Smuzhiyun# 13*4882a593Smuzhiyun# 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun* ARM Mali Midgard devices 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunRequired properties: 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun- compatible : Should be mali<chip>, replacing digits with x from the back, 22*4882a593Smuzhiyununtil malit<Major>xx, ending with arm,mali-midgard, the latter not optional. 23*4882a593Smuzhiyun- reg : Physical base address of the device and length of the register area. 24*4882a593Smuzhiyun- interrupts : Contains the three IRQ lines required by T-6xx devices 25*4882a593Smuzhiyun- interrupt-names : Contains the names of IRQ resources in the order they were 26*4882a593Smuzhiyunprovided in the interrupts property. Must contain: "JOB, "MMU", "GPU". 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunOptional: 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun- clocks : Phandle to clock for the Mali T-6xx device. 31*4882a593Smuzhiyun- clock-names : Shall be "clk_mali". 32*4882a593Smuzhiyun- mali-supply : Phandle to regulator for the Mali device. Refer to 33*4882a593SmuzhiyunDocumentation/devicetree/bindings/regulator/regulator.txt for details. 34*4882a593Smuzhiyun- operating-points : Refer to Documentation/devicetree/bindings/power/opp.txt 35*4882a593Smuzhiyunfor details. 36*4882a593Smuzhiyun- jm_config : For T860/T880. Sets job manager configuration. An array containing: 37*4882a593Smuzhiyun - 1 to override the TIMESTAMP value, 0 otherwise. 38*4882a593Smuzhiyun - 1 to override clock gate, forcing them to be always on, 0 otherwise. 39*4882a593Smuzhiyun - 1 to enable job throttle, limiting the number of cores that can be started 40*4882a593Smuzhiyun simultaneously, 0 otherwise. 41*4882a593Smuzhiyun - Value between 0 and 63 (including). If job throttle is enabled, this is one 42*4882a593Smuzhiyun less than the number of cores that can be started simultaneously. 43*4882a593Smuzhiyun- power_model : Sets power model parameters. Note that this model was designed for the Juno 44*4882a593Smuzhiyun platform, and may not be suitable for other platforms. A structure containing : 45*4882a593Smuzhiyun - compatible: Should be arm,mali-simple-power-model 46*4882a593Smuzhiyun - dynamic-coefficient: Coefficient, in pW/(Hz V^2), which is multiplied 47*4882a593Smuzhiyun by v^2*f to calculate the dynamic power consumption. 48*4882a593Smuzhiyun - static-coefficient: Coefficient, in uW/V^3, which is multiplied by 49*4882a593Smuzhiyun v^3 to calculate the static power consumption. 50*4882a593Smuzhiyun - ts: An array containing coefficients for the temperature scaling 51*4882a593Smuzhiyun factor. This is used to scale the static power by a factor of 52*4882a593Smuzhiyun tsf/1000000, where tsf = ts[3]*T^3 + ts[2]*T^2 + ts[1]*T + ts[0], 53*4882a593Smuzhiyun and T = temperature in degrees. 54*4882a593Smuzhiyun - thermal-zone: A string identifying the thermal zone used for the GPU 55*4882a593Smuzhiyun- system-coherency : Sets the coherency protocol to be used for coherent 56*4882a593Smuzhiyun accesses made from the GPU. 57*4882a593Smuzhiyun If not set then no coherency is used. 58*4882a593Smuzhiyun - 0 : ACE-Lite 59*4882a593Smuzhiyun - 1 : ACE 60*4882a593Smuzhiyun - 31 : No coherency 61*4882a593Smuzhiyun- ipa-model : Sets the IPA model to be used for power management. GPU probe will fail if the 62*4882a593Smuzhiyun model is not found in the registered models list. If no model is specified here, 63*4882a593Smuzhiyun a gpu-id based model is picked if available, otherwise the default model is used. 64*4882a593Smuzhiyun - mali-simple-power-model: Default model used on mali 65*4882a593Smuzhiyun- protected-mode-switcher : Phandle to device implemented protected mode switching functionality. 66*4882a593SmuzhiyunRefer to Documentation/devicetree/bindings/arm/smc-protected-mode-switcher.txt for one implementation. 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunExample for a Mali-T602: 69*4882a593Smuzhiyun 70*4882a593Smuzhiyungpu@0xfc010000 { 71*4882a593Smuzhiyun compatible = "arm,malit602", "arm,malit60x", "arm,malit6xx", "arm,mali-midgard"; 72*4882a593Smuzhiyun reg = <0xfc010000 0x4000>; 73*4882a593Smuzhiyun interrupts = <0 36 4>, <0 37 4>, <0 38 4>; 74*4882a593Smuzhiyun interrupt-names = "JOB", "MMU", "GPU"; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun clocks = <&pclk_mali>; 77*4882a593Smuzhiyun clock-names = "clk_mali"; 78*4882a593Smuzhiyun mali-supply = <&vdd_mali>; 79*4882a593Smuzhiyun operating-points = < 80*4882a593Smuzhiyun /* KHz uV */ 81*4882a593Smuzhiyun 533000 1250000, 82*4882a593Smuzhiyun 450000 1150000, 83*4882a593Smuzhiyun 400000 1125000, 84*4882a593Smuzhiyun 350000 1075000, 85*4882a593Smuzhiyun 266000 1025000, 86*4882a593Smuzhiyun 160000 925000, 87*4882a593Smuzhiyun 100000 912500, 88*4882a593Smuzhiyun >; 89*4882a593Smuzhiyun power_model { 90*4882a593Smuzhiyun compatible = "arm,mali-simple-power-model"; 91*4882a593Smuzhiyun static-coefficient = <2427750>; 92*4882a593Smuzhiyun dynamic-coefficient = <4687>; 93*4882a593Smuzhiyun ts = <20000 2000 (-20) 2>; 94*4882a593Smuzhiyun thermal-zone = "gpu"; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun}; 97