#
# (C) COPYRIGHT 2013-2020 ARM Limited. All rights reserved.
#
# This program is free software and is provided to you under the terms of the
# GNU General Public License version 2 as published by the Free Software
# Foundation, and any use by you of this program is subject to the terms
# of such GNU licence.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, you can access it online at
# http://www.gnu.org/licenses/gpl-2.0.html.
#
# SPDX-License-Identifier: GPL-2.0
#
#

* ARM Mali Midgard / Bifrost devices


Required properties:

- compatible : Should be mali<chip>, replacing digits with x from the back,
until malit<Major>xx, and it must end with one of: "arm,malit6xx" or
"arm,mali-midgard" or "arm,mali-bifrost"
- reg : Physical base address of the device and length of the register area.
- interrupts : Contains the three IRQ lines required by T-6xx devices
- interrupt-names : Contains the names of IRQ resources in the order they were
provided in the interrupts property. Must contain: "JOB, "MMU", "GPU".

Optional:

- clocks : One or more pairs of phandle to clock and clock specifier
           for the Mali device. The order is important: the first clock
           shall correspond to the "clk_mali" source, while the second clock
           (that is optional) shall correspond to the "shadercores" source.
- clock-names : Shall be set to: "clk_mali", "shadercores".
- mali-supply : Phandle to the top level regulator for the Mali device.
                Refer to
Documentation/devicetree/bindings/regulator/regulator.txt for details.
- shadercores-supply : Phandle to shader cores regulator for the Mali device.
                       This is optional.
- operating-points-v2 : Refer to Documentation/devicetree/bindings/power/mali-opp.txt
for details.
- quirks_jm : Used to write to the JM_CONFIG register or equivalent.
	  Should be used with care. Options passed here are used to override
	  certain default behavior. Note: This will override 'idvs-group-size'
	  field in devicetree and module param 'corestack_driver_control',
	  therefore if 'quirks_jm' is used then 'idvs-group-size' and
	  'corestack_driver_control' value should be incorporated into 'quirks_jm'.
- quirks_sc : Used to write to the SHADER_CONFIG register.
	  Should be used with care. Options passed here are used to override
	  certain default behavior.
- quirks_tiler : Used to write to the TILER_CONFIG register.
	  Should be used with care. Options passed here are used to
	  disable or override certain default behavior.
- quirks_mmu : Used to write to the L2_CONFIG register.
	  Should be used with care. Options passed here are used to
	  disable or override certain default behavior.
- power_model : Sets the power model parameters. Defined power models include:
	  "mali-simple-power-model", "mali-g51-power-model", "mali-g52-power-model",
	  "mali-g52_r1-power-model", "mali-g71-power-model", "mali-g72-power-model",
	  "mali-g76-power-model", "mali-g77-power-model", "mali-tnax-power-model"
	  and "mali-tbex-power-model".
	- mali-simple-power-model: this model derives the GPU power usage based
	  on the GPU voltage scaled by the system temperature. Note: it was
	  designed for the Juno platform, and may not be suitable for others.
		- compatible: Should be "arm,mali-simple-power-model"
		- dynamic-coefficient: Coefficient, in pW/(Hz V^2), which is
		  multiplied by v^2*f to calculate the dynamic power consumption.
		- static-coefficient: Coefficient, in uW/V^3, which is
		  multiplied by v^3 to calculate the static power consumption.
		- ts: An array containing coefficients for the temperature
		  scaling factor. This is used to scale the static power by a
		  factor of tsf/1000000,
		  where tsf = ts[3]*T^3 + ts[2]*T^2 + ts[1]*T + ts[0],
		  and T = temperature in degrees.
		- thermal-zone: A string identifying the thermal zone used for
		  the GPU
		- temp-poll-interval-ms: the interval at which the system
		  temperature is polled
	- mali-g*-power-model(s): unless being stated otherwise, these models derive
	  the GPU power usage based on performance counters, so they are more
	  accurate.
		- compatible: Should be, as examples, "arm,mali-g51-power-model" /
		  "arm,mali-g72-power-model".
		- scale: the dynamic power calculated by the power model is
		  multiplied by a factor of 'scale'. This value should be
		  chosen to match a particular implementation.
		- min_sample_cycles: Fall back to the simple power model if the
		  number of GPU cycles for a given counter dump is less than
		  'min_sample_cycles'. The default value of this should suffice.
	* Note: when IPA is used, two separate power models (simple and counter-based)
	  are used at different points so care should be taken to configure
	  both power models in the device tree (specifically dynamic-coefficient,
	  static-coefficient and scale) to best match the platform.
- system-coherency : Sets the coherency protocol to be used for coherent
		     accesses made from the GPU.
		     If not set then no coherency is used.
	- 0  : ACE-Lite
	- 1  : ACE
	- 31 : No coherency
- ipa-model : Sets the IPA model to be used for power management. GPU probe will fail if the
	      model is not found in the registered models list. If no model is specified here,
	      a gpu-id based model is picked if available, otherwise the default model is used.
	- mali-simple-power-model: Default model used on mali
-  idvs-group-size : Override the IDVS group size value. Tasks are sent to
		     cores in groups of N + 1, so i.e. 0xF means 16 tasks.
		     Valid values are between 0 to 0x3F (including).
-  l2-size : Override L2 cache size on GPU that supports it
-  l2-hash : Override L2 hash function on GPU that supports it
-  arbiter_if : Phandle to the arbif platform device, used to provide KBASE with an interface
		to the Arbiter. This is required when using arbitration; setting to a non-NULL
		value will enable arbitration.
		If arbitration is in use, then there should be no external GPU control.
		When arbiter_if is in use then the following must not be:
		- power_model                         (no IPA allowed with arbitration)
		- #cooling-cells
		- operating-points-v2                 (no dvfs in kbase with arbitration)
		- system-coherency with a value of 1  (no full coherency with arbitration)



Example for a Mali GPU with 1 clock and no regulators:

gpu@0xfc010000 {
	compatible = "arm,malit602", "arm,malit60x", "arm,malit6xx", "arm,mali-midgard";
	reg = <0xfc010000 0x4000>;
	interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
	interrupt-names = "JOB", "MMU", "GPU";

	clocks = <&pclk_mali>;
	clock-names = "clk_mali";
	mali-supply = <&vdd_mali>;
	operating-points-v2 = <&gpu_opp_table>;
	power_model@0 {
		compatible = "arm,mali-simple-power-model";
		static-coefficient = <2427750>;
		dynamic-coefficient = <4687>;
		ts = <20000 2000 (-20) 2>;
		thermal-zone = "gpu";
	};
	power_model@1 {
		compatible = "arm,mali-g71-power-model";
		scale = <5>;
	};

	idvs-group-size = <0x7>;
	l2-size = /bits/ 8 <0x10>;
	l2-hash = /bits/ 8 <0x04>;
};

gpu_opp_table: opp_table0 {
	compatible = "operating-points-v2";

	opp@533000000 {
		opp-hz = /bits/ 64 <533000000>;
		opp-microvolt = <1250000>;
	};
	opp@450000000 {
		opp-hz = /bits/ 64 <450000000>;
		opp-microvolt = <1150000>;
	};
	opp@400000000 {
		opp-hz = /bits/ 64 <400000000>;
		opp-microvolt = <1125000>;
	};
	opp@350000000 {
		opp-hz = /bits/ 64 <350000000>;
		opp-microvolt = <1075000>;
	};
	opp@266000000 {
		opp-hz = /bits/ 64 <266000000>;
		opp-microvolt = <1025000>;
	};
	opp@160000000 {
		opp-hz = /bits/ 64 <160000000>;
		opp-microvolt = <925000>;
	};
	opp@100000000 {
		opp-hz = /bits/ 64 <100000000>;
		opp-microvolt = <912500>;
	};
};

Example for a Mali GPU with 2 clocks and 2 regulators:

gpu: gpu@6e000000 {
	compatible = "arm,mali-midgard";
	reg = <0x0 0x6e000000 0x0 0x200000>;
	interrupts = <0 168 4>, <0 168 4>, <0 168 4>;
	interrupt-names = "JOB", "MMU", "GPU";
	clocks = <&clk_mali 0>, <&clk_mali 1>;
	clock-names = "clk_mali", "shadercores";
	mali-supply = <&supply0_3v3>;
	shadercores-supply = <&supply1_3v3>;
	system-coherency = <31>;
	operating-points-v2 = <&gpu_opp_table>;
};

gpu_opp_table: opp_table0 {
	compatible = "operating-points-v2", "operating-points-v2-mali";

	opp@0 {
		opp-hz = /bits/ 64 <50000000>;
		opp-hz-real = /bits/ 64 <50000000>, /bits/ 64 <45000000>;
		opp-microvolt = <820000>, <800000>;
		opp-core-mask = /bits/ 64 <0xf>;
	};
	opp@1 {
		opp-hz = /bits/ 64 <40000000>;
		opp-hz-real = /bits/ 64 <40000000>, /bits/ 64 <35000000>;
		opp-microvolt = <720000>, <700000>;
		opp-core-mask = /bits/ 64 <0x7>;
	};
	opp@2 {
		opp-hz = /bits/ 64 <30000000>;
		opp-hz-real = /bits/ 64 <30000000>, /bits/ 64 <25000000>;
		opp-microvolt = <620000>, <700000>;
		opp-core-mask = /bits/ 64 <0x3>;
	};
};
