Documentation: bindings: move the Berlin reset documentation
[deliverable/linux.git] / Documentation / devicetree / bindings / arm / marvell,berlin.txt
CommitLineData
2440946c
SH
1Marvell Berlin SoC Family Device Tree Bindings
2---------------------------------------------------------------
3
f07b4e49
AT
4Work in progress statement:
5
6Device tree files and bindings applying to Marvell Berlin SoCs and boards are
7considered "unstable". Any Marvell Berlin device tree binding may change at any
8time. Be sure to use a device tree binary and a kernel image generated from the
9same source tree.
10
11Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a
12stable binding/ABI.
13
14---------------------------------------------------------------
15
2440946c
SH
16Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
17shall have the following properties:
18
19* Required root node properties:
20compatible: must contain "marvell,berlin"
21
22In addition, the above compatible shall be extended with the specific
23SoC and board used. Currently known SoC compatibles are:
24 "marvell,berlin2" for Marvell Armada 1500 (BG2, 88DE3100),
25 "marvell,berlin2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005)
26 "marvell,berlin2ct" for Marvell Armada ? (BG2CT, 88DE????)
374ddcbf 27 "marvell,berlin2q" for Marvell Armada 1500-pro (BG2Q, 88DE3114)
2440946c
SH
28 "marvell,berlin3" for Marvell Armada ? (BG3, 88DE????)
29
30* Example:
31
32/ {
33 model = "Sony NSZ-GS7";
34 compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin";
35
36 ...
37}
55a4b07a 38
9ab5fb8a
AT
39* Marvell Berlin CPU control bindings
40
41CPU control register allows various operations on CPUs, like resetting them
42independently.
43
44Required properties:
45- compatible: should be "marvell,berlin-cpu-ctrl"
46- reg: address and length of the register set
47
48Example:
49
50cpu-ctrl@f7dd0000 {
51 compatible = "marvell,berlin-cpu-ctrl";
52 reg = <0xf7dd0000 0x10000>;
53};
54
55a4b07a
SH
55* Marvell Berlin2 chip control binding
56
57Marvell Berlin SoCs have a chip control register set providing several
58individual registers dealing with pinmux, padmux, clock, reset, and secondary
59CPU boot address. Unfortunately, the individual registers are spread among the
60chip control registers, so there should be a single DT node only providing the
61different functions which are described below.
62
63Required properties:
7c90a5a9
AT
64- compatible:
65 * the first value should be one of:
66 "marvell,berlin2-chip-ctrl" for BG2
67 "marvell,berlin2cd-chip-ctrl" for BG2CD
68 "marvell,berlin2q-chip-ctrl" for BG2Q
69 * the second and third values must be:
70 "simple-mfd", "syscon"
55a4b07a
SH
71- reg: address and length of following register sets for
72 BG2/BG2CD: chip control register set
73 BG2Q: chip control register set and cpu pll registers
74
e9673a75
AT
75* Marvell Berlin2 system control binding
76
77Marvell Berlin SoCs have a system control register set providing several
78individual registers dealing with pinmux, padmux, and reset.
79
80Required properties:
7c90a5a9
AT
81- compatible:
82 * the first value should be one of:
83 "marvell,berlin2-system-ctrl" for BG2
84 "marvell,berlin2cd-system-ctrl" for BG2CD
85 "marvell,berlin2q-system-ctrl" for BG2Q
86 * the second and third values must be:
87 "simple-mfd", "syscon"
e9673a75
AT
88- reg: address and length of the system control register set
89
55a4b07a
SH
90* Clock provider binding
91
92As clock related registers are spread among the chip control registers, the
93chip control node also provides the clocks. Marvell Berlin2 (BG2, BG2CD, BG2Q)
94SoCs share the same IP for PLLs and clocks, with some minor differences in
95features and register layout.
96
97Required properties:
98- #clock-cells: shall be set to 1
99- clocks: clock specifiers referencing the core clock input clocks
100- clock-names: array of strings describing the input clock specifiers above.
101 Allowed clock-names for the reference clocks are
102 "refclk" for the SoCs osciallator input on all SoCs,
103 and SoC-specific input clocks for
104 BG2/BG2CD: "video_ext0" for the external video clock input
105
106Clocks provided by core clocks shall be referenced by a clock specifier
107indexing one of the provided clocks. Refer to dt-bindings/clock/berlin<soc>.h
108for the corresponding index mapping.
109
e9673a75
AT
110* Pin controller binding
111
112Pin control registers are part of both register sets, chip control and system
113control. The pins controlled are organized in groups, so no actual pin
114information is needed.
115
116A pin-controller node should contain subnodes representing the pin group
117configurations, one per function. Each subnode has the group name and the muxing
118function used.
119
120Be aware the Marvell Berlin datasheets use the keyword 'mode' for what is called
121a 'function' in the pin-controller subsystem.
122
123Required subnode-properties:
124- groups: a list of strings describing the group names.
125- function: a string describing the function used to mux the groups.
126
55a4b07a
SH
127Example:
128
129chip: chip-control@ea0000 {
7c90a5a9 130 compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
55a4b07a
SH
131 #clock-cells = <1>;
132 reg = <0xea0000 0x400>;
133 clocks = <&refclk>, <&externaldev 0>;
134 clock-names = "refclk", "video_ext0";
e9673a75
AT
135
136 spi1_pmux: spi1-pmux {
137 groups = "G0";
138 function = "spi1";
139 };
140};
141
142sysctrl: system-controller@d000 {
7c90a5a9 143 compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
e9673a75
AT
144 reg = <0xd000 0x100>;
145
146 uart0_pmux: uart0-pmux {
147 groups = "GSM4";
148 function = "uart0";
149 };
150
151 uart1_pmux: uart1-pmux {
152 groups = "GSM5";
153 function = "uart1";
154 };
155
156 uart2_pmux: uart2-pmux {
157 groups = "GSM3";
158 function = "uart2";
159 };
55a4b07a 160};
This page took 0.088889 seconds and 5 git commands to generate.