summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
blob: b352a6851a0689aeb37321ba5907639a9ec25132 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
ARM Mali Utgard GPU
===================

Required properties:
  - compatible
    * Must be one of the following:
      + "arm,mali-300"
      + "arm,mali-400"
      + "arm,mali-450"
    * And, optionally, one of the vendor specific compatible:
      + allwinner,sun4i-a10-mali
      + allwinner,sun7i-a20-mali
      + allwinner,sun8i-h3-mali
      + allwinner,sun50i-a64-mali
      + allwinner,sun50i-h5-mali
      + amlogic,meson8-mali
      + amlogic,meson8b-mali
      + amlogic,meson-gxbb-mali
      + amlogic,meson-gxl-mali
      + samsung,exynos4210-mali
      + rockchip,rk3036-mali
      + rockchip,rk3066-mali
      + rockchip,rk3188-mali
      + rockchip,rk3228-mali
      + rockchip,rk3328-mali
      + stericsson,db8500-mali

  - reg: Physical base address and length of the GPU registers

  - interrupts: an entry for each entry in interrupt-names.
    See ../interrupt-controller/interrupts.txt for details.

  - interrupt-names:
    * ppX: Pixel Processor X interrupt (X from 0 to 7)
    * ppmmuX: Pixel Processor X MMU interrupt (X from 0 to 7)
    * pp: Pixel Processor broadcast interrupt (mali-450 only)
    * gp: Geometry Processor interrupt
    * gpmmu: Geometry Processor MMU interrupt

  - clocks: an entry for each entry in clock-names
  - clock-names:
    * bus: bus clock for the GPU
    * core: clock driving the GPU itself

Optional properties:
  - interrupt-names and interrupts:
    * pmu: Power Management Unit interrupt, if implemented in hardware

  - memory-region:
    Memory region to allocate from, as defined in
    Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt

  - mali-supply:
    Phandle to regulator for the Mali device, as defined in
    Documentation/devicetree/bindings/regulator/regulator.txt for details.

  - operating-points-v2:
    Operating Points for the GPU, as defined in
    Documentation/devicetree/bindings/opp/opp.txt

  - power-domains:
    A power domain consumer specifier as defined in
    Documentation/devicetree/bindings/power/power_domain.txt

Vendor-specific bindings
------------------------

The Mali GPU is integrated very differently from one SoC to
another. In order to accomodate those differences, you have the option
to specify one more vendor-specific compatible, among:

  - allwinner,sun4i-a10-mali
    Required properties:
      * resets: phandle to the reset line for the GPU

  - allwinner,sun7i-a20-mali
    Required properties:
      * resets: phandle to the reset line for the GPU

  - allwinner,sun50i-a64-mali
    Required properties:
      * resets: phandle to the reset line for the GPU

  - allwinner,sun50i-h5-mali
    Required properties:
      * resets: phandle to the reset line for the GPU

  - amlogic,meson8-mali and amlogic,meson8b-mali
    Required properties:
      * resets: phandle to the reset line for the GPU

  - Rockchip variants:
    Required properties:
      * resets: phandle to the reset line for the GPU

  - stericsson,db8500-mali
    Required properties:
      * interrupt-names and interrupts:
        + combined: combined interrupt of all of the above lines

Example:

mali: gpu@1c40000 {
	compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
	reg = <0x01c40000 0x10000>;
	interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
	interrupt-names = "gp",
			  "gpmmu",
			  "pp0",
			  "ppmmu0",
			  "pp1",
			  "ppmmu1",
			  "pmu";
	clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
	clock-names = "bus", "core";
	resets = <&ccu RST_BUS_GPU>;
};