xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/arm/mali-midgard.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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