summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
blob: d3b6e1a4713a58d00692ab8bf2ae74f1956a40e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
ARM Mali Midgard GPU
====================

Required properties:

- compatible :
  * Must contain one of the following:
    + "arm,mali-t604"
    + "arm,mali-t624"
    + "arm,mali-t628"
    + "arm,mali-t720"
    + "arm,mali-t760"
    + "arm,mali-t820"
    + "arm,mali-t830"
    + "arm,mali-t860"
    + "arm,mali-t880"
  * which must be preceded by one of the following vendor specifics:
    + "amlogic,meson-gxm-mali"
    + "rockchip,rk3288-mali"

- reg : Physical base address of the device and length of the register area.

- interrupts : Contains the three IRQ lines required by Mali Midgard 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 properties:

- clocks : Phandle to clock for the Mali Midgard device.

- mali-supply : Phandle to regulator for the Mali device. Refer to
  Documentation/devicetree/bindings/regulator/regulator.txt for details.

- operating-points-v2 : Refer to Documentation/devicetree/bindings/power/opp.txt
  for details.


Example for a Mali-T760:

gpu@ffa30000 {
	compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard";
	reg = <0xffa30000 0x10000>;
	interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
	interrupt-names = "job", "mmu", "gpu";
	clocks = <&cru ACLK_GPU>;
	mali-supply = <&vdd_gpu>;
	operating-points-v2 = <&gpu_opp_table>;
	power-domains = <&power RK3288_PD_GPU>;
};

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>;
	};
};