summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
blob: ba895efe3039b550f737e8a26d4fb5a20a303ea5 (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
125
126
127
128
129
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
      + hisilicon,hi6220-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

  - hisilicon,hi6220-mali
    Required properties:
      * resets: phandles to the reset lines for the GPU

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