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