diff options
author | Dong Aisheng <aisheng.dong@nxp.com> | 2018-10-07 09:04:41 -0400 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2018-10-08 03:28:51 -0400 |
commit | c6c2ee00fe2fb003cd95ac89526511a537103e2d (patch) | |
tree | 025729aad9a512c5df2be431f2a4cc07e428da26 | |
parent | 8d8e3b7d8f06f69005d829d4a195b00ef976004b (diff) |
dt-bindings: arm: fsl: add scu binding doc
The System Controller Firmware (SCFW) is a low-level system function
which runs on a dedicated Cortex-M core to provide power, clock, and
resource management. It exists on some i.MX8 processors. e.g. i.MX8QM
(QM, QP), and i.MX8QX (QXP, DX).
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: devicetree@vger.kernel.org
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-rw-r--r-- | Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt new file mode 100644 index 000000000000..46d0af1f0872 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt | |||
@@ -0,0 +1,183 @@ | |||
1 | NXP i.MX System Controller Firmware (SCFW) | ||
2 | -------------------------------------------------------------------- | ||
3 | |||
4 | The System Controller Firmware (SCFW) is a low-level system function | ||
5 | which runs on a dedicated Cortex-M core to provide power, clock, and | ||
6 | resource management. It exists on some i.MX8 processors. e.g. i.MX8QM | ||
7 | (QM, QP), and i.MX8QX (QXP, DX). | ||
8 | |||
9 | The AP communicates with the SC using a multi-ported MU module found | ||
10 | in the LSIO subsystem. The current definition of this MU module provides | ||
11 | 5 remote AP connections to the SC to support up to 5 execution environments | ||
12 | (TZ, HV, standard Linux, etc.). The SC side of this MU module interfaces | ||
13 | with the LSIO DSC IP bus. The SC firmware will communicate with this MU | ||
14 | using the MSI bus. | ||
15 | |||
16 | System Controller Device Node: | ||
17 | ============================================================ | ||
18 | |||
19 | The scu node with the following properties shall be under the /firmware/ node. | ||
20 | |||
21 | Required properties: | ||
22 | ------------------- | ||
23 | - compatible: should be "fsl,imx-scu". | ||
24 | - mbox-names: should include "tx0", "tx1", "tx2", "tx3", | ||
25 | "rx0", "rx1", "rx2", "rx3". | ||
26 | - mboxes: List of phandle of 4 MU channels for tx and 4 MU channels | ||
27 | for rx. All 8 MU channels must be in the same MU instance. | ||
28 | Cross instances are not allowed. The MU instance can only | ||
29 | be one of LSIO MU0~M4 for imx8qxp and imx8qm. Users need | ||
30 | to make sure use the one which is not conflict with other | ||
31 | execution environments. e.g. ATF. | ||
32 | Note: | ||
33 | Channel 0 must be "tx0" or "rx0". | ||
34 | Channel 1 must be "tx1" or "rx1". | ||
35 | Channel 2 must be "tx2" or "rx2". | ||
36 | Channel 3 must be "tx3" or "rx3". | ||
37 | e.g. | ||
38 | mboxes = <&lsio_mu1 0 0 | ||
39 | &lsio_mu1 0 1 | ||
40 | &lsio_mu1 0 2 | ||
41 | &lsio_mu1 0 3 | ||
42 | &lsio_mu1 1 0 | ||
43 | &lsio_mu1 1 1 | ||
44 | &lsio_mu1 1 2 | ||
45 | &lsio_mu1 1 3>; | ||
46 | See Documentation/devicetree/bindings/mailbox/fsl,mu.txt | ||
47 | for detailed mailbox binding. | ||
48 | |||
49 | i.MX SCU Client Device Node: | ||
50 | ============================================================ | ||
51 | |||
52 | Client nodes are maintained as children of the relevant IMX-SCU device node. | ||
53 | |||
54 | Power domain bindings based on SCU Message Protocol | ||
55 | ------------------------------------------------------------ | ||
56 | |||
57 | This binding for the SCU power domain providers uses the generic power | ||
58 | domain binding[2]. | ||
59 | |||
60 | Required properties: | ||
61 | - compatible: Should be "fsl,scu-pd". | ||
62 | - #address-cells: Should be 1. | ||
63 | - #size-cells: Should be 0. | ||
64 | |||
65 | Required properties for power domain sub nodes: | ||
66 | - #power-domain-cells: Must be 0. | ||
67 | |||
68 | Optional Properties: | ||
69 | - reg: Resource ID of this power domain. | ||
70 | No exist means uncontrollable by user. | ||
71 | See detailed Resource ID list from: | ||
72 | include/dt-bindings/power/imx-rsrc.h | ||
73 | - power-domains: phandle pointing to the parent power domain. | ||
74 | |||
75 | Clock bindings based on SCU Message Protocol | ||
76 | ------------------------------------------------------------ | ||
77 | |||
78 | This binding uses the common clock binding[1]. | ||
79 | |||
80 | Required properties: | ||
81 | - compatible: Should be "fsl,imx8qxp-clock". | ||
82 | - #clock-cells: Should be 1. Contains the Clock ID value. | ||
83 | - clocks: List of clock specifiers, must contain an entry for | ||
84 | each required entry in clock-names | ||
85 | - clock-names: Should include entries "xtal_32KHz", "xtal_24MHz" | ||
86 | |||
87 | The clock consumer should specify the desired clock by having the clock | ||
88 | ID in its "clocks" phandle cell. | ||
89 | |||
90 | See the full list of clock IDs from: | ||
91 | include/dt-bindings/clock/imx8qxp-clock.h | ||
92 | |||
93 | Pinctrl bindings based on SCU Message Protocol | ||
94 | ------------------------------------------------------------ | ||
95 | |||
96 | This binding uses the i.MX common pinctrl binding[3]. | ||
97 | |||
98 | Required properties: | ||
99 | - compatible: Should be "fsl,imx8qxp-iomuxc". | ||
100 | |||
101 | Required properties for Pinctrl sub nodes: | ||
102 | - fsl,pins: Each entry consists of 3 integers which represents | ||
103 | the mux and config setting for one pin. The first 2 | ||
104 | integers <pin_id mux_mode> are specified using a | ||
105 | PIN_FUNC_ID macro, which can be found in | ||
106 | <dt-bindings/pinctrl/pads-imx8qxp.h>. | ||
107 | The last integer CONFIG is the pad setting value like | ||
108 | pull-up on this pin. | ||
109 | |||
110 | Please refer to i.MX8QXP Reference Manual for detailed | ||
111 | CONFIG settings. | ||
112 | |||
113 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
114 | [2] Documentation/devicetree/bindings/power/power_domain.txt | ||
115 | [3] Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt | ||
116 | |||
117 | Example (imx8qxp): | ||
118 | ------------- | ||
119 | lsio_mu1: mailbox@5d1c0000 { | ||
120 | ... | ||
121 | #mbox-cells = <2>; | ||
122 | }; | ||
123 | |||
124 | firmware { | ||
125 | scu { | ||
126 | compatible = "fsl,imx-scu"; | ||
127 | mbox-names = "tx0", "tx1", "tx2", "tx3", | ||
128 | "rx0", "rx1", "rx2", "rx3"; | ||
129 | mboxes = <&lsio_mu1 0 0 | ||
130 | &lsio_mu1 0 1 | ||
131 | &lsio_mu1 0 2 | ||
132 | &lsio_mu1 0 3 | ||
133 | &lsio_mu1 1 0 | ||
134 | &lsio_mu1 1 1 | ||
135 | &lsio_mu1 1 2 | ||
136 | &lsio_mu1 1 3>; | ||
137 | |||
138 | clk: clk { | ||
139 | compatible = "fsl,imx8qxp-clk"; | ||
140 | #clock-cells = <1>; | ||
141 | }; | ||
142 | |||
143 | iomuxc { | ||
144 | compatible = "fsl,imx8qxp-iomuxc"; | ||
145 | |||
146 | pinctrl_lpuart0: lpuart0grp { | ||
147 | fsl,pins = < | ||
148 | SC_P_UART0_RX_ADMA_UART0_RX 0x06000020 | ||
149 | SC_P_UART0_TX_ADMA_UART0_TX 0x06000020 | ||
150 | >; | ||
151 | }; | ||
152 | ... | ||
153 | }; | ||
154 | |||
155 | imx8qx-pm { | ||
156 | compatible = "fsl,scu-pd"; | ||
157 | #address-cells = <1>; | ||
158 | #size-cells = <0>; | ||
159 | |||
160 | pd_dma: dma-power-domain { | ||
161 | #power-domain-cells = <0>; | ||
162 | |||
163 | pd_dma_lpuart0: dma-lpuart0@57 { | ||
164 | reg = <SC_R_UART_0>; | ||
165 | #power-domain-cells = <0>; | ||
166 | power-domains = <&pd_dma>; | ||
167 | }; | ||
168 | ... | ||
169 | }; | ||
170 | ... | ||
171 | }; | ||
172 | }; | ||
173 | }; | ||
174 | |||
175 | serial@5a060000 { | ||
176 | ... | ||
177 | pinctrl-names = "default"; | ||
178 | pinctrl-0 = <&pinctrl_lpuart0>; | ||
179 | clocks = <&clk IMX8QXP_UART0_CLK>, | ||
180 | <&clk IMX8QXP_UART0_IPG_CLK>; | ||
181 | clock-names = "per", "ipg"; | ||
182 | power-domains = <&pd_dma_lpuart0>; | ||
183 | }; | ||