]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - src/arm64/freescale/imx8qm.dtsi
Import device-tree files from Linux 5.17
[FreeBSD/FreeBSD.git] / src / arm64 / freescale / imx8qm.dtsi
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright 2018-2019 NXP
4  *      Dong Aisheng <aisheng.dong@nxp.com>
5  */
6
7 #include <dt-bindings/clock/imx8-lpcg.h>
8 #include <dt-bindings/firmware/imx/rsrc.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/pinctrl/pads-imx8qm.h>
12
13 / {
14         interrupt-parent = <&gic>;
15         #address-cells = <2>;
16         #size-cells = <2>;
17
18         aliases {
19                 mmc0 = &usdhc1;
20                 mmc1 = &usdhc2;
21                 mmc2 = &usdhc3;
22                 serial0 = &lpuart0;
23         };
24
25         cpus {
26                 #address-cells = <2>;
27                 #size-cells = <0>;
28
29                 cpu-map {
30                         cluster0 {
31                                 core0 {
32                                         cpu = <&A53_0>;
33                                 };
34                                 core1 {
35                                         cpu = <&A53_1>;
36                                 };
37                                 core2 {
38                                         cpu = <&A53_2>;
39                                 };
40                                 core3 {
41                                         cpu = <&A53_3>;
42                                 };
43                         };
44
45                         cluster1 {
46                                 core0 {
47                                         cpu = <&A72_0>;
48                                 };
49                                 core1 {
50                                         cpu = <&A72_1>;
51                                 };
52                         };
53                 };
54
55                 A53_0: cpu@0 {
56                         device_type = "cpu";
57                         compatible = "arm,cortex-a53", "arm,armv8";
58                         reg = <0x0 0x0>;
59                         enable-method = "psci";
60                         i-cache-size = <0x8000>;
61                         i-cache-line-size = <64>;
62                         i-cache-sets = <256>;
63                         d-cache-size = <0x8000>;
64                         d-cache-line-size = <64>;
65                         d-cache-sets = <128>;
66                         next-level-cache = <&A53_L2>;
67                 };
68
69                 A53_1: cpu@1 {
70                         device_type = "cpu";
71                         compatible = "arm,cortex-a53", "arm,armv8";
72                         reg = <0x0 0x1>;
73                         enable-method = "psci";
74                         i-cache-size = <0x8000>;
75                         i-cache-line-size = <64>;
76                         i-cache-sets = <256>;
77                         d-cache-size = <0x8000>;
78                         d-cache-line-size = <64>;
79                         d-cache-sets = <128>;
80                         next-level-cache = <&A53_L2>;
81                 };
82
83                 A53_2: cpu@2 {
84                         device_type = "cpu";
85                         compatible = "arm,cortex-a53", "arm,armv8";
86                         reg = <0x0 0x2>;
87                         enable-method = "psci";
88                         i-cache-size = <0x8000>;
89                         i-cache-line-size = <64>;
90                         i-cache-sets = <256>;
91                         d-cache-size = <0x8000>;
92                         d-cache-line-size = <64>;
93                         d-cache-sets = <128>;
94                         next-level-cache = <&A53_L2>;
95                 };
96
97                 A53_3: cpu@3 {
98                         device_type = "cpu";
99                         compatible = "arm,cortex-a53", "arm,armv8";
100                         reg = <0x0 0x3>;
101                         enable-method = "psci";
102                         i-cache-size = <0x8000>;
103                         i-cache-line-size = <64>;
104                         i-cache-sets = <256>;
105                         d-cache-size = <0x8000>;
106                         d-cache-line-size = <64>;
107                         d-cache-sets = <128>;
108                         next-level-cache = <&A53_L2>;
109                 };
110
111                 A72_0: cpu@100 {
112                         device_type = "cpu";
113                         compatible = "arm,cortex-a72", "arm,armv8";
114                         reg = <0x0 0x100>;
115                         enable-method = "psci";
116                         i-cache-size = <0xC000>;
117                         i-cache-line-size = <64>;
118                         i-cache-sets = <256>;
119                         d-cache-size = <0x8000>;
120                         d-cache-line-size = <64>;
121                         d-cache-sets = <256>;
122                         next-level-cache = <&A72_L2>;
123                 };
124
125                 A72_1: cpu@101 {
126                         device_type = "cpu";
127                         compatible = "arm,cortex-a72", "arm,armv8";
128                         reg = <0x0 0x101>;
129                         enable-method = "psci";
130                         next-level-cache = <&A72_L2>;
131                 };
132
133                 A53_L2: l2-cache0 {
134                         compatible = "cache";
135                         cache-level = <2>;
136                         cache-size = <0x100000>;
137                         cache-line-size = <64>;
138                         cache-sets = <1024>;
139                 };
140
141                 A72_L2: l2-cache1 {
142                         compatible = "cache";
143                         cache-level = <2>;
144                         cache-size = <0x100000>;
145                         cache-line-size = <64>;
146                         cache-sets = <1024>;
147                 };
148         };
149
150         gic: interrupt-controller@51a00000 {
151                 compatible = "arm,gic-v3";
152                 reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
153                       <0x0 0x51b00000 0 0xC0000>, /* GICR */
154                       <0x0 0x52000000 0 0x2000>,  /* GICC */
155                       <0x0 0x52010000 0 0x1000>,  /* GICH */
156                       <0x0 0x52020000 0 0x20000>; /* GICV */
157                 #interrupt-cells = <3>;
158                 interrupt-controller;
159                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
160                 interrupt-parent = <&gic>;
161         };
162
163         pmu {
164                 compatible = "arm,armv8-pmuv3";
165                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
166         };
167
168         psci {
169                 compatible = "arm,psci-1.0";
170                 method = "smc";
171         };
172
173         timer {
174                 compatible = "arm,armv8-timer";
175                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
176                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
177                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
178                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
179         };
180
181         scu {
182                 compatible = "fsl,imx-scu";
183                 mbox-names = "tx0",
184                              "rx0",
185                              "gip3";
186                 mboxes = <&lsio_mu1 0 0
187                           &lsio_mu1 1 0
188                           &lsio_mu1 3 3>;
189
190                 pd: imx8qx-pd {
191                         compatible = "fsl,imx8qm-scu-pd", "fsl,scu-pd";
192                         #power-domain-cells = <1>;
193                 };
194
195                 clk: clock-controller {
196                         compatible = "fsl,imx8qxp-clk", "fsl,scu-clk";
197                         #clock-cells = <2>;
198                 };
199
200                 iomuxc: pinctrl {
201                         compatible = "fsl,imx8qm-iomuxc";
202                 };
203
204         };
205
206         /* sorted in register address */
207         #include "imx8-ss-img.dtsi"
208         #include "imx8-ss-dma.dtsi"
209         #include "imx8-ss-conn.dtsi"
210         #include "imx8-ss-lsio.dtsi"
211 };
212
213 #include "imx8qm-ss-img.dtsi"
214 #include "imx8qm-ss-dma.dtsi"
215 #include "imx8qm-ss-conn.dtsi"
216 #include "imx8qm-ss-lsio.dtsi"