Merge tag 'drm-fixes-5.5-2019-12-12' of git://people.freedesktop.org/~agd5f/linux...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / arm / marvell / ap80x-system-controller.txt
1 Marvell Armada AP80x System Controller
2 ======================================
3
4 The AP806/AP807 is one of the two core HW blocks of the Marvell Armada
5 7K/8K/931x SoCs. It contains system controllers, which provide several
6 registers giving access to numerous features: clocks, pin-muxing and
7 many other SoC configuration items. This DT binding allows to describe
8 these system controllers.
9
10 For the top level node:
11  - compatible: must be: "syscon", "simple-mfd";
12  - reg: register area of the AP80x system controller
13
14 SYSTEM CONTROLLER 0
15 ===================
16
17 Clocks:
18 -------
19
20
21 The Device Tree node representing the AP806/AP807 system controller
22 provides a number of clocks:
23
24  - 0: reference clock of CPU cluster 0
25  - 1: reference clock of CPU cluster 1
26  - 2: fixed PLL at 1200 Mhz
27  - 3: MSS clock, derived from the fixed PLL
28
29 Required properties:
30
31  - compatible: must be one of:
32    * "marvell,ap806-clock"
33    * "marvell,ap807-clock"
34  - #clock-cells: must be set to 1
35
36 Pinctrl:
37 --------
38
39 For common binding part and usage, refer to
40 Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt.
41
42 Required properties:
43 - compatible must be "marvell,ap806-pinctrl",
44
45 Available mpp pins/groups and functions:
46 Note: brackets (x) are not part of the mpp name for marvell,function and given
47 only for more detailed description in this document.
48
49 name    pins    functions
50 ================================================================================
51 mpp0    0       gpio, sdio(clk), spi0(clk)
52 mpp1    1       gpio, sdio(cmd), spi0(miso)
53 mpp2    2       gpio, sdio(d0), spi0(mosi)
54 mpp3    3       gpio, sdio(d1), spi0(cs0n)
55 mpp4    4       gpio, sdio(d2), i2c0(sda)
56 mpp5    5       gpio, sdio(d3), i2c0(sdk)
57 mpp6    6       gpio, sdio(ds)
58 mpp7    7       gpio, sdio(d4), uart1(rxd)
59 mpp8    8       gpio, sdio(d5), uart1(txd)
60 mpp9    9       gpio, sdio(d6), spi0(cs1n)
61 mpp10   10      gpio, sdio(d7)
62 mpp11   11      gpio, uart0(txd)
63 mpp12   12      gpio, sdio(pw_off), sdio(hw_rst)
64 mpp13   13      gpio
65 mpp14   14      gpio
66 mpp15   15      gpio
67 mpp16   16      gpio
68 mpp17   17      gpio
69 mpp18   18      gpio
70 mpp19   19      gpio, uart0(rxd), sdio(pw_off)
71
72 GPIO:
73 -----
74 For common binding part and usage, refer to
75 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt.
76
77 Required properties:
78
79 - compatible: "marvell,armada-8k-gpio"
80
81 - offset: offset address inside the syscon block
82
83 Example:
84 ap_syscon: system-controller@6f4000 {
85         compatible = "syscon", "simple-mfd";
86         reg = <0x6f4000 0x1000>;
87
88         ap_clk: clock {
89                 compatible = "marvell,ap806-clock";
90                 #clock-cells = <1>;
91         };
92
93         ap_pinctrl: pinctrl {
94                 compatible = "marvell,ap806-pinctrl";
95         };
96
97         ap_gpio: gpio {
98                 compatible = "marvell,armada-8k-gpio";
99                 offset = <0x1040>;
100                 ngpios = <19>;
101                 gpio-controller;
102                 #gpio-cells = <2>;
103                 gpio-ranges = <&ap_pinctrl 0 0 19>;
104         };
105 };
106
107 SYSTEM CONTROLLER 1
108 ===================
109
110 Thermal:
111 --------
112
113 For common binding part and usage, refer to
114 Documentation/devicetree/bindings/thermal/thermal.txt
115
116 The thermal IP can probe the temperature all around the processor. It
117 may feature several channels, each of them wired to one sensor.
118
119 It is possible to setup an overheat interrupt by giving at least one
120 critical point to any subnode of the thermal-zone node.
121
122 Required properties:
123 - compatible: must be one of:
124   * marvell,armada-ap806-thermal
125 - reg: register range associated with the thermal functions.
126
127 Optional properties:
128 - interrupts: overheat interrupt handle. Should point to line 18 of the
129   SEI irqchip. See interrupt-controller/interrupts.txt
130 - #thermal-sensor-cells: shall be <1> when thermal-zones subnodes refer
131   to this IP and represents the channel ID. There is one sensor per
132   channel. O refers to the thermal IP internal channel, while positive
133   IDs refer to each CPU.
134
135 Example:
136 ap_syscon1: system-controller@6f8000 {
137         compatible = "syscon", "simple-mfd";
138         reg = <0x6f8000 0x1000>;
139
140         ap_thermal: thermal-sensor@80 {
141                 compatible = "marvell,armada-ap806-thermal";
142                 reg = <0x80 0x10>;
143                 interrupt-parent = <&sei>;
144                 interrupts = <18>;
145                 #thermal-sensor-cells = <1>;
146         };
147 };
148
149 Cluster clocks:
150 ---------------
151
152 Device Tree Clock bindings for cluster clock of Marvell
153 AP806/AP807. Each cluster contain up to 2 CPUs running at the same
154 frequency.
155
156 Required properties:
157  - compatible: must be one of:
158    * "marvell,ap806-cpu-clock"
159    * "marvell,ap807-cpu-clock"
160 - #clock-cells : should be set to 1.
161
162 - clocks : shall be the input parent clock(s) phandle for the clock
163            (one per cluster)
164
165 - reg: register range associated with the cluster clocks
166
167 ap_syscon1: system-controller@6f8000 {
168         compatible = "marvell,armada-ap806-syscon1", "syscon", "simple-mfd";
169         reg = <0x6f8000 0x1000>;
170
171         cpu_clk: clock-cpu@278 {
172                 compatible = "marvell,ap806-cpu-clock";
173                 clocks = <&ap_clk 0>, <&ap_clk 1>;
174                 #clock-cells = <1>;
175                 reg = <0x278 0xa30>;
176         };
177 };