diff options
author | Olof Johansson <olof@lixom.net> | 2019-04-29 12:26:55 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2019-04-29 12:26:55 -0400 |
commit | 89f4f128ea535acaabf7d5bddc30ddda0fb7a70a (patch) | |
tree | bb2373b73e0f8111aba7da0cad5d8ee72882048a | |
parent | f45f5182d7531ad35082fc224ad284a62c9ee770 (diff) | |
parent | 00c5ce8ac0233fb8975448e720bb1702b36d0725 (diff) |
Merge tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt
i.MX arm64 device tree update for 5.2:
- Add initial i.MX8MM SoC and EVK board support.
- Enable OPP table for cpufreq support on i.MX8MQ, i.MX8QXP and
i.MX8MM.
- A series from Andrey Smirnov to enable PCIe support for i.MX8MQ.
- Add TMU (Thermal Management Unit) device on i.MX8MQ for managing
thermal of CPU, GPU, and VPU.
- Add SDMA and SAI2 devices for i.MX8MQ SoC and enable wm8524 audio
support on EVK board.
- Add LPUART, OCOTP and GPU devices for i.MX8MQ SoC.
- Add initial i.MX8MQ based Zii Ultra board support
- Add SCU general IRQ and watchdog support for i.MX8QXP.
- Add audio related devices and PMU for LS1028A.
- Enable SATA and cpuidle support for LX2160A.
- Other small random updates.
* tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (41 commits)
arm64: dts: lx2160a: add cpu idle support
arm64: dts: imx8mq: fix GPU clock frequency
arm64: dts: fsl: imx8mq-evk: link regulator to GPU domain
arm64: dts: imx8mm: Add cpufreq properties
arm64: dts: imx8qxp-mek: Add i2c1 with pca9646
arm64: dts: imx8qxp: enable scu general irq channel
arm64: dts: imx8mq: add GPU node
arm64: dts: imx: add Zii Ultra board support
arm64: dts: imx8mq: fix higher CPU operating point
arm64: dts: imx8mq-evk: Enable PCIE0 interface
arm64: dts: imx8mq: Add nodes for PCIe IP blocks
arm64: dts: imx8mq: Combine PCIE power domains
arm64: dts: imx8mq: Add a node for SRC IP block
arm64: dts: imx8mq: Mark iomuxc_gpr as i.MX6Q compatible
arm64: dts: imx8qxp: Add lpuart1/lpuart2/lpuart3 nodes
arm64: dts: lx2160a: add sata node support
arm64: dts: ls1028a: Corrected the SATA ecc address
arm64: dts: imx8mq: Change ahb clock for imx8mq
arm64: dts: imx8mq: Fix the fsl,imx8mq-sdma compatible string
arm64: dts: imx8qxp: add system controller watchdog support
...
Signed-off-by: Olof Johansson <olof@lixom.net>
21 files changed, 2725 insertions, 13 deletions
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 13604e558dc1..0bd122f60549 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile | |||
@@ -20,5 +20,8 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb | |||
20 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb | 20 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb |
21 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb | 21 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb |
22 | 22 | ||
23 | dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb | ||
23 | dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb | 24 | dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb |
25 | dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-rmb3.dtb | ||
26 | dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-zest.dtb | ||
24 | dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb | 27 | dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a-oxalis.dts b/arch/arm64/boot/dts/freescale/fsl-ls1012a-oxalis.dts index 7c726267ec8f..9927b096d343 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a-oxalis.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-oxalis.dts | |||
@@ -87,6 +87,10 @@ | |||
87 | status = "okay"; | 87 | status = "okay"; |
88 | }; | 88 | }; |
89 | 89 | ||
90 | &pcie { | ||
91 | status = "okay"; | ||
92 | }; | ||
93 | |||
90 | &sai2 { | 94 | &sai2 { |
91 | status = "okay"; | 95 | status = "okay"; |
92 | }; | 96 | }; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi index 1ce0042b2a14..ec6257a5b251 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | |||
@@ -475,7 +475,7 @@ | |||
475 | interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>; | 475 | interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>; |
476 | }; | 476 | }; |
477 | 477 | ||
478 | pcie@3400000 { | 478 | pcie: pcie@3400000 { |
479 | compatible = "fsl,ls1012a-pcie"; | 479 | compatible = "fsl,ls1012a-pcie"; |
480 | reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ | 480 | reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ |
481 | 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ | 481 | 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts index 14c79f4691ea..b359068d9605 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | |||
@@ -32,6 +32,49 @@ | |||
32 | device_type = "memory"; | 32 | device_type = "memory"; |
33 | reg = <0x0 0x80000000 0x1 0x00000000>; | 33 | reg = <0x0 0x80000000 0x1 0x00000000>; |
34 | }; | 34 | }; |
35 | |||
36 | sys_mclk: clock-mclk { | ||
37 | compatible = "fixed-clock"; | ||
38 | #clock-cells = <0>; | ||
39 | clock-frequency = <25000000>; | ||
40 | }; | ||
41 | |||
42 | reg_1p8v: regulator-1p8v { | ||
43 | compatible = "regulator-fixed"; | ||
44 | regulator-name = "1P8V"; | ||
45 | regulator-min-microvolt = <1800000>; | ||
46 | regulator-max-microvolt = <1800000>; | ||
47 | regulator-always-on; | ||
48 | }; | ||
49 | |||
50 | sound { | ||
51 | compatible = "simple-audio-card"; | ||
52 | simple-audio-card,format = "i2s"; | ||
53 | simple-audio-card,widgets = | ||
54 | "Microphone", "Microphone Jack", | ||
55 | "Headphone", "Headphone Jack", | ||
56 | "Speaker", "Speaker Ext", | ||
57 | "Line", "Line In Jack"; | ||
58 | simple-audio-card,routing = | ||
59 | "MIC_IN", "Microphone Jack", | ||
60 | "Microphone Jack", "Mic Bias", | ||
61 | "LINE_IN", "Line In Jack", | ||
62 | "Headphone Jack", "HP_OUT", | ||
63 | "Speaker Ext", "LINE_OUT"; | ||
64 | |||
65 | simple-audio-card,cpu { | ||
66 | sound-dai = <&sai1>; | ||
67 | frame-master; | ||
68 | bitclock-master; | ||
69 | }; | ||
70 | |||
71 | simple-audio-card,codec { | ||
72 | sound-dai = <&sgtl5000>; | ||
73 | frame-master; | ||
74 | bitclock-master; | ||
75 | system-clock-frequency = <25000000>; | ||
76 | }; | ||
77 | }; | ||
35 | }; | 78 | }; |
36 | 79 | ||
37 | &duart0 { | 80 | &duart0 { |
@@ -89,5 +132,24 @@ | |||
89 | reg = <0x57>; | 132 | reg = <0x57>; |
90 | }; | 133 | }; |
91 | }; | 134 | }; |
135 | |||
136 | i2c@5 { | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <0>; | ||
139 | reg = <0x5>; | ||
140 | |||
141 | sgtl5000: audio-codec@a { | ||
142 | #sound-dai-cells = <0>; | ||
143 | compatible = "fsl,sgtl5000"; | ||
144 | reg = <0xa>; | ||
145 | VDDA-supply = <®_1p8v>; | ||
146 | VDDIO-supply = <®_1p8v>; | ||
147 | clocks = <&sys_mclk>; | ||
148 | }; | ||
149 | }; | ||
92 | }; | 150 | }; |
93 | }; | 151 | }; |
152 | |||
153 | &sai1 { | ||
154 | status = "okay"; | ||
155 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts index f86b054a74ae..f9c272fb0738 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | |||
@@ -28,6 +28,49 @@ | |||
28 | device_type = "memory"; | 28 | device_type = "memory"; |
29 | reg = <0x0 0x80000000 0x1 0x0000000>; | 29 | reg = <0x0 0x80000000 0x1 0x0000000>; |
30 | }; | 30 | }; |
31 | |||
32 | sys_mclk: clock-mclk { | ||
33 | compatible = "fixed-clock"; | ||
34 | #clock-cells = <0>; | ||
35 | clock-frequency = <25000000>; | ||
36 | }; | ||
37 | |||
38 | reg_1p8v: regulator-1p8v { | ||
39 | compatible = "regulator-fixed"; | ||
40 | regulator-name = "1P8V"; | ||
41 | regulator-min-microvolt = <1800000>; | ||
42 | regulator-max-microvolt = <1800000>; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | |||
46 | sound { | ||
47 | compatible = "simple-audio-card"; | ||
48 | simple-audio-card,format = "i2s"; | ||
49 | simple-audio-card,widgets = | ||
50 | "Microphone", "Microphone Jack", | ||
51 | "Headphone", "Headphone Jack", | ||
52 | "Speaker", "Speaker Ext", | ||
53 | "Line", "Line In Jack"; | ||
54 | simple-audio-card,routing = | ||
55 | "MIC_IN", "Microphone Jack", | ||
56 | "Microphone Jack", "Mic Bias", | ||
57 | "LINE_IN", "Line In Jack", | ||
58 | "Headphone Jack", "HP_OUT", | ||
59 | "Speaker Ext", "LINE_OUT"; | ||
60 | |||
61 | simple-audio-card,cpu { | ||
62 | sound-dai = <&sai4>; | ||
63 | frame-master; | ||
64 | bitclock-master; | ||
65 | }; | ||
66 | |||
67 | simple-audio-card,codec { | ||
68 | sound-dai = <&sgtl5000>; | ||
69 | frame-master; | ||
70 | bitclock-master; | ||
71 | system-clock-frequency = <25000000>; | ||
72 | }; | ||
73 | }; | ||
31 | }; | 74 | }; |
32 | 75 | ||
33 | &i2c0 { | 76 | &i2c0 { |
@@ -39,6 +82,22 @@ | |||
39 | #address-cells = <1>; | 82 | #address-cells = <1>; |
40 | #size-cells = <0>; | 83 | #size-cells = <0>; |
41 | 84 | ||
85 | i2c@1 { | ||
86 | #address-cells = <1>; | ||
87 | #size-cells = <0>; | ||
88 | reg = <0x1>; | ||
89 | |||
90 | sgtl5000: audio-codec@a { | ||
91 | #sound-dai-cells = <0>; | ||
92 | compatible = "fsl,sgtl5000"; | ||
93 | reg = <0xa>; | ||
94 | VDDA-supply = <®_1p8v>; | ||
95 | VDDIO-supply = <®_1p8v>; | ||
96 | clocks = <&sys_mclk>; | ||
97 | sclk-strength = <3>; | ||
98 | }; | ||
99 | }; | ||
100 | |||
42 | i2c@2 { | 101 | i2c@2 { |
43 | #address-cells = <1>; | 102 | #address-cells = <1>; |
44 | #size-cells = <0>; | 103 | #size-cells = <0>; |
@@ -88,3 +147,7 @@ | |||
88 | &enetc_port1 { | 147 | &enetc_port1 { |
89 | status = "disabled"; | 148 | status = "disabled"; |
90 | }; | 149 | }; |
150 | |||
151 | &sai4 { | ||
152 | status = "okay"; | ||
153 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi index 2896bbcfa3bb..b04581249f0b 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | |||
@@ -89,6 +89,11 @@ | |||
89 | IRQ_TYPE_LEVEL_LOW)>; | 89 | IRQ_TYPE_LEVEL_LOW)>; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | pmu { | ||
93 | compatible = "arm,cortex-a72-pmu"; | ||
94 | interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
95 | }; | ||
96 | |||
92 | gic: interrupt-controller@6000000 { | 97 | gic: interrupt-controller@6000000 { |
93 | compatible= "arm,gic-v3"; | 98 | compatible= "arm,gic-v3"; |
94 | #address-cells = <2>; | 99 | #address-cells = <2>; |
@@ -235,6 +240,21 @@ | |||
235 | status = "disabled"; | 240 | status = "disabled"; |
236 | }; | 241 | }; |
237 | 242 | ||
243 | edma0: dma-controller@22c0000 { | ||
244 | #dma-cells = <2>; | ||
245 | compatible = "fsl,vf610-edma"; | ||
246 | reg = <0x0 0x22c0000 0x0 0x10000>, | ||
247 | <0x0 0x22d0000 0x0 0x10000>, | ||
248 | <0x0 0x22e0000 0x0 0x10000>; | ||
249 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
250 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | ||
251 | interrupt-names = "edma-tx", "edma-err"; | ||
252 | dma-channels = <32>; | ||
253 | clock-names = "dmamux0", "dmamux1"; | ||
254 | clocks = <&clockgen 4 1>, | ||
255 | <&clockgen 4 1>; | ||
256 | }; | ||
257 | |||
238 | gpio1: gpio@2300000 { | 258 | gpio1: gpio@2300000 { |
239 | compatible = "fsl,qoriq-gpio"; | 259 | compatible = "fsl,qoriq-gpio"; |
240 | reg = <0x0 0x2300000 0x0 0x10000>; | 260 | reg = <0x0 0x2300000 0x0 0x10000>; |
@@ -277,7 +297,7 @@ | |||
277 | sata: sata@3200000 { | 297 | sata: sata@3200000 { |
278 | compatible = "fsl,ls1028a-ahci"; | 298 | compatible = "fsl,ls1028a-ahci"; |
279 | reg = <0x0 0x3200000 0x0 0x10000>, | 299 | reg = <0x0 0x3200000 0x0 0x10000>, |
280 | <0x0 0x20140520 0x0 0x4>; | 300 | <0x7 0x100520 0x0 0x4>; |
281 | reg-names = "ahci", "sata-ecc"; | 301 | reg-names = "ahci", "sata-ecc"; |
282 | interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; | 302 | interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; |
283 | clocks = <&clockgen 4 1>; | 303 | clocks = <&clockgen 4 1>; |
@@ -336,6 +356,48 @@ | |||
336 | <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; | 356 | <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; |
337 | }; | 357 | }; |
338 | 358 | ||
359 | sai1: audio-controller@f100000 { | ||
360 | #sound-dai-cells = <0>; | ||
361 | compatible = "fsl,vf610-sai"; | ||
362 | reg = <0x0 0xf100000 0x0 0x10000>; | ||
363 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
364 | clocks = <&clockgen 4 1>, <&clockgen 4 1>, | ||
365 | <&clockgen 4 1>, <&clockgen 4 1>; | ||
366 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | ||
367 | dma-names = "tx", "rx"; | ||
368 | dmas = <&edma0 1 4>, | ||
369 | <&edma0 1 3>; | ||
370 | status = "disabled"; | ||
371 | }; | ||
372 | |||
373 | sai2: audio-controller@f110000 { | ||
374 | #sound-dai-cells = <0>; | ||
375 | compatible = "fsl,vf610-sai"; | ||
376 | reg = <0x0 0xf110000 0x0 0x10000>; | ||
377 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
378 | clocks = <&clockgen 4 1>, <&clockgen 4 1>, | ||
379 | <&clockgen 4 1>, <&clockgen 4 1>; | ||
380 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | ||
381 | dma-names = "tx", "rx"; | ||
382 | dmas = <&edma0 1 6>, | ||
383 | <&edma0 1 5>; | ||
384 | status = "disabled"; | ||
385 | }; | ||
386 | |||
387 | sai4: audio-controller@f130000 { | ||
388 | #sound-dai-cells = <0>; | ||
389 | compatible = "fsl,vf610-sai"; | ||
390 | reg = <0x0 0xf130000 0x0 0x10000>; | ||
391 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
392 | clocks = <&clockgen 4 1>, <&clockgen 4 1>, | ||
393 | <&clockgen 4 1>, <&clockgen 4 1>; | ||
394 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | ||
395 | dma-names = "tx", "rx"; | ||
396 | dmas = <&edma0 1 10>, | ||
397 | <&edma0 1 9>; | ||
398 | status = "disabled"; | ||
399 | }; | ||
400 | |||
339 | pcie@1f0000000 { /* Integrated Endpoint Root Complex */ | 401 | pcie@1f0000000 { /* Integrated Endpoint Root Complex */ |
340 | compatible = "pci-host-ecam-generic"; | 402 | compatible = "pci-host-ecam-generic"; |
341 | reg = <0x01 0xf0000000 0x0 0x100000>; | 403 | reg = <0x01 0xf0000000 0x0 0x100000>; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts index 17ca357e854f..4223a2352d45 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | |||
@@ -15,7 +15,6 @@ | |||
15 | model = "LS1043A RDB Board"; | 15 | model = "LS1043A RDB Board"; |
16 | 16 | ||
17 | aliases { | 17 | aliases { |
18 | crypto = &crypto; | ||
19 | serial0 = &duart0; | 18 | serial0 = &duart0; |
20 | serial1 = &duart1; | 19 | serial1 = &duart1; |
21 | serial2 = &duart2; | 20 | serial2 = &duart2; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi index 6fd6116509cc..71d9ed9ff985 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | |||
@@ -18,6 +18,7 @@ | |||
18 | #size-cells = <2>; | 18 | #size-cells = <2>; |
19 | 19 | ||
20 | aliases { | 20 | aliases { |
21 | crypto = &crypto; | ||
21 | fman0 = &fman0; | 22 | fman0 = &fman0; |
22 | ethernet0 = &enet0; | 23 | ethernet0 = &enet0; |
23 | ethernet1 = &enet1; | 24 | ethernet1 = &enet1; |
@@ -296,7 +297,6 @@ | |||
296 | interrupts = <0 99 0x4>; | 297 | interrupts = <0 99 0x4>; |
297 | clock-names = "qspi_en", "qspi"; | 298 | clock-names = "qspi_en", "qspi"; |
298 | clocks = <&clockgen 4 0>, <&clockgen 4 0>; | 299 | clocks = <&clockgen 4 0>, <&clockgen 4 0>; |
299 | big-endian; | ||
300 | status = "disabled"; | 300 | status = "disabled"; |
301 | }; | 301 | }; |
302 | 302 | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi index cb7185014d3a..b0ef08b090dd 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | |||
@@ -215,8 +215,6 @@ | |||
215 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | 215 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; |
216 | clock-names = "qspi_en", "qspi"; | 216 | clock-names = "qspi_en", "qspi"; |
217 | clocks = <&clockgen 4 1>, <&clockgen 4 1>; | 217 | clocks = <&clockgen 4 1>, <&clockgen 4 1>; |
218 | big-endian; | ||
219 | fsl,qspi-has-second-chip; | ||
220 | status = "disabled"; | 218 | status = "disabled"; |
221 | }; | 219 | }; |
222 | 220 | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts index 99a22abbe725..1a5acf62f23c 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts | |||
@@ -95,6 +95,22 @@ | |||
95 | }; | 95 | }; |
96 | }; | 96 | }; |
97 | 97 | ||
98 | &sata0 { | ||
99 | status = "okay"; | ||
100 | }; | ||
101 | |||
102 | &sata1 { | ||
103 | status = "okay"; | ||
104 | }; | ||
105 | |||
106 | &sata2 { | ||
107 | status = "okay"; | ||
108 | }; | ||
109 | |||
110 | &sata3 { | ||
111 | status = "okay"; | ||
112 | }; | ||
113 | |||
98 | &uart0 { | 114 | &uart0 { |
99 | status = "okay"; | 115 | status = "okay"; |
100 | }; | 116 | }; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts index 9df37b159415..c2817b784232 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts | |||
@@ -128,6 +128,22 @@ | |||
128 | }; | 128 | }; |
129 | }; | 129 | }; |
130 | 130 | ||
131 | &sata0 { | ||
132 | status = "okay"; | ||
133 | }; | ||
134 | |||
135 | &sata1 { | ||
136 | status = "okay"; | ||
137 | }; | ||
138 | |||
139 | &sata2 { | ||
140 | status = "okay"; | ||
141 | }; | ||
142 | |||
143 | &sata3 { | ||
144 | status = "okay"; | ||
145 | }; | ||
146 | |||
131 | &uart0 { | 147 | &uart0 { |
132 | status = "okay"; | 148 | status = "okay"; |
133 | }; | 149 | }; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi index fe87204850b5..125a8cc2c5b3 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | |||
@@ -33,6 +33,7 @@ | |||
33 | i-cache-line-size = <64>; | 33 | i-cache-line-size = <64>; |
34 | i-cache-sets = <192>; | 34 | i-cache-sets = <192>; |
35 | next-level-cache = <&cluster0_l2>; | 35 | next-level-cache = <&cluster0_l2>; |
36 | cpu-idle-states = <&cpu_pw20>; | ||
36 | }; | 37 | }; |
37 | 38 | ||
38 | cpu@1 { | 39 | cpu@1 { |
@@ -48,6 +49,7 @@ | |||
48 | i-cache-line-size = <64>; | 49 | i-cache-line-size = <64>; |
49 | i-cache-sets = <192>; | 50 | i-cache-sets = <192>; |
50 | next-level-cache = <&cluster0_l2>; | 51 | next-level-cache = <&cluster0_l2>; |
52 | cpu-idle-states = <&cpu_pw20>; | ||
51 | }; | 53 | }; |
52 | 54 | ||
53 | cpu@100 { | 55 | cpu@100 { |
@@ -63,6 +65,7 @@ | |||
63 | i-cache-line-size = <64>; | 65 | i-cache-line-size = <64>; |
64 | i-cache-sets = <192>; | 66 | i-cache-sets = <192>; |
65 | next-level-cache = <&cluster1_l2>; | 67 | next-level-cache = <&cluster1_l2>; |
68 | cpu-idle-states = <&cpu_pw20>; | ||
66 | }; | 69 | }; |
67 | 70 | ||
68 | cpu@101 { | 71 | cpu@101 { |
@@ -78,6 +81,7 @@ | |||
78 | i-cache-line-size = <64>; | 81 | i-cache-line-size = <64>; |
79 | i-cache-sets = <192>; | 82 | i-cache-sets = <192>; |
80 | next-level-cache = <&cluster1_l2>; | 83 | next-level-cache = <&cluster1_l2>; |
84 | cpu-idle-states = <&cpu_pw20>; | ||
81 | }; | 85 | }; |
82 | 86 | ||
83 | cpu@200 { | 87 | cpu@200 { |
@@ -93,6 +97,7 @@ | |||
93 | i-cache-line-size = <64>; | 97 | i-cache-line-size = <64>; |
94 | i-cache-sets = <192>; | 98 | i-cache-sets = <192>; |
95 | next-level-cache = <&cluster2_l2>; | 99 | next-level-cache = <&cluster2_l2>; |
100 | cpu-idle-states = <&cpu_pw20>; | ||
96 | }; | 101 | }; |
97 | 102 | ||
98 | cpu@201 { | 103 | cpu@201 { |
@@ -108,6 +113,7 @@ | |||
108 | i-cache-line-size = <64>; | 113 | i-cache-line-size = <64>; |
109 | i-cache-sets = <192>; | 114 | i-cache-sets = <192>; |
110 | next-level-cache = <&cluster2_l2>; | 115 | next-level-cache = <&cluster2_l2>; |
116 | cpu-idle-states = <&cpu_pw20>; | ||
111 | }; | 117 | }; |
112 | 118 | ||
113 | cpu@300 { | 119 | cpu@300 { |
@@ -123,6 +129,7 @@ | |||
123 | i-cache-line-size = <64>; | 129 | i-cache-line-size = <64>; |
124 | i-cache-sets = <192>; | 130 | i-cache-sets = <192>; |
125 | next-level-cache = <&cluster3_l2>; | 131 | next-level-cache = <&cluster3_l2>; |
132 | cpu-idle-states = <&cpu_pw20>; | ||
126 | }; | 133 | }; |
127 | 134 | ||
128 | cpu@301 { | 135 | cpu@301 { |
@@ -138,6 +145,7 @@ | |||
138 | i-cache-line-size = <64>; | 145 | i-cache-line-size = <64>; |
139 | i-cache-sets = <192>; | 146 | i-cache-sets = <192>; |
140 | next-level-cache = <&cluster3_l2>; | 147 | next-level-cache = <&cluster3_l2>; |
148 | cpu-idle-states = <&cpu_pw20>; | ||
141 | }; | 149 | }; |
142 | 150 | ||
143 | cpu@400 { | 151 | cpu@400 { |
@@ -153,6 +161,7 @@ | |||
153 | i-cache-line-size = <64>; | 161 | i-cache-line-size = <64>; |
154 | i-cache-sets = <192>; | 162 | i-cache-sets = <192>; |
155 | next-level-cache = <&cluster4_l2>; | 163 | next-level-cache = <&cluster4_l2>; |
164 | cpu-idle-states = <&cpu_pw20>; | ||
156 | }; | 165 | }; |
157 | 166 | ||
158 | cpu@401 { | 167 | cpu@401 { |
@@ -168,6 +177,7 @@ | |||
168 | i-cache-line-size = <64>; | 177 | i-cache-line-size = <64>; |
169 | i-cache-sets = <192>; | 178 | i-cache-sets = <192>; |
170 | next-level-cache = <&cluster4_l2>; | 179 | next-level-cache = <&cluster4_l2>; |
180 | cpu-idle-states = <&cpu_pw20>; | ||
171 | }; | 181 | }; |
172 | 182 | ||
173 | cpu@500 { | 183 | cpu@500 { |
@@ -183,6 +193,7 @@ | |||
183 | i-cache-line-size = <64>; | 193 | i-cache-line-size = <64>; |
184 | i-cache-sets = <192>; | 194 | i-cache-sets = <192>; |
185 | next-level-cache = <&cluster5_l2>; | 195 | next-level-cache = <&cluster5_l2>; |
196 | cpu-idle-states = <&cpu_pw20>; | ||
186 | }; | 197 | }; |
187 | 198 | ||
188 | cpu@501 { | 199 | cpu@501 { |
@@ -198,6 +209,7 @@ | |||
198 | i-cache-line-size = <64>; | 209 | i-cache-line-size = <64>; |
199 | i-cache-sets = <192>; | 210 | i-cache-sets = <192>; |
200 | next-level-cache = <&cluster5_l2>; | 211 | next-level-cache = <&cluster5_l2>; |
212 | cpu-idle-states = <&cpu_pw20>; | ||
201 | }; | 213 | }; |
202 | 214 | ||
203 | cpu@600 { | 215 | cpu@600 { |
@@ -213,6 +225,7 @@ | |||
213 | i-cache-line-size = <64>; | 225 | i-cache-line-size = <64>; |
214 | i-cache-sets = <192>; | 226 | i-cache-sets = <192>; |
215 | next-level-cache = <&cluster6_l2>; | 227 | next-level-cache = <&cluster6_l2>; |
228 | cpu-idle-states = <&cpu_pw20>; | ||
216 | }; | 229 | }; |
217 | 230 | ||
218 | cpu@601 { | 231 | cpu@601 { |
@@ -228,6 +241,7 @@ | |||
228 | i-cache-line-size = <64>; | 241 | i-cache-line-size = <64>; |
229 | i-cache-sets = <192>; | 242 | i-cache-sets = <192>; |
230 | next-level-cache = <&cluster6_l2>; | 243 | next-level-cache = <&cluster6_l2>; |
244 | cpu-idle-states = <&cpu_pw20>; | ||
231 | }; | 245 | }; |
232 | 246 | ||
233 | cpu@700 { | 247 | cpu@700 { |
@@ -243,6 +257,7 @@ | |||
243 | i-cache-line-size = <64>; | 257 | i-cache-line-size = <64>; |
244 | i-cache-sets = <192>; | 258 | i-cache-sets = <192>; |
245 | next-level-cache = <&cluster7_l2>; | 259 | next-level-cache = <&cluster7_l2>; |
260 | cpu-idle-states = <&cpu_pw20>; | ||
246 | }; | 261 | }; |
247 | 262 | ||
248 | cpu@701 { | 263 | cpu@701 { |
@@ -258,6 +273,7 @@ | |||
258 | i-cache-line-size = <64>; | 273 | i-cache-line-size = <64>; |
259 | i-cache-sets = <192>; | 274 | i-cache-sets = <192>; |
260 | next-level-cache = <&cluster7_l2>; | 275 | next-level-cache = <&cluster7_l2>; |
276 | cpu-idle-states = <&cpu_pw20>; | ||
261 | }; | 277 | }; |
262 | 278 | ||
263 | cluster0_l2: l2-cache0 { | 279 | cluster0_l2: l2-cache0 { |
@@ -323,6 +339,15 @@ | |||
323 | cache-sets = <1024>; | 339 | cache-sets = <1024>; |
324 | cache-level = <2>; | 340 | cache-level = <2>; |
325 | }; | 341 | }; |
342 | |||
343 | cpu_pw20: cpu-pw20 { | ||
344 | compatible = "arm,idle-state"; | ||
345 | idle-state-name = "PW20"; | ||
346 | arm,psci-suspend-param = <0x0>; | ||
347 | entry-latency-us = <2000>; | ||
348 | exit-latency-us = <2000>; | ||
349 | min-residency-us = <6000>; | ||
350 | }; | ||
326 | }; | 351 | }; |
327 | 352 | ||
328 | gic: interrupt-controller@6000000 { | 353 | gic: interrupt-controller@6000000 { |
@@ -687,6 +712,50 @@ | |||
687 | status = "disabled"; | 712 | status = "disabled"; |
688 | }; | 713 | }; |
689 | 714 | ||
715 | sata0: sata@3200000 { | ||
716 | compatible = "fsl,lx2160a-ahci"; | ||
717 | reg = <0x0 0x3200000 0x0 0x10000>, | ||
718 | <0x7 0x100520 0x0 0x4>; | ||
719 | reg-names = "ahci", "sata-ecc"; | ||
720 | interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; | ||
721 | clocks = <&clockgen 4 3>; | ||
722 | dma-coherent; | ||
723 | status = "disabled"; | ||
724 | }; | ||
725 | |||
726 | sata1: sata@3210000 { | ||
727 | compatible = "fsl,lx2160a-ahci"; | ||
728 | reg = <0x0 0x3210000 0x0 0x10000>, | ||
729 | <0x7 0x100520 0x0 0x4>; | ||
730 | reg-names = "ahci", "sata-ecc"; | ||
731 | interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; | ||
732 | clocks = <&clockgen 4 3>; | ||
733 | dma-coherent; | ||
734 | status = "disabled"; | ||
735 | }; | ||
736 | |||
737 | sata2: sata@3220000 { | ||
738 | compatible = "fsl,lx2160a-ahci"; | ||
739 | reg = <0x0 0x3220000 0x0 0x10000>, | ||
740 | <0x7 0x100520 0x0 0x4>; | ||
741 | reg-names = "ahci", "sata-ecc"; | ||
742 | interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | ||
743 | clocks = <&clockgen 4 3>; | ||
744 | dma-coherent; | ||
745 | status = "disabled"; | ||
746 | }; | ||
747 | |||
748 | sata3: sata@3230000 { | ||
749 | compatible = "fsl,lx2160a-ahci"; | ||
750 | reg = <0x0 0x3230000 0x0 0x10000>, | ||
751 | <0x7 0x100520 0x0 0x4>; | ||
752 | reg-names = "ahci", "sata-ecc"; | ||
753 | interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | ||
754 | clocks = <&clockgen 4 3>; | ||
755 | dma-coherent; | ||
756 | status = "disabled"; | ||
757 | }; | ||
758 | |||
690 | smmu: iommu@5000000 { | 759 | smmu: iommu@5000000 { |
691 | compatible = "arm,mmu-500"; | 760 | compatible = "arm,mmu-500"; |
692 | reg = <0 0x5000000 0 0x800000>; | 761 | reg = <0 0x5000000 0 0x800000>; |
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts new file mode 100644 index 000000000000..2d5d89475b76 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts | |||
@@ -0,0 +1,235 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Copyright 2019 NXP | ||
4 | */ | ||
5 | |||
6 | /dts-v1/; | ||
7 | |||
8 | #include "imx8mm.dtsi" | ||
9 | |||
10 | / { | ||
11 | model = "FSL i.MX8MM EVK board"; | ||
12 | compatible = "fsl,imx8mm-evk", "fsl,imx8mm"; | ||
13 | |||
14 | chosen { | ||
15 | stdout-path = &uart2; | ||
16 | }; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | pinctrl-names = "default"; | ||
21 | pinctrl-0 = <&pinctrl_gpio_led>; | ||
22 | |||
23 | status { | ||
24 | label = "status"; | ||
25 | gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; | ||
26 | default-state = "on"; | ||
27 | }; | ||
28 | }; | ||
29 | |||
30 | reg_usdhc2_vmmc: regulator-usdhc2 { | ||
31 | compatible = "regulator-fixed"; | ||
32 | pinctrl-names = "default"; | ||
33 | pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; | ||
34 | regulator-name = "VSD_3V3"; | ||
35 | regulator-min-microvolt = <3300000>; | ||
36 | regulator-max-microvolt = <3300000>; | ||
37 | gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; | ||
38 | enable-active-high; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | &fec1 { | ||
43 | pinctrl-names = "default"; | ||
44 | pinctrl-0 = <&pinctrl_fec1>; | ||
45 | phy-mode = "rgmii-id"; | ||
46 | phy-handle = <ðphy0>; | ||
47 | fsl,magic-packet; | ||
48 | status = "okay"; | ||
49 | |||
50 | mdio { | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <0>; | ||
53 | |||
54 | ethphy0: ethernet-phy@0 { | ||
55 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
56 | reg = <0>; | ||
57 | at803x,led-act-blind-workaround; | ||
58 | at803x,eee-okay; | ||
59 | at803x,vddio-1p8v; | ||
60 | }; | ||
61 | }; | ||
62 | }; | ||
63 | |||
64 | &uart2 { /* console */ | ||
65 | pinctrl-names = "default"; | ||
66 | pinctrl-0 = <&pinctrl_uart2>; | ||
67 | status = "okay"; | ||
68 | }; | ||
69 | |||
70 | &usdhc2 { | ||
71 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
72 | pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; | ||
73 | pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; | ||
74 | pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; | ||
75 | cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; | ||
76 | bus-width = <4>; | ||
77 | vmmc-supply = <®_usdhc2_vmmc>; | ||
78 | status = "okay"; | ||
79 | }; | ||
80 | |||
81 | &usdhc3 { | ||
82 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
83 | pinctrl-0 = <&pinctrl_usdhc3>; | ||
84 | pinctrl-1 = <&pinctrl_usdhc3_100mhz>; | ||
85 | pinctrl-2 = <&pinctrl_usdhc3_200mhz>; | ||
86 | bus-width = <8>; | ||
87 | non-removable; | ||
88 | status = "okay"; | ||
89 | }; | ||
90 | |||
91 | &wdog1 { | ||
92 | pinctrl-names = "default"; | ||
93 | pinctrl-0 = <&pinctrl_wdog>; | ||
94 | fsl,ext-reset-output; | ||
95 | status = "okay"; | ||
96 | }; | ||
97 | |||
98 | &iomuxc { | ||
99 | pinctrl-names = "default"; | ||
100 | |||
101 | pinctrl_fec1: fec1grp { | ||
102 | fsl,pins = < | ||
103 | MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3 | ||
104 | MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3 | ||
105 | MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f | ||
106 | MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f | ||
107 | MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f | ||
108 | MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f | ||
109 | MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 | ||
110 | MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 | ||
111 | MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 | ||
112 | MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 | ||
113 | MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f | ||
114 | MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 | ||
115 | MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 | ||
116 | MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f | ||
117 | MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x19 | ||
118 | >; | ||
119 | }; | ||
120 | |||
121 | pinctrl_gpio_led: gpioledgrp { | ||
122 | fsl,pins = < | ||
123 | MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 | ||
124 | >; | ||
125 | }; | ||
126 | |||
127 | pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc { | ||
128 | fsl,pins = < | ||
129 | MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 | ||
130 | >; | ||
131 | }; | ||
132 | |||
133 | pinctrl_uart2: uart2grp { | ||
134 | fsl,pins = < | ||
135 | MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 | ||
136 | MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 | ||
137 | >; | ||
138 | }; | ||
139 | |||
140 | pinctrl_usdhc2_gpio: usdhc2grpgpio { | ||
141 | fsl,pins = < | ||
142 | MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4 | ||
143 | >; | ||
144 | }; | ||
145 | |||
146 | pinctrl_usdhc2: usdhc2grp { | ||
147 | fsl,pins = < | ||
148 | MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 | ||
149 | MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 | ||
150 | MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 | ||
151 | MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 | ||
152 | MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 | ||
153 | MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 | ||
154 | MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | ||
155 | >; | ||
156 | }; | ||
157 | |||
158 | pinctrl_usdhc2_100mhz: usdhc2grp100mhz { | ||
159 | fsl,pins = < | ||
160 | MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 | ||
161 | MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 | ||
162 | MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 | ||
163 | MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 | ||
164 | MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 | ||
165 | MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 | ||
166 | MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | ||
167 | >; | ||
168 | }; | ||
169 | |||
170 | pinctrl_usdhc2_200mhz: usdhc2grp200mhz { | ||
171 | fsl,pins = < | ||
172 | MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 | ||
173 | MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 | ||
174 | MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 | ||
175 | MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 | ||
176 | MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 | ||
177 | MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 | ||
178 | MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | ||
179 | >; | ||
180 | }; | ||
181 | |||
182 | pinctrl_usdhc3: usdhc3grp { | ||
183 | fsl,pins = < | ||
184 | MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190 | ||
185 | MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0 | ||
186 | MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0 | ||
187 | MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0 | ||
188 | MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0 | ||
189 | MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0 | ||
190 | MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0 | ||
191 | MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0 | ||
192 | MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0 | ||
193 | MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0 | ||
194 | MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190 | ||
195 | >; | ||
196 | }; | ||
197 | |||
198 | pinctrl_usdhc3_100mhz: usdhc3grp100mhz { | ||
199 | fsl,pins = < | ||
200 | MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194 | ||
201 | MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4 | ||
202 | MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4 | ||
203 | MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4 | ||
204 | MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4 | ||
205 | MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4 | ||
206 | MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4 | ||
207 | MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4 | ||
208 | MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4 | ||
209 | MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4 | ||
210 | MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194 | ||
211 | >; | ||
212 | }; | ||
213 | |||
214 | pinctrl_usdhc3_200mhz: usdhc3grp200mhz { | ||
215 | fsl,pins = < | ||
216 | MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196 | ||
217 | MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6 | ||
218 | MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6 | ||
219 | MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6 | ||
220 | MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6 | ||
221 | MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6 | ||
222 | MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6 | ||
223 | MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6 | ||
224 | MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6 | ||
225 | MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6 | ||
226 | MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196 | ||
227 | >; | ||
228 | }; | ||
229 | |||
230 | pinctrl_wdog: wdoggrp { | ||
231 | fsl,pins = < | ||
232 | MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 | ||
233 | >; | ||
234 | }; | ||
235 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi new file mode 100644 index 000000000000..6b407a94c06e --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi | |||
@@ -0,0 +1,733 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Copyright 2019 NXP | ||
4 | */ | ||
5 | |||
6 | #include <dt-bindings/clock/imx8mm-clock.h> | ||
7 | #include <dt-bindings/gpio/gpio.h> | ||
8 | #include <dt-bindings/input/input.h> | ||
9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
10 | #include <dt-bindings/thermal/thermal.h> | ||
11 | |||
12 | #include "imx8mm-pinfunc.h" | ||
13 | |||
14 | / { | ||
15 | compatible = "fsl,imx8mm"; | ||
16 | interrupt-parent = <&gic>; | ||
17 | #address-cells = <2>; | ||
18 | #size-cells = <2>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &fec1; | ||
22 | i2c0 = &i2c1; | ||
23 | i2c1 = &i2c2; | ||
24 | i2c2 = &i2c3; | ||
25 | i2c3 = &i2c4; | ||
26 | serial0 = &uart1; | ||
27 | serial1 = &uart2; | ||
28 | serial2 = &uart3; | ||
29 | serial3 = &uart4; | ||
30 | spi0 = &ecspi1; | ||
31 | spi1 = &ecspi2; | ||
32 | spi2 = &ecspi3; | ||
33 | mmc0 = &usdhc1; | ||
34 | mmc1 = &usdhc2; | ||
35 | mmc2 = &usdhc3; | ||
36 | gpio0 = &gpio1; | ||
37 | gpio1 = &gpio2; | ||
38 | gpio2 = &gpio3; | ||
39 | gpio3 = &gpio4; | ||
40 | gpio4 = &gpio5; | ||
41 | }; | ||
42 | |||
43 | cpus { | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <0>; | ||
46 | |||
47 | A53_0: cpu@0 { | ||
48 | device_type = "cpu"; | ||
49 | compatible = "arm,cortex-a53"; | ||
50 | reg = <0x0>; | ||
51 | clock-latency = <61036>; /* two CLK32 periods */ | ||
52 | clocks = <&clk IMX8MM_CLK_ARM>; | ||
53 | enable-method = "psci"; | ||
54 | next-level-cache = <&A53_L2>; | ||
55 | operating-points-v2 = <&a53_opp_table>; | ||
56 | }; | ||
57 | |||
58 | A53_1: cpu@1 { | ||
59 | device_type = "cpu"; | ||
60 | compatible = "arm,cortex-a53"; | ||
61 | reg = <0x1>; | ||
62 | clock-latency = <61036>; /* two CLK32 periods */ | ||
63 | clocks = <&clk IMX8MM_CLK_ARM>; | ||
64 | enable-method = "psci"; | ||
65 | next-level-cache = <&A53_L2>; | ||
66 | operating-points-v2 = <&a53_opp_table>; | ||
67 | }; | ||
68 | |||
69 | A53_2: cpu@2 { | ||
70 | device_type = "cpu"; | ||
71 | compatible = "arm,cortex-a53"; | ||
72 | reg = <0x2>; | ||
73 | clock-latency = <61036>; /* two CLK32 periods */ | ||
74 | clocks = <&clk IMX8MM_CLK_ARM>; | ||
75 | enable-method = "psci"; | ||
76 | next-level-cache = <&A53_L2>; | ||
77 | operating-points-v2 = <&a53_opp_table>; | ||
78 | }; | ||
79 | |||
80 | A53_3: cpu@3 { | ||
81 | device_type = "cpu"; | ||
82 | compatible = "arm,cortex-a53"; | ||
83 | reg = <0x3>; | ||
84 | clock-latency = <61036>; /* two CLK32 periods */ | ||
85 | clocks = <&clk IMX8MM_CLK_ARM>; | ||
86 | enable-method = "psci"; | ||
87 | next-level-cache = <&A53_L2>; | ||
88 | operating-points-v2 = <&a53_opp_table>; | ||
89 | }; | ||
90 | |||
91 | A53_L2: l2-cache0 { | ||
92 | compatible = "cache"; | ||
93 | }; | ||
94 | }; | ||
95 | |||
96 | a53_opp_table: opp-table { | ||
97 | compatible = "operating-points-v2"; | ||
98 | opp-shared; | ||
99 | |||
100 | opp-1200000000 { | ||
101 | opp-hz = /bits/ 64 <1200000000>; | ||
102 | opp-microvolt = <850000>; | ||
103 | clock-latency-ns = <150000>; | ||
104 | }; | ||
105 | |||
106 | opp-1600000000 { | ||
107 | opp-hz = /bits/ 64 <1600000000>; | ||
108 | opp-microvolt = <900000>; | ||
109 | clock-latency-ns = <150000>; | ||
110 | opp-suspend; | ||
111 | }; | ||
112 | }; | ||
113 | |||
114 | memory@40000000 { | ||
115 | device_type = "memory"; | ||
116 | reg = <0x0 0x40000000 0 0x80000000>; | ||
117 | }; | ||
118 | |||
119 | osc_32k: clock-osc-32k { | ||
120 | compatible = "fixed-clock"; | ||
121 | #clock-cells = <0>; | ||
122 | clock-frequency = <32768>; | ||
123 | clock-output-names = "osc_32k"; | ||
124 | }; | ||
125 | |||
126 | osc_24m: clock-osc-24m { | ||
127 | compatible = "fixed-clock"; | ||
128 | #clock-cells = <0>; | ||
129 | clock-frequency = <24000000>; | ||
130 | clock-output-names = "osc_24m"; | ||
131 | }; | ||
132 | |||
133 | clk_ext1: clock-ext1 { | ||
134 | compatible = "fixed-clock"; | ||
135 | #clock-cells = <0>; | ||
136 | clock-frequency = <133000000>; | ||
137 | clock-output-names = "clk_ext1"; | ||
138 | }; | ||
139 | |||
140 | clk_ext2: clock-ext2 { | ||
141 | compatible = "fixed-clock"; | ||
142 | #clock-cells = <0>; | ||
143 | clock-frequency = <133000000>; | ||
144 | clock-output-names = "clk_ext2"; | ||
145 | }; | ||
146 | |||
147 | clk_ext3: clock-ext3 { | ||
148 | compatible = "fixed-clock"; | ||
149 | #clock-cells = <0>; | ||
150 | clock-frequency = <133000000>; | ||
151 | clock-output-names = "clk_ext3"; | ||
152 | }; | ||
153 | |||
154 | clk_ext4: clock-ext4 { | ||
155 | compatible = "fixed-clock"; | ||
156 | #clock-cells = <0>; | ||
157 | clock-frequency= <133000000>; | ||
158 | clock-output-names = "clk_ext4"; | ||
159 | }; | ||
160 | |||
161 | gic: interrupt-controller@38800000 { | ||
162 | compatible = "arm,gic-v3"; | ||
163 | reg = <0x0 0x38800000 0 0x10000>, /* GIC Dist */ | ||
164 | <0x0 0x38880000 0 0xC0000>; /* GICR (RD_base + SGI_base) */ | ||
165 | #interrupt-cells = <3>; | ||
166 | interrupt-controller; | ||
167 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||
168 | }; | ||
169 | |||
170 | psci { | ||
171 | compatible = "arm,psci-1.0"; | ||
172 | method = "smc"; | ||
173 | }; | ||
174 | |||
175 | pmu { | ||
176 | compatible = "arm,armv8-pmuv3"; | ||
177 | interrupts = <GIC_PPI 7 | ||
178 | (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; | ||
179 | interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>; | ||
180 | }; | ||
181 | |||
182 | timer { | ||
183 | compatible = "arm,armv8-timer"; | ||
184 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */ | ||
185 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */ | ||
186 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */ | ||
187 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */ | ||
188 | clock-frequency = <8000000>; | ||
189 | arm,no-tick-in-suspend; | ||
190 | }; | ||
191 | |||
192 | soc { | ||
193 | compatible = "simple-bus"; | ||
194 | #address-cells = <1>; | ||
195 | #size-cells = <1>; | ||
196 | ranges = <0x0 0x0 0x0 0x3e000000>; | ||
197 | |||
198 | aips1: bus@30000000 { | ||
199 | compatible = "fsl,aips-bus", "simple-bus"; | ||
200 | #address-cells = <1>; | ||
201 | #size-cells = <1>; | ||
202 | ranges; | ||
203 | |||
204 | gpio1: gpio@30200000 { | ||
205 | compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio"; | ||
206 | reg = <0x30200000 0x10000>; | ||
207 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, | ||
208 | <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
209 | gpio-controller; | ||
210 | #gpio-cells = <2>; | ||
211 | interrupt-controller; | ||
212 | #interrupt-cells = <2>; | ||
213 | }; | ||
214 | |||
215 | gpio2: gpio@30210000 { | ||
216 | compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio"; | ||
217 | reg = <0x30210000 0x10000>; | ||
218 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, | ||
219 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | ||
220 | gpio-controller; | ||
221 | #gpio-cells = <2>; | ||
222 | interrupt-controller; | ||
223 | #interrupt-cells = <2>; | ||
224 | }; | ||
225 | |||
226 | gpio3: gpio@30220000 { | ||
227 | compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio"; | ||
228 | reg = <0x30220000 0x10000>; | ||
229 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | ||
230 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
231 | gpio-controller; | ||
232 | #gpio-cells = <2>; | ||
233 | interrupt-controller; | ||
234 | #interrupt-cells = <2>; | ||
235 | }; | ||
236 | |||
237 | gpio4: gpio@30230000 { | ||
238 | compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio"; | ||
239 | reg = <0x30230000 0x10000>; | ||
240 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, | ||
241 | <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | ||
242 | gpio-controller; | ||
243 | #gpio-cells = <2>; | ||
244 | interrupt-controller; | ||
245 | #interrupt-cells = <2>; | ||
246 | }; | ||
247 | |||
248 | gpio5: gpio@30240000 { | ||
249 | compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio"; | ||
250 | reg = <0x30240000 0x10000>; | ||
251 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
252 | <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
253 | gpio-controller; | ||
254 | #gpio-cells = <2>; | ||
255 | interrupt-controller; | ||
256 | #interrupt-cells = <2>; | ||
257 | }; | ||
258 | |||
259 | wdog1: watchdog@30280000 { | ||
260 | compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt"; | ||
261 | reg = <0x30280000 0x10000>; | ||
262 | interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; | ||
263 | clocks = <&clk IMX8MM_CLK_WDOG1_ROOT>; | ||
264 | status = "disabled"; | ||
265 | }; | ||
266 | |||
267 | wdog2: watchdog@30290000 { | ||
268 | compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt"; | ||
269 | reg = <0x30290000 0x10000>; | ||
270 | interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; | ||
271 | clocks = <&clk IMX8MM_CLK_WDOG2_ROOT>; | ||
272 | status = "disabled"; | ||
273 | }; | ||
274 | |||
275 | wdog3: watchdog@302a0000 { | ||
276 | compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt"; | ||
277 | reg = <0x302a0000 0x10000>; | ||
278 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
279 | clocks = <&clk IMX8MM_CLK_WDOG3_ROOT>; | ||
280 | status = "disabled"; | ||
281 | }; | ||
282 | |||
283 | sdma2: dma-controller@302c0000 { | ||
284 | compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma"; | ||
285 | reg = <0x302c0000 0x10000>; | ||
286 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
287 | clocks = <&clk IMX8MM_CLK_SDMA2_ROOT>, | ||
288 | <&clk IMX8MM_CLK_SDMA2_ROOT>; | ||
289 | clock-names = "ipg", "ahb"; | ||
290 | #dma-cells = <3>; | ||
291 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | ||
292 | }; | ||
293 | |||
294 | sdma3: dma-controller@302b0000 { | ||
295 | compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma"; | ||
296 | reg = <0x302b0000 0x10000>; | ||
297 | interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
298 | clocks = <&clk IMX8MM_CLK_SDMA3_ROOT>, | ||
299 | <&clk IMX8MM_CLK_SDMA3_ROOT>; | ||
300 | clock-names = "ipg", "ahb"; | ||
301 | #dma-cells = <3>; | ||
302 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | ||
303 | }; | ||
304 | |||
305 | iomuxc: pinctrl@30330000 { | ||
306 | compatible = "fsl,imx8mm-iomuxc"; | ||
307 | reg = <0x30330000 0x10000>; | ||
308 | }; | ||
309 | |||
310 | gpr: iomuxc-gpr@30340000 { | ||
311 | compatible = "fsl,imx8mm-iomuxc-gpr", "syscon"; | ||
312 | reg = <0x30340000 0x10000>; | ||
313 | }; | ||
314 | |||
315 | ocotp: ocotp-ctrl@30350000 { | ||
316 | compatible = "fsl,imx8mm-ocotp", "fsl,imx7d-ocotp", "syscon"; | ||
317 | reg = <0x30350000 0x10000>; | ||
318 | clocks = <&clk IMX8MM_CLK_OCOTP_ROOT>; | ||
319 | /* For nvmem subnodes */ | ||
320 | #address-cells = <1>; | ||
321 | #size-cells = <1>; | ||
322 | }; | ||
323 | |||
324 | anatop: anatop@30360000 { | ||
325 | compatible = "fsl,imx8mm-anatop", "syscon", "simple-bus"; | ||
326 | reg = <0x30360000 0x10000>; | ||
327 | }; | ||
328 | |||
329 | snvs: snvs@30370000 { | ||
330 | compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd"; | ||
331 | reg = <0x30370000 0x10000>; | ||
332 | |||
333 | snvs_rtc: snvs-rtc-lp { | ||
334 | compatible = "fsl,sec-v4.0-mon-rtc-lp"; | ||
335 | regmap = <&snvs>; | ||
336 | offset = <0x34>; | ||
337 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, | ||
338 | <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
339 | }; | ||
340 | |||
341 | snvs_pwrkey: snvs-powerkey { | ||
342 | compatible = "fsl,sec-v4.0-pwrkey"; | ||
343 | regmap = <&snvs>; | ||
344 | interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; | ||
345 | linux,keycode = <KEY_POWER>; | ||
346 | wakeup-source; | ||
347 | }; | ||
348 | }; | ||
349 | |||
350 | clk: clock-controller@30380000 { | ||
351 | compatible = "fsl,imx8mm-ccm"; | ||
352 | reg = <0x30380000 0x10000>; | ||
353 | #clock-cells = <1>; | ||
354 | clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>, | ||
355 | <&clk_ext3>, <&clk_ext4>; | ||
356 | clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2", | ||
357 | "clk_ext3", "clk_ext4"; | ||
358 | }; | ||
359 | |||
360 | src: reset-controller@30390000 { | ||
361 | compatible = "fsl,imx8mm-src", "syscon"; | ||
362 | reg = <0x30390000 0x10000>; | ||
363 | interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; | ||
364 | #reset-cells = <1>; | ||
365 | }; | ||
366 | }; | ||
367 | |||
368 | aips2: bus@30400000 { | ||
369 | compatible = "fsl,aips-bus", "simple-bus"; | ||
370 | #address-cells = <1>; | ||
371 | #size-cells = <1>; | ||
372 | ranges; | ||
373 | |||
374 | pwm1: pwm@30660000 { | ||
375 | compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm"; | ||
376 | reg = <0x30660000 0x10000>; | ||
377 | interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; | ||
378 | clocks = <&clk IMX8MM_CLK_PWM1_ROOT>, | ||
379 | <&clk IMX8MM_CLK_PWM1_ROOT>; | ||
380 | clock-names = "ipg", "per"; | ||
381 | #pwm-cells = <2>; | ||
382 | status = "disabled"; | ||
383 | }; | ||
384 | |||
385 | pwm2: pwm@30670000 { | ||
386 | compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm"; | ||
387 | reg = <0x30670000 0x10000>; | ||
388 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
389 | clocks = <&clk IMX8MM_CLK_PWM2_ROOT>, | ||
390 | <&clk IMX8MM_CLK_PWM2_ROOT>; | ||
391 | clock-names = "ipg", "per"; | ||
392 | #pwm-cells = <2>; | ||
393 | status = "disabled"; | ||
394 | }; | ||
395 | |||
396 | pwm3: pwm@30680000 { | ||
397 | compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm"; | ||
398 | reg = <0x30680000 0x10000>; | ||
399 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
400 | clocks = <&clk IMX8MM_CLK_PWM3_ROOT>, | ||
401 | <&clk IMX8MM_CLK_PWM3_ROOT>; | ||
402 | clock-names = "ipg", "per"; | ||
403 | #pwm-cells = <2>; | ||
404 | status = "disabled"; | ||
405 | }; | ||
406 | |||
407 | pwm4: pwm@30690000 { | ||
408 | compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm"; | ||
409 | reg = <0x30690000 0x10000>; | ||
410 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | ||
411 | clocks = <&clk IMX8MM_CLK_PWM4_ROOT>, | ||
412 | <&clk IMX8MM_CLK_PWM4_ROOT>; | ||
413 | clock-names = "ipg", "per"; | ||
414 | #pwm-cells = <2>; | ||
415 | status = "disabled"; | ||
416 | }; | ||
417 | }; | ||
418 | |||
419 | aips3: bus@30800000 { | ||
420 | compatible = "fsl,aips-bus", "simple-bus"; | ||
421 | #address-cells = <1>; | ||
422 | #size-cells = <1>; | ||
423 | ranges; | ||
424 | |||
425 | ecspi1: spi@30820000 { | ||
426 | compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi"; | ||
427 | #address-cells = <1>; | ||
428 | #size-cells = <0>; | ||
429 | reg = <0x30820000 0x10000>; | ||
430 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | ||
431 | clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>, | ||
432 | <&clk IMX8MM_CLK_ECSPI1_ROOT>; | ||
433 | clock-names = "ipg", "per"; | ||
434 | dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>; | ||
435 | dma-names = "rx", "tx"; | ||
436 | status = "disabled"; | ||
437 | }; | ||
438 | |||
439 | ecspi2: spi@30830000 { | ||
440 | compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi"; | ||
441 | #address-cells = <1>; | ||
442 | #size-cells = <0>; | ||
443 | reg = <0x30830000 0x10000>; | ||
444 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | ||
445 | clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>, | ||
446 | <&clk IMX8MM_CLK_ECSPI2_ROOT>; | ||
447 | clock-names = "ipg", "per"; | ||
448 | dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>; | ||
449 | dma-names = "rx", "tx"; | ||
450 | status = "disabled"; | ||
451 | }; | ||
452 | |||
453 | ecspi3: spi@30840000 { | ||
454 | compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi"; | ||
455 | #address-cells = <1>; | ||
456 | #size-cells = <0>; | ||
457 | reg = <0x30840000 0x10000>; | ||
458 | interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | ||
459 | clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>, | ||
460 | <&clk IMX8MM_CLK_ECSPI3_ROOT>; | ||
461 | clock-names = "ipg", "per"; | ||
462 | dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>; | ||
463 | dma-names = "rx", "tx"; | ||
464 | status = "disabled"; | ||
465 | }; | ||
466 | |||
467 | uart1: serial@30860000 { | ||
468 | compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart"; | ||
469 | reg = <0x30860000 0x10000>; | ||
470 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
471 | clocks = <&clk IMX8MM_CLK_UART1_ROOT>, | ||
472 | <&clk IMX8MM_CLK_UART1_ROOT>; | ||
473 | clock-names = "ipg", "per"; | ||
474 | dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>; | ||
475 | dma-names = "rx", "tx"; | ||
476 | status = "disabled"; | ||
477 | }; | ||
478 | |||
479 | uart3: serial@30880000 { | ||
480 | compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart"; | ||
481 | reg = <0x30880000 0x10000>; | ||
482 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | ||
483 | clocks = <&clk IMX8MM_CLK_UART3_ROOT>, | ||
484 | <&clk IMX8MM_CLK_UART3_ROOT>; | ||
485 | clock-names = "ipg", "per"; | ||
486 | dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>; | ||
487 | dma-names = "rx", "tx"; | ||
488 | status = "disabled"; | ||
489 | }; | ||
490 | |||
491 | uart2: serial@30890000 { | ||
492 | compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart"; | ||
493 | reg = <0x30890000 0x10000>; | ||
494 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | ||
495 | clocks = <&clk IMX8MM_CLK_UART2_ROOT>, | ||
496 | <&clk IMX8MM_CLK_UART2_ROOT>; | ||
497 | clock-names = "ipg", "per"; | ||
498 | status = "disabled"; | ||
499 | }; | ||
500 | |||
501 | i2c1: i2c@30a20000 { | ||
502 | compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c"; | ||
503 | #address-cells = <1>; | ||
504 | #size-cells = <0>; | ||
505 | reg = <0x30a20000 0x10000>; | ||
506 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | ||
507 | clocks = <&clk IMX8MM_CLK_I2C1_ROOT>; | ||
508 | status = "disabled"; | ||
509 | }; | ||
510 | |||
511 | i2c2: i2c@30a30000 { | ||
512 | compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c"; | ||
513 | #address-cells = <1>; | ||
514 | #size-cells = <0>; | ||
515 | reg = <0x30a30000 0x10000>; | ||
516 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | ||
517 | clocks = <&clk IMX8MM_CLK_I2C2_ROOT>; | ||
518 | status = "disabled"; | ||
519 | }; | ||
520 | |||
521 | i2c3: i2c@30a40000 { | ||
522 | #address-cells = <1>; | ||
523 | #size-cells = <0>; | ||
524 | compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c"; | ||
525 | reg = <0x30a40000 0x10000>; | ||
526 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
527 | clocks = <&clk IMX8MM_CLK_I2C3_ROOT>; | ||
528 | status = "disabled"; | ||
529 | }; | ||
530 | |||
531 | i2c4: i2c@30a50000 { | ||
532 | compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c"; | ||
533 | #address-cells = <1>; | ||
534 | #size-cells = <0>; | ||
535 | reg = <0x30a50000 0x10000>; | ||
536 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; | ||
537 | clocks = <&clk IMX8MM_CLK_I2C4_ROOT>; | ||
538 | status = "disabled"; | ||
539 | }; | ||
540 | |||
541 | uart4: serial@30a60000 { | ||
542 | compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart"; | ||
543 | reg = <0x30a60000 0x10000>; | ||
544 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; | ||
545 | clocks = <&clk IMX8MM_CLK_UART4_ROOT>, | ||
546 | <&clk IMX8MM_CLK_UART4_ROOT>; | ||
547 | clock-names = "ipg", "per"; | ||
548 | dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>; | ||
549 | dma-names = "rx", "tx"; | ||
550 | status = "disabled"; | ||
551 | }; | ||
552 | |||
553 | usdhc1: mmc@30b40000 { | ||
554 | compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; | ||
555 | reg = <0x30b40000 0x10000>; | ||
556 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | ||
557 | clocks = <&clk IMX8MM_CLK_DUMMY>, | ||
558 | <&clk IMX8MM_CLK_NAND_USDHC_BUS>, | ||
559 | <&clk IMX8MM_CLK_USDHC1_ROOT>; | ||
560 | clock-names = "ipg", "ahb", "per"; | ||
561 | assigned-clocks = <&clk IMX8MM_CLK_USDHC1>; | ||
562 | assigned-clock-rates = <400000000>; | ||
563 | fsl,tuning-start-tap = <20>; | ||
564 | fsl,tuning-step= <2>; | ||
565 | bus-width = <4>; | ||
566 | status = "disabled"; | ||
567 | }; | ||
568 | |||
569 | usdhc2: mmc@30b50000 { | ||
570 | compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; | ||
571 | reg = <0x30b50000 0x10000>; | ||
572 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | ||
573 | clocks = <&clk IMX8MM_CLK_DUMMY>, | ||
574 | <&clk IMX8MM_CLK_NAND_USDHC_BUS>, | ||
575 | <&clk IMX8MM_CLK_USDHC2_ROOT>; | ||
576 | clock-names = "ipg", "ahb", "per"; | ||
577 | fsl,tuning-start-tap = <20>; | ||
578 | fsl,tuning-step= <2>; | ||
579 | bus-width = <4>; | ||
580 | status = "disabled"; | ||
581 | }; | ||
582 | |||
583 | usdhc3: mmc@30b60000 { | ||
584 | compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; | ||
585 | reg = <0x30b60000 0x10000>; | ||
586 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
587 | clocks = <&clk IMX8MM_CLK_DUMMY>, | ||
588 | <&clk IMX8MM_CLK_NAND_USDHC_BUS>, | ||
589 | <&clk IMX8MM_CLK_USDHC3_ROOT>; | ||
590 | clock-names = "ipg", "ahb", "per"; | ||
591 | assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>; | ||
592 | assigned-clock-rates = <400000000>; | ||
593 | fsl,tuning-start-tap = <20>; | ||
594 | fsl,tuning-step= <2>; | ||
595 | bus-width = <4>; | ||
596 | status = "disabled"; | ||
597 | }; | ||
598 | |||
599 | sdma1: dma-controller@30bd0000 { | ||
600 | compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma"; | ||
601 | reg = <0x30bd0000 0x10000>; | ||
602 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | ||
603 | clocks = <&clk IMX8MM_CLK_SDMA1_ROOT>, | ||
604 | <&clk IMX8MM_CLK_SDMA1_ROOT>; | ||
605 | clock-names = "ipg", "ahb"; | ||
606 | #dma-cells = <3>; | ||
607 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | ||
608 | }; | ||
609 | |||
610 | fec1: ethernet@30be0000 { | ||
611 | compatible = "fsl,imx8mm-fec", "fsl,imx6sx-fec"; | ||
612 | reg = <0x30be0000 0x10000>; | ||
613 | interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, | ||
614 | <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, | ||
615 | <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | ||
616 | clocks = <&clk IMX8MM_CLK_ENET1_ROOT>, | ||
617 | <&clk IMX8MM_CLK_ENET1_ROOT>, | ||
618 | <&clk IMX8MM_CLK_ENET_TIMER>, | ||
619 | <&clk IMX8MM_CLK_ENET_REF>, | ||
620 | <&clk IMX8MM_CLK_ENET_PHY_REF>; | ||
621 | clock-names = "ipg", "ahb", "ptp", | ||
622 | "enet_clk_ref", "enet_out"; | ||
623 | assigned-clocks = <&clk IMX8MM_CLK_ENET_AXI>, | ||
624 | <&clk IMX8MM_CLK_ENET_TIMER>, | ||
625 | <&clk IMX8MM_CLK_ENET_REF>, | ||
626 | <&clk IMX8MM_CLK_ENET_TIMER>; | ||
627 | assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>, | ||
628 | <&clk IMX8MM_SYS_PLL2_100M>, | ||
629 | <&clk IMX8MM_SYS_PLL2_125M>; | ||
630 | assigned-clock-rates = <0>, <0>, <125000000>, <100000000>; | ||
631 | fsl,num-tx-queues = <3>; | ||
632 | fsl,num-rx-queues = <3>; | ||
633 | status = "disabled"; | ||
634 | }; | ||
635 | |||
636 | }; | ||
637 | |||
638 | aips4: bus@32c00000 { | ||
639 | compatible = "fsl,aips-bus", "simple-bus"; | ||
640 | #address-cells = <1>; | ||
641 | #size-cells = <1>; | ||
642 | ranges; | ||
643 | |||
644 | usbotg1: usb@32e40000 { | ||
645 | compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb"; | ||
646 | reg = <0x32e40000 0x200>; | ||
647 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; | ||
648 | clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>; | ||
649 | clock-names = "usb1_ctrl_root_clk"; | ||
650 | assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>, | ||
651 | <&clk IMX8MM_CLK_USB_CORE_REF>; | ||
652 | assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>, | ||
653 | <&clk IMX8MM_SYS_PLL1_100M>; | ||
654 | fsl,usbphy = <&usbphynop1>; | ||
655 | fsl,usbmisc = <&usbmisc1 0>; | ||
656 | status = "disabled"; | ||
657 | }; | ||
658 | |||
659 | usbphynop1: usbphynop1 { | ||
660 | compatible = "usb-nop-xceiv"; | ||
661 | clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; | ||
662 | assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; | ||
663 | assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>; | ||
664 | clock-names = "main_clk"; | ||
665 | }; | ||
666 | |||
667 | usbmisc1: usbmisc@32e40200 { | ||
668 | compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc"; | ||
669 | #index-cells = <1>; | ||
670 | reg = <0x32e40200 0x200>; | ||
671 | }; | ||
672 | |||
673 | usbotg2: usb@32e50000 { | ||
674 | compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb"; | ||
675 | reg = <0x32e50000 0x200>; | ||
676 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | ||
677 | clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>; | ||
678 | clock-names = "usb1_ctrl_root_clk"; | ||
679 | assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>, | ||
680 | <&clk IMX8MM_CLK_USB_CORE_REF>; | ||
681 | assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>, | ||
682 | <&clk IMX8MM_SYS_PLL1_100M>; | ||
683 | fsl,usbphy = <&usbphynop2>; | ||
684 | fsl,usbmisc = <&usbmisc2 0>; | ||
685 | status = "disabled"; | ||
686 | }; | ||
687 | |||
688 | usbphynop2: usbphynop2 { | ||
689 | compatible = "usb-nop-xceiv"; | ||
690 | clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; | ||
691 | assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; | ||
692 | assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>; | ||
693 | clock-names = "main_clk"; | ||
694 | }; | ||
695 | |||
696 | usbmisc2: usbmisc@32e50200 { | ||
697 | compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc"; | ||
698 | #index-cells = <1>; | ||
699 | reg = <0x32e50200 0x200>; | ||
700 | }; | ||
701 | |||
702 | }; | ||
703 | |||
704 | dma_apbh: dma-controller@33000000 { | ||
705 | compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh"; | ||
706 | reg = <0x33000000 0x2000>; | ||
707 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
708 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
709 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
710 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
711 | interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3"; | ||
712 | #dma-cells = <1>; | ||
713 | dma-channels = <4>; | ||
714 | clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>; | ||
715 | }; | ||
716 | |||
717 | gpmi: nand-controller@33002000{ | ||
718 | compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand"; | ||
719 | #address-cells = <1>; | ||
720 | #size-cells = <1>; | ||
721 | reg = <0x33002000 0x2000>, <0x33004000 0x4000>; | ||
722 | reg-names = "gpmi-nand", "bch"; | ||
723 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
724 | interrupt-names = "bch"; | ||
725 | clocks = <&clk IMX8MM_CLK_NAND_ROOT>, | ||
726 | <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>; | ||
727 | clock-names = "gpmi_io", "gpmi_bch_apb"; | ||
728 | dmas = <&dma_apbh 0>; | ||
729 | dma-names = "rx-tx"; | ||
730 | status = "disabled"; | ||
731 | }; | ||
732 | }; | ||
733 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts index 54737bf1772f..b2038be8bbd7 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts | |||
@@ -21,6 +21,12 @@ | |||
21 | reg = <0x00000000 0x40000000 0 0xc0000000>; | 21 | reg = <0x00000000 0x40000000 0 0xc0000000>; |
22 | }; | 22 | }; |
23 | 23 | ||
24 | pcie0_refclk: pcie0-refclk { | ||
25 | compatible = "fixed-clock"; | ||
26 | #clock-cells = <0>; | ||
27 | clock-frequency = <100000000>; | ||
28 | }; | ||
29 | |||
24 | reg_usdhc2_vmmc: regulator-vsd-3v3 { | 30 | reg_usdhc2_vmmc: regulator-vsd-3v3 { |
25 | pinctrl-names = "default"; | 31 | pinctrl-names = "default"; |
26 | pinctrl-0 = <&pinctrl_reg_usdhc2>; | 32 | pinctrl-0 = <&pinctrl_reg_usdhc2>; |
@@ -31,6 +37,63 @@ | |||
31 | gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; | 37 | gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; |
32 | enable-active-high; | 38 | enable-active-high; |
33 | }; | 39 | }; |
40 | |||
41 | buck2_reg: regulator-buck2 { | ||
42 | pinctrl-names = "default"; | ||
43 | pinctrl-0 = <&pinctrl_buck2>; | ||
44 | compatible = "regulator-gpio"; | ||
45 | regulator-name = "vdd_arm"; | ||
46 | regulator-min-microvolt = <900000>; | ||
47 | regulator-max-microvolt = <1000000>; | ||
48 | gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; | ||
49 | states = <1000000 0x0 | ||
50 | 900000 0x1>; | ||
51 | }; | ||
52 | |||
53 | wm8524: audio-codec { | ||
54 | #sound-dai-cells = <0>; | ||
55 | compatible = "wlf,wm8524"; | ||
56 | wlf,mute-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; | ||
57 | }; | ||
58 | |||
59 | sound-wm8524 { | ||
60 | compatible = "simple-audio-card"; | ||
61 | simple-audio-card,name = "wm8524-audio"; | ||
62 | simple-audio-card,format = "i2s"; | ||
63 | simple-audio-card,frame-master = <&cpudai>; | ||
64 | simple-audio-card,bitclock-master = <&cpudai>; | ||
65 | simple-audio-card,widgets = | ||
66 | "Line", "Left Line Out Jack", | ||
67 | "Line", "Right Line Out Jack"; | ||
68 | simple-audio-card,routing = | ||
69 | "Left Line Out Jack", "LINEVOUTL", | ||
70 | "Right Line Out Jack", "LINEVOUTR"; | ||
71 | |||
72 | cpudai: simple-audio-card,cpu { | ||
73 | sound-dai = <&sai2>; | ||
74 | }; | ||
75 | |||
76 | link_codec: simple-audio-card,codec { | ||
77 | sound-dai = <&wm8524>; | ||
78 | clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>; | ||
79 | }; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | &A53_0 { | ||
84 | cpu-supply = <&buck2_reg>; | ||
85 | }; | ||
86 | |||
87 | &A53_1 { | ||
88 | cpu-supply = <&buck2_reg>; | ||
89 | }; | ||
90 | |||
91 | &A53_2 { | ||
92 | cpu-supply = <&buck2_reg>; | ||
93 | }; | ||
94 | |||
95 | &A53_3 { | ||
96 | cpu-supply = <&buck2_reg>; | ||
34 | }; | 97 | }; |
35 | 98 | ||
36 | &fec1 { | 99 | &fec1 { |
@@ -52,6 +115,26 @@ | |||
52 | }; | 115 | }; |
53 | }; | 116 | }; |
54 | 117 | ||
118 | &sai2 { | ||
119 | pinctrl-names = "default"; | ||
120 | pinctrl-0 = <&pinctrl_sai2>; | ||
121 | assigned-clocks = <&clk IMX8MQ_CLK_SAI2>; | ||
122 | assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; | ||
123 | assigned-clock-rates = <24576000>; | ||
124 | status = "okay"; | ||
125 | }; | ||
126 | |||
127 | &gpio5 { | ||
128 | pinctrl-names = "default"; | ||
129 | pinctrl-0 = <&pinctrl_wifi_reset>; | ||
130 | |||
131 | wl-reg-on { | ||
132 | gpio-hog; | ||
133 | gpios = <29 GPIO_ACTIVE_HIGH>; | ||
134 | output-high; | ||
135 | }; | ||
136 | }; | ||
137 | |||
55 | &i2c1 { | 138 | &i2c1 { |
56 | clock-frequency = <100000>; | 139 | clock-frequency = <100000>; |
57 | pinctrl-names = "default"; | 140 | pinctrl-names = "default"; |
@@ -143,6 +226,22 @@ | |||
143 | }; | 226 | }; |
144 | }; | 227 | }; |
145 | 228 | ||
229 | &pcie0 { | ||
230 | pinctrl-names = "default"; | ||
231 | pinctrl-0 = <&pinctrl_pcie0>; | ||
232 | reset-gpio = <&gpio5 28 GPIO_ACTIVE_LOW>; | ||
233 | clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>, | ||
234 | <&clk IMX8MQ_CLK_PCIE1_AUX>, | ||
235 | <&clk IMX8MQ_CLK_PCIE1_PHY>, | ||
236 | <&pcie0_refclk>; | ||
237 | clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus"; | ||
238 | status = "okay"; | ||
239 | }; | ||
240 | |||
241 | &pgc_gpu { | ||
242 | power-supply = <&sw1a_reg>; | ||
243 | }; | ||
244 | |||
146 | &uart1 { | 245 | &uart1 { |
147 | pinctrl-names = "default"; | 246 | pinctrl-names = "default"; |
148 | pinctrl-0 = <&pinctrl_uart1>; | 247 | pinctrl-0 = <&pinctrl_uart1>; |
@@ -203,6 +302,13 @@ | |||
203 | }; | 302 | }; |
204 | 303 | ||
205 | &iomuxc { | 304 | &iomuxc { |
305 | pinctrl_buck2: vddarmgrp { | ||
306 | fsl,pins = < | ||
307 | MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x19 | ||
308 | >; | ||
309 | |||
310 | }; | ||
311 | |||
206 | pinctrl_fec1: fec1grp { | 312 | pinctrl_fec1: fec1grp { |
207 | fsl,pins = < | 313 | fsl,pins = < |
208 | MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 | 314 | MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 |
@@ -230,6 +336,13 @@ | |||
230 | >; | 336 | >; |
231 | }; | 337 | }; |
232 | 338 | ||
339 | pinctrl_pcie0: pcie0grp { | ||
340 | fsl,pins = < | ||
341 | MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x76 | ||
342 | MX8MQ_IOMUXC_UART4_RXD_GPIO5_IO28 0x16 | ||
343 | >; | ||
344 | }; | ||
345 | |||
233 | pinctrl_qspi: qspigrp { | 346 | pinctrl_qspi: qspigrp { |
234 | fsl,pins = < | 347 | fsl,pins = < |
235 | MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x82 | 348 | MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x82 |
@@ -248,6 +361,16 @@ | |||
248 | >; | 361 | >; |
249 | }; | 362 | }; |
250 | 363 | ||
364 | pinctrl_sai2: sai2grp { | ||
365 | fsl,pins = < | ||
366 | MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6 | ||
367 | MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6 | ||
368 | MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6 | ||
369 | MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6 | ||
370 | MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8 0xd6 | ||
371 | >; | ||
372 | }; | ||
373 | |||
251 | pinctrl_uart1: uart1grp { | 374 | pinctrl_uart1: uart1grp { |
252 | fsl,pins = < | 375 | fsl,pins = < |
253 | MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 | 376 | MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 |
@@ -347,4 +470,10 @@ | |||
347 | MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 | 470 | MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 |
348 | >; | 471 | >; |
349 | }; | 472 | }; |
473 | |||
474 | pinctrl_wifi_reset: wifiresetgrp { | ||
475 | fsl,pins = < | ||
476 | MX8MQ_IOMUXC_UART4_TXD_GPIO5_IO29 0x16 | ||
477 | >; | ||
478 | }; | ||
350 | }; | 479 | }; |
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts new file mode 100644 index 000000000000..d2a6da479980 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts | |||
@@ -0,0 +1,95 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2019 Zodiac Inflight Innovations | ||
4 | */ | ||
5 | |||
6 | /dts-v1/; | ||
7 | |||
8 | #include "imx8mq-zii-ultra.dtsi" | ||
9 | |||
10 | / { | ||
11 | model = "ZII i.MX8MQ Ultra RMB3 Board"; | ||
12 | compatible = "zii,imx8mq-ultra-rmb3", "zii,imx8mq-ultra", "fsl,imx8mq"; | ||
13 | }; | ||
14 | |||
15 | &ecspi1 { | ||
16 | pinctrl-names = "default"; | ||
17 | pinctrl-0 = <&pinctrl_ecspi1>; | ||
18 | cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; | ||
19 | status = "okay"; | ||
20 | #address-cells = <1>; | ||
21 | #size-cells = <0>; | ||
22 | |||
23 | nor_flash: flash@0 { | ||
24 | compatible = "st,n25q128a13", "jedec,spi-nor"; | ||
25 | spi-max-frequency = <20000000>; | ||
26 | reg = <0>; | ||
27 | }; | ||
28 | }; | ||
29 | |||
30 | &i2c2 { | ||
31 | temp-sense@48 { | ||
32 | compatible = "national,lm75"; | ||
33 | reg = <0x48>; | ||
34 | }; | ||
35 | }; | ||
36 | |||
37 | &i2c4 { | ||
38 | touchscreen@20 { | ||
39 | compatible = "syna,rmi4-i2c"; | ||
40 | pinctrl-names = "default"; | ||
41 | pinctrl-0 = <&pinctrl_ts>; | ||
42 | reg = <0x20>; | ||
43 | interrupt-parent = <&gpio1>; | ||
44 | interrupts = <12 IRQ_TYPE_LEVEL_LOW>; | ||
45 | |||
46 | #address-cells = <1>; | ||
47 | #size-cells = <0>; | ||
48 | |||
49 | rmi4-f01@1 { | ||
50 | reg = <0x1>; | ||
51 | syna,nosleep-mode = <2>; | ||
52 | }; | ||
53 | |||
54 | rmi4-f11@11 { | ||
55 | reg = <0x11>; | ||
56 | touchscreen-inverted-x; | ||
57 | touchscreen-swapped-x-y; | ||
58 | syna,sensor-type = <1>; | ||
59 | }; | ||
60 | |||
61 | rmi4-f12@12 { | ||
62 | reg = <0x12>; | ||
63 | touchscreen-inverted-x; | ||
64 | touchscreen-swapped-x-y; | ||
65 | syna,sensor-type = <1>; | ||
66 | }; | ||
67 | }; | ||
68 | |||
69 | touchscreen@2a { | ||
70 | compatible = "eeti,exc3000"; | ||
71 | pinctrl-names = "default"; | ||
72 | pinctrl-0 = <&pinctrl_ts>; | ||
73 | reg = <0x2a>; | ||
74 | interrupt-parent = <&gpio1>; | ||
75 | interrupts = <12 IRQ_TYPE_LEVEL_LOW>; | ||
76 | touchscreen-inverted-x; | ||
77 | touchscreen-swapped-x-y; | ||
78 | status = "disabled"; | ||
79 | }; | ||
80 | }; | ||
81 | |||
82 | &usbhub { | ||
83 | swap-dx-lanes = <0>; | ||
84 | }; | ||
85 | |||
86 | &iomuxc { | ||
87 | pinctrl_ecspi1: ecspi1grp { | ||
88 | fsl,pins = < | ||
89 | MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 | ||
90 | MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82 | ||
91 | MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82 | ||
92 | MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82 | ||
93 | >; | ||
94 | }; | ||
95 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-zest.dts b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-zest.dts new file mode 100644 index 000000000000..1084d9330403 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-zest.dts | |||
@@ -0,0 +1,24 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2019 Zodiac Inflight Innovations | ||
4 | */ | ||
5 | |||
6 | /dts-v1/; | ||
7 | |||
8 | #include "imx8mq-zii-ultra.dtsi" | ||
9 | |||
10 | / { | ||
11 | model = "ZII i.MX8MQ Ultra Zest Board"; | ||
12 | compatible = "zii,imx8mq-ultra-zest", "zii,imx8mq-ultra", "fsl,imx8mq"; | ||
13 | }; | ||
14 | |||
15 | &i2c4 { | ||
16 | touchscreen@4a { | ||
17 | compatible = "atmel,maxtouch"; | ||
18 | pinctrl-names = "default"; | ||
19 | pinctrl-0 = <&pinctrl_ts>; | ||
20 | reg = <0x4a>; | ||
21 | interrupt-parent = <&gpio1>; | ||
22 | interrupts = <12 IRQ_TYPE_LEVEL_LOW>; | ||
23 | }; | ||
24 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi new file mode 100644 index 000000000000..7a1706f969f0 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi | |||
@@ -0,0 +1,725 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2019 Zodiac Inflight Innovations | ||
4 | */ | ||
5 | |||
6 | #include "imx8mq.dtsi" | ||
7 | |||
8 | / { | ||
9 | aliases { | ||
10 | mdio-gpio0 = &mdio0; | ||
11 | rtc0 = &ds1341; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | stdout-path = &uart1; | ||
16 | }; | ||
17 | |||
18 | mdio0: bitbang-mdio { | ||
19 | compatible = "virtual,mdio-gpio"; | ||
20 | pinctrl-names = "default"; | ||
21 | pinctrl-0 = <&pinctrl_mdio_bitbang>, <&pinctrl_fec1_phy_reset>; | ||
22 | gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>, /* MDC */ | ||
23 | <&gpio1 14 GPIO_ACTIVE_HIGH>; /* MDIO */ | ||
24 | #address-cells = <1>; | ||
25 | #size-cells = <0>; | ||
26 | |||
27 | phy0: ethernet-phy@0 { | ||
28 | reg = <0>; | ||
29 | reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | pcie0_refclk: clock-pcie0-refclk { | ||
34 | compatible = "fixed-clock"; | ||
35 | #clock-cells = <0>; | ||
36 | clock-frequency = <100000000>; | ||
37 | }; | ||
38 | |||
39 | pcie1_refclk: clock-pcie1-refclk { | ||
40 | compatible = "fixed-clock"; | ||
41 | #clock-cells = <0>; | ||
42 | clock-frequency = <100000000>; | ||
43 | }; | ||
44 | |||
45 | reg_12p0_main: regulator-12p0-main { | ||
46 | compatible = "regulator-fixed"; | ||
47 | regulator-name = "12V_MAIN"; | ||
48 | regulator-min-microvolt = <5000000>; | ||
49 | regulator-max-microvolt = <5000000>; | ||
50 | regulator-always-on; | ||
51 | }; | ||
52 | |||
53 | reg_5p0_main: regulator-5p0-main { | ||
54 | compatible = "regulator-fixed"; | ||
55 | vin-supply = <®_12p0_main>; | ||
56 | regulator-name = "5V_MAIN"; | ||
57 | regulator-min-microvolt = <5000000>; | ||
58 | regulator-max-microvolt = <5000000>; | ||
59 | regulator-always-on; | ||
60 | }; | ||
61 | |||
62 | reg_3p3_main: regulator-3p3-main { | ||
63 | compatible = "regulator-fixed"; | ||
64 | vin-supply = <®_12p0_main>; | ||
65 | regulator-name = "3V3V_MAIN"; | ||
66 | regulator-min-microvolt = <3300000>; | ||
67 | regulator-max-microvolt = <3300000>; | ||
68 | regulator-always-on; | ||
69 | }; | ||
70 | |||
71 | reg_5p0_user_usb: regulator-5p0-user-usb { | ||
72 | compatible = "regulator-fixed"; | ||
73 | pinctrl-names = "default"; | ||
74 | pinctrl-0 = <&pinctrl_reg_user_usb>; | ||
75 | vin-supply = <®_5p0_main>; | ||
76 | regulator-name = "5V_USER_USB"; | ||
77 | regulator-min-microvolt = <5000000>; | ||
78 | regulator-max-microvolt = <5000000>; | ||
79 | gpio = <&gpio3 12 GPIO_ACTIVE_LOW>; | ||
80 | startup-delay-us = <1000>; | ||
81 | }; | ||
82 | |||
83 | reg_usdhc2_vmmc: regulator-vsd-3v3 { | ||
84 | pinctrl-names = "default"; | ||
85 | pinctrl-0 = <&pinctrl_reg_usdhc2>; | ||
86 | compatible = "regulator-fixed"; | ||
87 | vin-supply = <®_3p3_main>; | ||
88 | regulator-name = "3V3_SD"; | ||
89 | regulator-min-microvolt = <3300000>; | ||
90 | regulator-max-microvolt = <3300000>; | ||
91 | gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; | ||
92 | enable-active-high; | ||
93 | }; | ||
94 | |||
95 | reg_arm: regulator-arm { | ||
96 | pinctrl-names = "default"; | ||
97 | pinctrl-0 = <&pinctrl_reg_arm>; | ||
98 | compatible = "regulator-gpio"; | ||
99 | vin-supply = <®_12p0_main>; | ||
100 | regulator-name = "0V9_ARM"; | ||
101 | regulator-min-microvolt = <900000>; | ||
102 | regulator-max-microvolt = <1000000>; | ||
103 | gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; | ||
104 | states = <1000000 0x0 | ||
105 | 900000 0x1>; | ||
106 | regulator-always-on; | ||
107 | }; | ||
108 | }; | ||
109 | |||
110 | &A53_0 { | ||
111 | cpu-supply = <®_arm>; | ||
112 | }; | ||
113 | |||
114 | &A53_1 { | ||
115 | cpu-supply = <®_arm>; | ||
116 | }; | ||
117 | |||
118 | &A53_2 { | ||
119 | cpu-supply = <®_arm>; | ||
120 | }; | ||
121 | |||
122 | &A53_3 { | ||
123 | cpu-supply = <®_arm>; | ||
124 | }; | ||
125 | |||
126 | &fec1 { | ||
127 | pinctrl-names = "default"; | ||
128 | pinctrl-0 = <&pinctrl_fec1>; | ||
129 | |||
130 | phy-handle = <&phy0>; | ||
131 | phy-mode = "rmii"; | ||
132 | status = "okay"; | ||
133 | |||
134 | mdio { | ||
135 | #address-cells = <1>; | ||
136 | #size-cells = <0>; | ||
137 | status = "okay"; | ||
138 | |||
139 | switch: switch@0 { | ||
140 | compatible = "marvell,mv88e6085"; | ||
141 | pinctrl-0 = <&pinctrl_switch_irq>; | ||
142 | pinctrl-names = "default"; | ||
143 | reg = <0>; | ||
144 | dsa,member = <0 0>; | ||
145 | eeprom-length = <512>; | ||
146 | interrupt-parent = <&gpio1>; | ||
147 | interrupts = <15 IRQ_TYPE_LEVEL_LOW>; | ||
148 | interrupt-controller; | ||
149 | #interrupt-cells = <2>; | ||
150 | |||
151 | ports { | ||
152 | #address-cells = <1>; | ||
153 | #size-cells = <0>; | ||
154 | |||
155 | port@0 { | ||
156 | reg = <0>; | ||
157 | label = "gigabit_proc"; | ||
158 | phy-handle = <&switchphy0>; | ||
159 | }; | ||
160 | |||
161 | port@1 { | ||
162 | reg = <1>; | ||
163 | label = "netaux"; | ||
164 | phy-handle = <&switchphy1>; | ||
165 | }; | ||
166 | |||
167 | port@2 { | ||
168 | reg = <2>; | ||
169 | label = "cpu"; | ||
170 | ethernet = <&fec1>; | ||
171 | |||
172 | fixed-link { | ||
173 | speed = <100>; | ||
174 | full-duplex; | ||
175 | }; | ||
176 | }; | ||
177 | |||
178 | port@3 { | ||
179 | reg = <3>; | ||
180 | label = "netright"; | ||
181 | phy-handle = <&switchphy3>; | ||
182 | }; | ||
183 | |||
184 | port@4 { | ||
185 | reg = <4>; | ||
186 | label = "netleft"; | ||
187 | phy-handle = <&switchphy4>; | ||
188 | }; | ||
189 | }; | ||
190 | |||
191 | mdio { | ||
192 | #address-cells = <1>; | ||
193 | #size-cells = <0>; | ||
194 | |||
195 | switchphy0: switchphy@0 { | ||
196 | reg = <0>; | ||
197 | interrupt-parent = <&switch>; | ||
198 | interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; | ||
199 | }; | ||
200 | |||
201 | switchphy1: switchphy@1 { | ||
202 | reg = <1>; | ||
203 | interrupt-parent = <&switch>; | ||
204 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; | ||
205 | }; | ||
206 | |||
207 | switchphy2: switchphy@2 { | ||
208 | reg = <2>; | ||
209 | interrupt-parent = <&switch>; | ||
210 | interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; | ||
211 | }; | ||
212 | |||
213 | switchphy3: switchphy@3 { | ||
214 | reg = <3>; | ||
215 | interrupt-parent = <&switch>; | ||
216 | interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; | ||
217 | }; | ||
218 | |||
219 | switchphy4: switchphy@4 { | ||
220 | reg = <4>; | ||
221 | interrupt-parent = <&switch>; | ||
222 | interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; | ||
223 | }; | ||
224 | }; | ||
225 | }; | ||
226 | }; | ||
227 | }; | ||
228 | |||
229 | &gpio3 { | ||
230 | pinctrl-names = "default"; | ||
231 | pinctrl-0 = <&pinctrl_gpio3_hog>; | ||
232 | |||
233 | usb-emulation { | ||
234 | gpio-hog; | ||
235 | gpios = <10 GPIO_ACTIVE_HIGH>; | ||
236 | output-low; | ||
237 | line-name = "usb-emulation"; | ||
238 | }; | ||
239 | |||
240 | usb-mode1 { | ||
241 | gpio-hog; | ||
242 | gpios = <11 GPIO_ACTIVE_HIGH>; | ||
243 | output-high; | ||
244 | line-name = "usb-mode1"; | ||
245 | }; | ||
246 | |||
247 | usb-mode2 { | ||
248 | gpio-hog; | ||
249 | gpios = <13 GPIO_ACTIVE_HIGH>; | ||
250 | output-high; | ||
251 | line-name = "usb-mode2"; | ||
252 | }; | ||
253 | }; | ||
254 | |||
255 | &i2c1 { | ||
256 | clock-frequency = <400000>; | ||
257 | pinctrl-names = "default"; | ||
258 | pinctrl-0 = <&pinctrl_i2c1>; | ||
259 | status = "okay"; | ||
260 | }; | ||
261 | |||
262 | &i2c2 { | ||
263 | clock-frequency = <400000>; | ||
264 | pinctrl-names = "default"; | ||
265 | pinctrl-0 = <&pinctrl_i2c2>; | ||
266 | status = "okay"; | ||
267 | |||
268 | pmic@8 { | ||
269 | compatible = "fsl,pfuze100"; | ||
270 | reg = <0x8>; | ||
271 | |||
272 | regulators { | ||
273 | sw1a_reg: sw1ab { | ||
274 | regulator-min-microvolt = <825000>; | ||
275 | regulator-max-microvolt = <1100000>; | ||
276 | }; | ||
277 | |||
278 | sw1c_reg: sw1c { | ||
279 | regulator-min-microvolt = <825000>; | ||
280 | regulator-max-microvolt = <1100000>; | ||
281 | }; | ||
282 | |||
283 | sw2_reg: sw2 { | ||
284 | regulator-min-microvolt = <1100000>; | ||
285 | regulator-max-microvolt = <1100000>; | ||
286 | regulator-always-on; | ||
287 | }; | ||
288 | |||
289 | sw3a_reg: sw3ab { | ||
290 | regulator-min-microvolt = <825000>; | ||
291 | regulator-max-microvolt = <1100000>; | ||
292 | regulator-always-on; | ||
293 | }; | ||
294 | |||
295 | sw4_reg: sw4 { | ||
296 | regulator-min-microvolt = <1800000>; | ||
297 | regulator-max-microvolt = <1800000>; | ||
298 | regulator-always-on; | ||
299 | }; | ||
300 | |||
301 | swbst_reg: swbst { | ||
302 | regulator-min-microvolt = <5000000>; | ||
303 | regulator-max-microvolt = <5150000>; | ||
304 | }; | ||
305 | |||
306 | snvs_reg: vsnvs { | ||
307 | regulator-min-microvolt = <1000000>; | ||
308 | regulator-max-microvolt = <3000000>; | ||
309 | regulator-always-on; | ||
310 | }; | ||
311 | |||
312 | vref_reg: vrefddr { | ||
313 | regulator-always-on; | ||
314 | }; | ||
315 | |||
316 | vgen1_reg: vgen1 { | ||
317 | regulator-min-microvolt = <800000>; | ||
318 | regulator-max-microvolt = <1550000>; | ||
319 | }; | ||
320 | |||
321 | vgen2_reg: vgen2 { | ||
322 | regulator-min-microvolt = <850000>; | ||
323 | regulator-max-microvolt = <975000>; | ||
324 | regulator-always-on; | ||
325 | }; | ||
326 | |||
327 | vgen3_reg: vgen3 { | ||
328 | regulator-min-microvolt = <1675000>; | ||
329 | regulator-max-microvolt = <1975000>; | ||
330 | regulator-always-on; | ||
331 | }; | ||
332 | |||
333 | vgen4_reg: vgen4 { | ||
334 | regulator-min-microvolt = <1625000>; | ||
335 | regulator-max-microvolt = <1875000>; | ||
336 | regulator-always-on; | ||
337 | }; | ||
338 | |||
339 | vgen5_reg: vgen5 { | ||
340 | regulator-min-microvolt = <3075000>; | ||
341 | regulator-max-microvolt = <3625000>; | ||
342 | regulator-always-on; | ||
343 | }; | ||
344 | |||
345 | vgen6_reg: vgen6 { | ||
346 | regulator-min-microvolt = <1800000>; | ||
347 | regulator-max-microvolt = <3300000>; | ||
348 | }; | ||
349 | }; | ||
350 | }; | ||
351 | |||
352 | eeprom@54 { | ||
353 | compatible = "atmel,24c128"; | ||
354 | reg = <0x54>; | ||
355 | }; | ||
356 | |||
357 | ds1341: rtc@68 { | ||
358 | compatible = "dallas,ds1341"; | ||
359 | reg = <0x68>; | ||
360 | }; | ||
361 | }; | ||
362 | |||
363 | &i2c3 { | ||
364 | clock-frequency = <100000>; | ||
365 | pinctrl-names = "default"; | ||
366 | pinctrl-0 = <&pinctrl_i2c3>; | ||
367 | status = "okay"; | ||
368 | |||
369 | usbhub: usbhub@2c { | ||
370 | compatible ="microchip,usb2513b"; | ||
371 | pinctrl-names = "default"; | ||
372 | pinctrl-0 = <&pinctrl_usbhub>; | ||
373 | reg = <0x2c>; | ||
374 | reset-gpios = <&gpio3 25 GPIO_ACTIVE_LOW>; | ||
375 | }; | ||
376 | }; | ||
377 | |||
378 | &i2c4 { | ||
379 | clock-frequency = <400000>; | ||
380 | pinctrl-names = "default"; | ||
381 | pinctrl-0 = <&pinctrl_i2c4>; | ||
382 | status = "okay"; | ||
383 | }; | ||
384 | |||
385 | &uart1 { | ||
386 | pinctrl-names = "default"; | ||
387 | pinctrl-0 = <&pinctrl_uart1>; | ||
388 | status = "okay"; | ||
389 | }; | ||
390 | |||
391 | &uart2 { | ||
392 | pinctrl-names = "default"; | ||
393 | pinctrl-0 = <&pinctrl_uart2>; | ||
394 | status = "okay"; | ||
395 | |||
396 | rave-sp { | ||
397 | compatible = "zii,rave-sp-rdu2"; | ||
398 | current-speed = <1000000>; | ||
399 | #address-cells = <1>; | ||
400 | #size-cells = <1>; | ||
401 | |||
402 | watchdog { | ||
403 | compatible = "zii,rave-sp-watchdog"; | ||
404 | }; | ||
405 | |||
406 | backlight { | ||
407 | compatible = "zii,rave-sp-backlight"; | ||
408 | }; | ||
409 | |||
410 | pwrbutton { | ||
411 | compatible = "zii,rave-sp-pwrbutton"; | ||
412 | }; | ||
413 | |||
414 | eeprom@a3 { | ||
415 | compatible = "zii,rave-sp-eeprom"; | ||
416 | reg = <0xa3 0x4000>; | ||
417 | zii,eeprom-name = "dds-eeprom"; | ||
418 | }; | ||
419 | |||
420 | eeprom@a4 { | ||
421 | compatible = "zii,rave-sp-eeprom"; | ||
422 | reg = <0xa4 0x4000>; | ||
423 | #address-cells = <1>; | ||
424 | #size-cells = <1>; | ||
425 | zii,eeprom-name = "main-eeprom"; | ||
426 | }; | ||
427 | }; | ||
428 | }; | ||
429 | |||
430 | &usb3_phy0 { | ||
431 | vbus-supply = <®_5p0_user_usb>; | ||
432 | status = "okay"; | ||
433 | }; | ||
434 | |||
435 | &usb_dwc3_0 { | ||
436 | dr_mode = "host"; | ||
437 | status = "okay"; | ||
438 | }; | ||
439 | |||
440 | &usb3_phy1 { | ||
441 | vbus-supply = <®_5p0_main>; | ||
442 | status = "okay"; | ||
443 | }; | ||
444 | |||
445 | &usb_dwc3_1 { | ||
446 | dr_mode = "host"; | ||
447 | status = "okay"; | ||
448 | }; | ||
449 | |||
450 | &pcie0 { | ||
451 | pinctrl-names = "default"; | ||
452 | pinctrl-0 = <&pinctrl_pcie0>; | ||
453 | reset-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>; | ||
454 | clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>, | ||
455 | <&clk IMX8MQ_CLK_PCIE1_AUX>, | ||
456 | <&clk IMX8MQ_CLK_PCIE1_PHY>, | ||
457 | <&pcie0_refclk>; | ||
458 | clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus"; | ||
459 | status = "okay"; | ||
460 | }; | ||
461 | |||
462 | &pcie1 { | ||
463 | pinctrl-names = "default"; | ||
464 | pinctrl-0 = <&pinctrl_pcie1>; | ||
465 | reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; | ||
466 | clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>, | ||
467 | <&clk IMX8MQ_CLK_PCIE2_AUX>, | ||
468 | <&clk IMX8MQ_CLK_PCIE2_PHY>, | ||
469 | <&pcie1_refclk>; | ||
470 | clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus"; | ||
471 | status = "okay"; | ||
472 | }; | ||
473 | |||
474 | &pgc_gpu { | ||
475 | power-supply = <&sw1a_reg>; | ||
476 | }; | ||
477 | |||
478 | &pgc_vpu { | ||
479 | power-supply = <&sw1c_reg>; | ||
480 | }; | ||
481 | |||
482 | &usdhc1 { | ||
483 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
484 | pinctrl-0 = <&pinctrl_usdhc1>; | ||
485 | pinctrl-1 = <&pinctrl_usdhc1_100mhz>; | ||
486 | pinctrl-2 = <&pinctrl_usdhc1_200mhz>; | ||
487 | vqmmc-supply = <&sw4_reg>; | ||
488 | bus-width = <8>; | ||
489 | non-removable; | ||
490 | no-sd; | ||
491 | no-sdio; | ||
492 | status = "okay"; | ||
493 | }; | ||
494 | |||
495 | &usdhc2 { | ||
496 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
497 | pinctrl-0 = <&pinctrl_usdhc2>; | ||
498 | pinctrl-1 = <&pinctrl_usdhc2_100mhz>; | ||
499 | pinctrl-2 = <&pinctrl_usdhc2_200mhz>; | ||
500 | cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; | ||
501 | vmmc-supply = <®_usdhc2_vmmc>; | ||
502 | status = "okay"; | ||
503 | }; | ||
504 | |||
505 | &snvs_rtc { | ||
506 | status = "disabled"; | ||
507 | }; | ||
508 | |||
509 | &iomuxc { | ||
510 | pinctrl_fec1: fec1grp { | ||
511 | fsl,pins = < | ||
512 | MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 | ||
513 | MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO 0x23 | ||
514 | MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f | ||
515 | MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f | ||
516 | MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 | ||
517 | MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 | ||
518 | MX8MQ_IOMUXC_ENET_TD2_ENET1_TX_CLK 0x1f | ||
519 | MX8MQ_IOMUXC_ENET_RXC_ENET1_RX_ER 0x91 | ||
520 | MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 | ||
521 | MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f | ||
522 | >; | ||
523 | }; | ||
524 | |||
525 | pinctrl_fec1_phy_reset: fec1phyresetgrp { | ||
526 | fsl,pins = < | ||
527 | MX8MQ_IOMUXC_ENET_RD3_GPIO1_IO29 0x11 | ||
528 | >; | ||
529 | }; | ||
530 | |||
531 | pinctrl_gpio3_hog: gpio3hoggrp { | ||
532 | fsl,pins = < | ||
533 | MX8MQ_IOMUXC_NAND_DATA04_GPIO3_IO10 0x6 | ||
534 | MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x6 | ||
535 | MX8MQ_IOMUXC_NAND_DATA07_GPIO3_IO13 0x6 | ||
536 | >; | ||
537 | }; | ||
538 | |||
539 | pinctrl_i2c1: i2c1grp { | ||
540 | fsl,pins = < | ||
541 | MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x4000007f | ||
542 | MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x4000007f | ||
543 | >; | ||
544 | }; | ||
545 | |||
546 | pinctrl_i2c2: i2c2grp { | ||
547 | fsl,pins = < | ||
548 | MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x4000007f | ||
549 | MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x4000007f | ||
550 | >; | ||
551 | }; | ||
552 | |||
553 | pinctrl_i2c3: i2c3grp { | ||
554 | fsl,pins = < | ||
555 | MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000007f | ||
556 | MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000007f | ||
557 | >; | ||
558 | }; | ||
559 | |||
560 | pinctrl_i2c4: i2c4grp { | ||
561 | fsl,pins = < | ||
562 | MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x4000007f | ||
563 | MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x4000007f | ||
564 | >; | ||
565 | }; | ||
566 | |||
567 | pinctrl_mdio_bitbang: bitbangmdiogrp { | ||
568 | fsl,pins = < | ||
569 | MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x44 | ||
570 | MX8MQ_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x64 | ||
571 | >; | ||
572 | }; | ||
573 | |||
574 | pinctrl_pcie0: pcie0grp { | ||
575 | fsl,pins = < | ||
576 | MX8MQ_IOMUXC_UART4_RXD_PCIE1_CLKREQ_B 0x66 | ||
577 | MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x6 | ||
578 | >; | ||
579 | }; | ||
580 | |||
581 | pinctrl_pcie1: pcie1grp { | ||
582 | fsl,pins = < | ||
583 | MX8MQ_IOMUXC_UART4_TXD_PCIE2_CLKREQ_B 0x66 | ||
584 | MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x6 | ||
585 | >; | ||
586 | }; | ||
587 | |||
588 | pinctrl_reg_arm: regarmgrp { | ||
589 | fsl,pins = < | ||
590 | MX8MQ_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 | ||
591 | >; | ||
592 | }; | ||
593 | |||
594 | pinctrl_reg_usdhc2: regusdhc2grp { | ||
595 | fsl,pins = < | ||
596 | MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 | ||
597 | >; | ||
598 | }; | ||
599 | |||
600 | pinctrl_reg_user_usb: reguserusbgrp { | ||
601 | fsl,pins = < | ||
602 | MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x6 | ||
603 | >; | ||
604 | }; | ||
605 | |||
606 | pinctrl_switch_irq: switchgrp { | ||
607 | fsl,pins = < | ||
608 | MX8MQ_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x41 | ||
609 | >; | ||
610 | }; | ||
611 | |||
612 | pinctrl_ts: tsgrp { | ||
613 | fsl,pins = < | ||
614 | MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x96 | ||
615 | MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x96 | ||
616 | >; | ||
617 | }; | ||
618 | |||
619 | pinctrl_uart1: uart1grp { | ||
620 | fsl,pins = < | ||
621 | MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 | ||
622 | MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49 | ||
623 | >; | ||
624 | }; | ||
625 | |||
626 | pinctrl_uart2: uart2grp { | ||
627 | fsl,pins = < | ||
628 | MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 | ||
629 | MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 | ||
630 | >; | ||
631 | }; | ||
632 | |||
633 | pinctrl_usbhub: usbhubgrp { | ||
634 | fsl,pins = < | ||
635 | MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x41 | ||
636 | >; | ||
637 | }; | ||
638 | |||
639 | pinctrl_usdhc1: usdhc1grp { | ||
640 | fsl,pins = < | ||
641 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83 | ||
642 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3 | ||
643 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3 | ||
644 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3 | ||
645 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3 | ||
646 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3 | ||
647 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3 | ||
648 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3 | ||
649 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3 | ||
650 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3 | ||
651 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83 | ||
652 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 | ||
653 | >; | ||
654 | }; | ||
655 | |||
656 | pinctrl_usdhc1_100mhz: usdhc1-100grp { | ||
657 | fsl,pins = < | ||
658 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d | ||
659 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd | ||
660 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd | ||
661 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd | ||
662 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd | ||
663 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd | ||
664 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd | ||
665 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd | ||
666 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd | ||
667 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd | ||
668 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d | ||
669 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 | ||
670 | >; | ||
671 | }; | ||
672 | |||
673 | pinctrl_usdhc1_200mhz: usdhc1-200grp { | ||
674 | fsl,pins = < | ||
675 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f | ||
676 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf | ||
677 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf | ||
678 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf | ||
679 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf | ||
680 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf | ||
681 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf | ||
682 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf | ||
683 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf | ||
684 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf | ||
685 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f | ||
686 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 | ||
687 | >; | ||
688 | }; | ||
689 | |||
690 | pinctrl_usdhc2: usdhc2grp { | ||
691 | fsl,pins = < | ||
692 | MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 | ||
693 | MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 | ||
694 | MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 | ||
695 | MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 | ||
696 | MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 | ||
697 | MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 | ||
698 | MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 | ||
699 | >; | ||
700 | }; | ||
701 | |||
702 | pinctrl_usdhc2_100mhz: usdhc2-100grp { | ||
703 | fsl,pins = < | ||
704 | MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x85 | ||
705 | MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc5 | ||
706 | MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc5 | ||
707 | MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc5 | ||
708 | MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc5 | ||
709 | MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc5 | ||
710 | MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 | ||
711 | >; | ||
712 | }; | ||
713 | |||
714 | pinctrl_usdhc2_200mhz: usdhc2-200grp { | ||
715 | fsl,pins = < | ||
716 | MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x87 | ||
717 | MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc7 | ||
718 | MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc7 | ||
719 | MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc7 | ||
720 | MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc7 | ||
721 | MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc7 | ||
722 | MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 | ||
723 | >; | ||
724 | }; | ||
725 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi index 9155bd4784eb..6d635ba0904c 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi | |||
@@ -6,8 +6,10 @@ | |||
6 | 6 | ||
7 | #include <dt-bindings/clock/imx8mq-clock.h> | 7 | #include <dt-bindings/clock/imx8mq-clock.h> |
8 | #include <dt-bindings/power/imx8mq-power.h> | 8 | #include <dt-bindings/power/imx8mq-power.h> |
9 | #include <dt-bindings/reset/imx8mq-reset.h> | ||
9 | #include <dt-bindings/gpio/gpio.h> | 10 | #include <dt-bindings/gpio/gpio.h> |
10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
12 | #include <dt-bindings/thermal/thermal.h> | ||
11 | #include "imx8mq-pinfunc.h" | 13 | #include "imx8mq-pinfunc.h" |
12 | 14 | ||
13 | / { | 15 | / { |
@@ -87,32 +89,48 @@ | |||
87 | device_type = "cpu"; | 89 | device_type = "cpu"; |
88 | compatible = "arm,cortex-a53"; | 90 | compatible = "arm,cortex-a53"; |
89 | reg = <0x0>; | 91 | reg = <0x0>; |
92 | clock-latency = <61036>; /* two CLK32 periods */ | ||
93 | clocks = <&clk IMX8MQ_CLK_ARM>; | ||
90 | enable-method = "psci"; | 94 | enable-method = "psci"; |
91 | next-level-cache = <&A53_L2>; | 95 | next-level-cache = <&A53_L2>; |
96 | operating-points-v2 = <&a53_opp_table>; | ||
97 | #cooling-cells = <2>; | ||
92 | }; | 98 | }; |
93 | 99 | ||
94 | A53_1: cpu@1 { | 100 | A53_1: cpu@1 { |
95 | device_type = "cpu"; | 101 | device_type = "cpu"; |
96 | compatible = "arm,cortex-a53"; | 102 | compatible = "arm,cortex-a53"; |
97 | reg = <0x1>; | 103 | reg = <0x1>; |
104 | clock-latency = <61036>; /* two CLK32 periods */ | ||
105 | clocks = <&clk IMX8MQ_CLK_ARM>; | ||
98 | enable-method = "psci"; | 106 | enable-method = "psci"; |
99 | next-level-cache = <&A53_L2>; | 107 | next-level-cache = <&A53_L2>; |
108 | operating-points-v2 = <&a53_opp_table>; | ||
109 | #cooling-cells = <2>; | ||
100 | }; | 110 | }; |
101 | 111 | ||
102 | A53_2: cpu@2 { | 112 | A53_2: cpu@2 { |
103 | device_type = "cpu"; | 113 | device_type = "cpu"; |
104 | compatible = "arm,cortex-a53"; | 114 | compatible = "arm,cortex-a53"; |
105 | reg = <0x2>; | 115 | reg = <0x2>; |
116 | clock-latency = <61036>; /* two CLK32 periods */ | ||
117 | clocks = <&clk IMX8MQ_CLK_ARM>; | ||
106 | enable-method = "psci"; | 118 | enable-method = "psci"; |
107 | next-level-cache = <&A53_L2>; | 119 | next-level-cache = <&A53_L2>; |
120 | operating-points-v2 = <&a53_opp_table>; | ||
121 | #cooling-cells = <2>; | ||
108 | }; | 122 | }; |
109 | 123 | ||
110 | A53_3: cpu@3 { | 124 | A53_3: cpu@3 { |
111 | device_type = "cpu"; | 125 | device_type = "cpu"; |
112 | compatible = "arm,cortex-a53"; | 126 | compatible = "arm,cortex-a53"; |
113 | reg = <0x3>; | 127 | reg = <0x3>; |
128 | clock-latency = <61036>; /* two CLK32 periods */ | ||
129 | clocks = <&clk IMX8MQ_CLK_ARM>; | ||
114 | enable-method = "psci"; | 130 | enable-method = "psci"; |
115 | next-level-cache = <&A53_L2>; | 131 | next-level-cache = <&A53_L2>; |
132 | operating-points-v2 = <&a53_opp_table>; | ||
133 | #cooling-cells = <2>; | ||
116 | }; | 134 | }; |
117 | 135 | ||
118 | A53_L2: l2-cache0 { | 136 | A53_L2: l2-cache0 { |
@@ -120,6 +138,24 @@ | |||
120 | }; | 138 | }; |
121 | }; | 139 | }; |
122 | 140 | ||
141 | a53_opp_table: opp-table { | ||
142 | compatible = "operating-points-v2"; | ||
143 | opp-shared; | ||
144 | |||
145 | opp-800000000 { | ||
146 | opp-hz = /bits/ 64 <800000000>; | ||
147 | opp-microvolt = <900000>; | ||
148 | clock-latency-ns = <150000>; | ||
149 | }; | ||
150 | |||
151 | opp-1300000000 { | ||
152 | opp-hz = /bits/ 64 <1300000000>; | ||
153 | opp-microvolt = <1000000>; | ||
154 | clock-latency-ns = <150000>; | ||
155 | opp-suspend; | ||
156 | }; | ||
157 | }; | ||
158 | |||
123 | pmu { | 159 | pmu { |
124 | compatible = "arm,cortex-a53-pmu"; | 160 | compatible = "arm,cortex-a53-pmu"; |
125 | interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; | 161 | interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; |
@@ -132,6 +168,67 @@ | |||
132 | method = "smc"; | 168 | method = "smc"; |
133 | }; | 169 | }; |
134 | 170 | ||
171 | thermal-zones { | ||
172 | cpu-thermal { | ||
173 | polling-delay-passive = <250>; | ||
174 | polling-delay = <2000>; | ||
175 | thermal-sensors = <&tmu 0>; | ||
176 | |||
177 | trips { | ||
178 | cpu_alert: cpu-alert { | ||
179 | temperature = <80000>; | ||
180 | hysteresis = <2000>; | ||
181 | type = "passive"; | ||
182 | }; | ||
183 | |||
184 | cpu-crit { | ||
185 | temperature = <90000>; | ||
186 | hysteresis = <2000>; | ||
187 | type = "critical"; | ||
188 | }; | ||
189 | }; | ||
190 | |||
191 | cooling-maps { | ||
192 | map0 { | ||
193 | trip = <&cpu_alert>; | ||
194 | cooling-device = | ||
195 | <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
196 | <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
197 | <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
198 | <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||
199 | }; | ||
200 | }; | ||
201 | }; | ||
202 | |||
203 | gpu-thermal { | ||
204 | polling-delay-passive = <250>; | ||
205 | polling-delay = <2000>; | ||
206 | thermal-sensors = <&tmu 1>; | ||
207 | |||
208 | trips { | ||
209 | gpu-crit { | ||
210 | temperature = <90000>; | ||
211 | hysteresis = <2000>; | ||
212 | type = "critical"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | |||
217 | vpu-thermal { | ||
218 | polling-delay-passive = <250>; | ||
219 | polling-delay = <2000>; | ||
220 | thermal-sensors = <&tmu 2>; | ||
221 | |||
222 | trips { | ||
223 | vpu-crit { | ||
224 | temperature = <90000>; | ||
225 | hysteresis = <2000>; | ||
226 | type = "critical"; | ||
227 | }; | ||
228 | }; | ||
229 | }; | ||
230 | }; | ||
231 | |||
135 | timer { | 232 | timer { |
136 | compatible = "arm,armv8-timer"; | 233 | compatible = "arm,armv8-timer"; |
137 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */ | 234 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */ |
@@ -160,6 +257,7 @@ | |||
160 | reg = <0x30200000 0x10000>; | 257 | reg = <0x30200000 0x10000>; |
161 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, | 258 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, |
162 | <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | 259 | <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; |
260 | clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>; | ||
163 | gpio-controller; | 261 | gpio-controller; |
164 | #gpio-cells = <2>; | 262 | #gpio-cells = <2>; |
165 | interrupt-controller; | 263 | interrupt-controller; |
@@ -171,6 +269,7 @@ | |||
171 | reg = <0x30210000 0x10000>; | 269 | reg = <0x30210000 0x10000>; |
172 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, | 270 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, |
173 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | 271 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; |
272 | clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>; | ||
174 | gpio-controller; | 273 | gpio-controller; |
175 | #gpio-cells = <2>; | 274 | #gpio-cells = <2>; |
176 | interrupt-controller; | 275 | interrupt-controller; |
@@ -182,6 +281,7 @@ | |||
182 | reg = <0x30220000 0x10000>; | 281 | reg = <0x30220000 0x10000>; |
183 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | 282 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, |
184 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | 283 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; |
284 | clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>; | ||
185 | gpio-controller; | 285 | gpio-controller; |
186 | #gpio-cells = <2>; | 286 | #gpio-cells = <2>; |
187 | interrupt-controller; | 287 | interrupt-controller; |
@@ -193,6 +293,7 @@ | |||
193 | reg = <0x30230000 0x10000>; | 293 | reg = <0x30230000 0x10000>; |
194 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, | 294 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, |
195 | <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | 295 | <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; |
296 | clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>; | ||
196 | gpio-controller; | 297 | gpio-controller; |
197 | #gpio-cells = <2>; | 298 | #gpio-cells = <2>; |
198 | interrupt-controller; | 299 | interrupt-controller; |
@@ -204,12 +305,65 @@ | |||
204 | reg = <0x30240000 0x10000>; | 305 | reg = <0x30240000 0x10000>; |
205 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | 306 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, |
206 | <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | 307 | <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; |
308 | clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>; | ||
207 | gpio-controller; | 309 | gpio-controller; |
208 | #gpio-cells = <2>; | 310 | #gpio-cells = <2>; |
209 | interrupt-controller; | 311 | interrupt-controller; |
210 | #interrupt-cells = <2>; | 312 | #interrupt-cells = <2>; |
211 | }; | 313 | }; |
212 | 314 | ||
315 | tmu: tmu@30260000 { | ||
316 | compatible = "fsl,imx8mq-tmu"; | ||
317 | reg = <0x30260000 0x10000>; | ||
318 | interrupt = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | ||
319 | little-endian; | ||
320 | fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>; | ||
321 | fsl,tmu-calibration = <0x00000000 0x00000023 | ||
322 | 0x00000001 0x00000029 | ||
323 | 0x00000002 0x0000002f | ||
324 | 0x00000003 0x00000035 | ||
325 | 0x00000004 0x0000003d | ||
326 | 0x00000005 0x00000043 | ||
327 | 0x00000006 0x0000004b | ||
328 | 0x00000007 0x00000051 | ||
329 | 0x00000008 0x00000057 | ||
330 | 0x00000009 0x0000005f | ||
331 | 0x0000000a 0x00000067 | ||
332 | 0x0000000b 0x0000006f | ||
333 | |||
334 | 0x00010000 0x0000001b | ||
335 | 0x00010001 0x00000023 | ||
336 | 0x00010002 0x0000002b | ||
337 | 0x00010003 0x00000033 | ||
338 | 0x00010004 0x0000003b | ||
339 | 0x00010005 0x00000043 | ||
340 | 0x00010006 0x0000004b | ||
341 | 0x00010007 0x00000055 | ||
342 | 0x00010008 0x0000005d | ||
343 | 0x00010009 0x00000067 | ||
344 | 0x0001000a 0x00000070 | ||
345 | |||
346 | 0x00020000 0x00000017 | ||
347 | 0x00020001 0x00000023 | ||
348 | 0x00020002 0x0000002d | ||
349 | 0x00020003 0x00000037 | ||
350 | 0x00020004 0x00000041 | ||
351 | 0x00020005 0x0000004b | ||
352 | 0x00020006 0x00000057 | ||
353 | 0x00020007 0x00000063 | ||
354 | 0x00020008 0x0000006f | ||
355 | |||
356 | 0x00030000 0x00000015 | ||
357 | 0x00030001 0x00000021 | ||
358 | 0x00030002 0x0000002d | ||
359 | 0x00030003 0x00000039 | ||
360 | 0x00030004 0x00000045 | ||
361 | 0x00030005 0x00000053 | ||
362 | 0x00030006 0x0000005f | ||
363 | 0x00030007 0x00000071>; | ||
364 | #thermal-sensor-cells = <1>; | ||
365 | }; | ||
366 | |||
213 | wdog1: watchdog@30280000 { | 367 | wdog1: watchdog@30280000 { |
214 | compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; | 368 | compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; |
215 | reg = <0x30280000 0x10000>; | 369 | reg = <0x30280000 0x10000>; |
@@ -234,16 +388,35 @@ | |||
234 | status = "disabled"; | 388 | status = "disabled"; |
235 | }; | 389 | }; |
236 | 390 | ||
391 | sdma2: sdma@302c0000 { | ||
392 | compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; | ||
393 | reg = <0x302c0000 0x10000>; | ||
394 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
395 | clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>, | ||
396 | <&clk IMX8MQ_CLK_SDMA2_ROOT>; | ||
397 | clock-names = "ipg", "ahb"; | ||
398 | #dma-cells = <3>; | ||
399 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | ||
400 | }; | ||
401 | |||
237 | iomuxc: iomuxc@30330000 { | 402 | iomuxc: iomuxc@30330000 { |
238 | compatible = "fsl,imx8mq-iomuxc"; | 403 | compatible = "fsl,imx8mq-iomuxc"; |
239 | reg = <0x30330000 0x10000>; | 404 | reg = <0x30330000 0x10000>; |
240 | }; | 405 | }; |
241 | 406 | ||
242 | iomuxc_gpr: syscon@30340000 { | 407 | iomuxc_gpr: syscon@30340000 { |
243 | compatible = "fsl,imx8mq-iomuxc-gpr", "syscon"; | 408 | compatible = "fsl,imx8mq-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon"; |
244 | reg = <0x30340000 0x10000>; | 409 | reg = <0x30340000 0x10000>; |
245 | }; | 410 | }; |
246 | 411 | ||
412 | ocotp: ocotp-ctrl@30350000 { | ||
413 | compatible = "fsl,imx8mq-ocotp", "syscon"; | ||
414 | reg = <0x30350000 0x10000>; | ||
415 | clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>; | ||
416 | #address-cells = <1>; | ||
417 | #size-cells = <1>; | ||
418 | }; | ||
419 | |||
247 | anatop: syscon@30360000 { | 420 | anatop: syscon@30360000 { |
248 | compatible = "fsl,imx8mq-anatop", "syscon"; | 421 | compatible = "fsl,imx8mq-anatop", "syscon"; |
249 | reg = <0x30360000 0x10000>; | 422 | reg = <0x30360000 0x10000>; |
@@ -278,6 +451,12 @@ | |||
278 | "clk_ext3", "clk_ext4"; | 451 | "clk_ext3", "clk_ext4"; |
279 | }; | 452 | }; |
280 | 453 | ||
454 | src: reset-controller@30390000 { | ||
455 | compatible = "fsl,imx8mq-src", "syscon"; | ||
456 | reg = <0x30390000 0x10000>; | ||
457 | #reset-cells = <1>; | ||
458 | }; | ||
459 | |||
281 | gpc: gpc@303a0000 { | 460 | gpc: gpc@303a0000 { |
282 | compatible = "fsl,imx8mq-gpc"; | 461 | compatible = "fsl,imx8mq-gpc"; |
283 | reg = <0x303a0000 0x10000>; | 462 | reg = <0x303a0000 0x10000>; |
@@ -294,9 +473,25 @@ | |||
294 | reg = <IMX8M_POWER_DOMAIN_MIPI>; | 473 | reg = <IMX8M_POWER_DOMAIN_MIPI>; |
295 | }; | 474 | }; |
296 | 475 | ||
297 | pgc_pcie1: power-domain@1 { | 476 | /* |
477 | * As per comment in ATF source code: | ||
478 | * | ||
479 | * PCIE1 and PCIE2 share the | ||
480 | * same reset signal, if we | ||
481 | * power down PCIE2, PCIE1 | ||
482 | * will be held in reset too. | ||
483 | * | ||
484 | * So instead of creating two | ||
485 | * separate power domains for | ||
486 | * PCIE1 and PCIE2 we create a | ||
487 | * link between both and use | ||
488 | * it as a shared PCIE power | ||
489 | * domain. | ||
490 | */ | ||
491 | pgc_pcie: power-domain@1 { | ||
298 | #power-domain-cells = <0>; | 492 | #power-domain-cells = <0>; |
299 | reg = <IMX8M_POWER_DOMAIN_PCIE1>; | 493 | reg = <IMX8M_POWER_DOMAIN_PCIE1>; |
494 | power-domains = <&pgc_pcie2>; | ||
300 | }; | 495 | }; |
301 | 496 | ||
302 | pgc_otg1: power-domain@2 { | 497 | pgc_otg1: power-domain@2 { |
@@ -478,6 +673,21 @@ | |||
478 | status = "disabled"; | 673 | status = "disabled"; |
479 | }; | 674 | }; |
480 | 675 | ||
676 | sai2: sai@308b0000 { | ||
677 | #sound-dai-cells = <0>; | ||
678 | compatible = "fsl,imx8mq-sai", | ||
679 | "fsl,imx6sx-sai"; | ||
680 | reg = <0x308b0000 0x10000>; | ||
681 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | ||
682 | clocks = <&clk IMX8MQ_CLK_SAI2_IPG>, | ||
683 | <&clk IMX8MQ_CLK_SAI2_ROOT>, | ||
684 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | ||
685 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | ||
686 | dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>; | ||
687 | dma-names = "rx", "tx"; | ||
688 | status = "disabled"; | ||
689 | }; | ||
690 | |||
481 | i2c1: i2c@30a20000 { | 691 | i2c1: i2c@30a20000 { |
482 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; | 692 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; |
483 | reg = <0x30a20000 0x10000>; | 693 | reg = <0x30a20000 0x10000>; |
@@ -575,6 +785,17 @@ | |||
575 | status = "disabled"; | 785 | status = "disabled"; |
576 | }; | 786 | }; |
577 | 787 | ||
788 | sdma1: sdma@30bd0000 { | ||
789 | compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; | ||
790 | reg = <0x30bd0000 0x10000>; | ||
791 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | ||
792 | clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>, | ||
793 | <&clk IMX8MQ_CLK_AHB>; | ||
794 | clock-names = "ipg", "ahb"; | ||
795 | #dma-cells = <3>; | ||
796 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | ||
797 | }; | ||
798 | |||
578 | fec1: ethernet@30be0000 { | 799 | fec1: ethernet@30be0000 { |
579 | compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec"; | 800 | compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec"; |
580 | reg = <0x30be0000 0x10000>; | 801 | reg = <0x30be0000 0x10000>; |
@@ -594,6 +815,30 @@ | |||
594 | }; | 815 | }; |
595 | }; | 816 | }; |
596 | 817 | ||
818 | gpu: gpu@38000000 { | ||
819 | compatible = "vivante,gc"; | ||
820 | reg = <0x38000000 0x40000>; | ||
821 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | ||
822 | clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, | ||
823 | <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, | ||
824 | <&clk IMX8MQ_CLK_GPU_AXI>, | ||
825 | <&clk IMX8MQ_CLK_GPU_AHB>; | ||
826 | clock-names = "core", "shader", "bus", "reg"; | ||
827 | assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>, | ||
828 | <&clk IMX8MQ_CLK_GPU_SHADER_SRC>, | ||
829 | <&clk IMX8MQ_CLK_GPU_AXI>, | ||
830 | <&clk IMX8MQ_CLK_GPU_AHB>, | ||
831 | <&clk IMX8MQ_GPU_PLL_BYPASS>; | ||
832 | assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>, | ||
833 | <&clk IMX8MQ_GPU_PLL_OUT>, | ||
834 | <&clk IMX8MQ_GPU_PLL_OUT>, | ||
835 | <&clk IMX8MQ_GPU_PLL_OUT>, | ||
836 | <&clk IMX8MQ_GPU_PLL>; | ||
837 | assigned-clock-rates = <800000000>, <800000000>, | ||
838 | <800000000>, <800000000>, <0>; | ||
839 | power-domains = <&pgc_gpu>; | ||
840 | }; | ||
841 | |||
597 | usb_dwc3_0: usb@38100000 { | 842 | usb_dwc3_0: usb@38100000 { |
598 | compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; | 843 | compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; |
599 | reg = <0x38100000 0x10000>; | 844 | reg = <0x38100000 0x10000>; |
@@ -658,6 +903,66 @@ | |||
658 | status = "disabled"; | 903 | status = "disabled"; |
659 | }; | 904 | }; |
660 | 905 | ||
906 | |||
907 | pcie0: pcie@33800000 { | ||
908 | compatible = "fsl,imx8mq-pcie"; | ||
909 | reg = <0x33800000 0x400000>, | ||
910 | <0x1ff00000 0x80000>; | ||
911 | reg-names = "dbi", "config"; | ||
912 | #address-cells = <3>; | ||
913 | #size-cells = <2>; | ||
914 | device_type = "pci"; | ||
915 | bus-range = <0x00 0xff>; | ||
916 | ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000 /* downstream I/O 64KB */ | ||
917 | 0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */ | ||
918 | num-lanes = <1>; | ||
919 | num-viewport = <4>; | ||
920 | interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | ||
921 | interrupt-names = "msi"; | ||
922 | #interrupt-cells = <1>; | ||
923 | interrupt-map-mask = <0 0 0 0x7>; | ||
924 | interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, | ||
925 | <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, | ||
926 | <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, | ||
927 | <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | ||
928 | fsl,max-link-speed = <2>; | ||
929 | power-domains = <&pgc_pcie>; | ||
930 | resets = <&src IMX8MQ_RESET_PCIEPHY>, | ||
931 | <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>, | ||
932 | <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>; | ||
933 | reset-names = "pciephy", "apps", "turnoff"; | ||
934 | status = "disabled"; | ||
935 | }; | ||
936 | |||
937 | pcie1: pcie@33c00000 { | ||
938 | compatible = "fsl,imx8mq-pcie"; | ||
939 | reg = <0x33c00000 0x400000>, | ||
940 | <0x27f00000 0x80000>; | ||
941 | reg-names = "dbi", "config"; | ||
942 | #address-cells = <3>; | ||
943 | #size-cells = <2>; | ||
944 | device_type = "pci"; | ||
945 | ranges = <0x81000000 0 0x00000000 0x27f80000 0 0x00010000 /* downstream I/O 64KB */ | ||
946 | 0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */ | ||
947 | num-lanes = <1>; | ||
948 | num-viewport = <4>; | ||
949 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
950 | interrupt-names = "msi"; | ||
951 | #interrupt-cells = <1>; | ||
952 | interrupt-map-mask = <0 0 0 0x7>; | ||
953 | interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, | ||
954 | <0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, | ||
955 | <0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, | ||
956 | <0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
957 | fsl,max-link-speed = <2>; | ||
958 | power-domains = <&pgc_pcie>; | ||
959 | resets = <&src IMX8MQ_RESET_PCIEPHY2>, | ||
960 | <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, | ||
961 | <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; | ||
962 | reset-names = "pciephy", "apps", "turnoff"; | ||
963 | status = "disabled"; | ||
964 | }; | ||
965 | |||
661 | gic: interrupt-controller@38800000 { | 966 | gic: interrupt-controller@38800000 { |
662 | compatible = "arm,gic-v3"; | 967 | compatible = "arm,gic-v3"; |
663 | reg = <0x38800000 0x10000>, /* GIC Dist */ | 968 | reg = <0x38800000 0x10000>, /* GIC Dist */ |
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts index 03aad66545c5..bfdada2db176 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | |||
@@ -60,6 +60,82 @@ | |||
60 | }; | 60 | }; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | &adma_i2c1 { | ||
64 | #address-cells = <1>; | ||
65 | #size-cells = <0>; | ||
66 | clock-frequency = <100000>; | ||
67 | pinctrl-names = "default"; | ||
68 | pinctrl-0 = <&pinctrl_lpi2c1 &pinctrl_ioexp_rst>; | ||
69 | status = "okay"; | ||
70 | |||
71 | i2c-switch@71 { | ||
72 | compatible = "nxp,pca9646", "nxp,pca9546"; | ||
73 | #address-cells = <1>; | ||
74 | #size-cells = <0>; | ||
75 | reg = <0x71>; | ||
76 | reset-gpios = <&lsio_gpio1 1 GPIO_ACTIVE_LOW>; | ||
77 | |||
78 | i2c@0 { | ||
79 | #address-cells = <1>; | ||
80 | #size-cells = <0>; | ||
81 | reg = <0>; | ||
82 | |||
83 | max7322: gpio@68 { | ||
84 | compatible = "maxim,max7322"; | ||
85 | reg = <0x68>; | ||
86 | gpio-controller; | ||
87 | #gpio-cells = <2>; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | i2c@1 { | ||
92 | #address-cells = <1>; | ||
93 | #size-cells = <0>; | ||
94 | reg = <1>; | ||
95 | }; | ||
96 | |||
97 | i2c@2 { | ||
98 | #address-cells = <1>; | ||
99 | #size-cells = <0>; | ||
100 | reg = <2>; | ||
101 | |||
102 | pressure-sensor@60 { | ||
103 | compatible = "fsl,mpl3115"; | ||
104 | reg = <0x60>; | ||
105 | }; | ||
106 | }; | ||
107 | |||
108 | i2c@3 { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <0>; | ||
111 | reg = <3>; | ||
112 | |||
113 | pca9557_a: gpio@1a { | ||
114 | compatible = "nxp,pca9557"; | ||
115 | reg = <0x1a>; | ||
116 | gpio-controller; | ||
117 | #gpio-cells = <2>; | ||
118 | }; | ||
119 | |||
120 | pca9557_b: gpio@1d { | ||
121 | compatible = "nxp,pca9557"; | ||
122 | reg = <0x1d>; | ||
123 | gpio-controller; | ||
124 | #gpio-cells = <2>; | ||
125 | }; | ||
126 | |||
127 | light-sensor@44 { | ||
128 | pinctrl-names = "default"; | ||
129 | pinctrl-0 = <&pinctrl_isl29023>; | ||
130 | compatible = "isil,isl29023"; | ||
131 | reg = <0x44>; | ||
132 | interrupt-parent = <&lsio_gpio1>; | ||
133 | interrupts = <2 IRQ_TYPE_EDGE_FALLING>; | ||
134 | }; | ||
135 | }; | ||
136 | }; | ||
137 | }; | ||
138 | |||
63 | &usdhc1 { | 139 | &usdhc1 { |
64 | pinctrl-names = "default"; | 140 | pinctrl-names = "default"; |
65 | pinctrl-0 = <&pinctrl_usdhc1>; | 141 | pinctrl-0 = <&pinctrl_usdhc1>; |
@@ -100,6 +176,25 @@ | |||
100 | >; | 176 | >; |
101 | }; | 177 | }; |
102 | 178 | ||
179 | pinctrl_ioexp_rst: ioexp_rst_grp { | ||
180 | fsl,pins = < | ||
181 | IMX8QXP_SPI2_SDO_LSIO_GPIO1_IO01 0x06000021 | ||
182 | >; | ||
183 | }; | ||
184 | |||
185 | pinctrl_isl29023: isl29023grp { | ||
186 | fsl,pins = < | ||
187 | IMX8QXP_SPI2_SDI_LSIO_GPIO1_IO02 0x00000021 | ||
188 | >; | ||
189 | }; | ||
190 | |||
191 | pinctrl_lpi2c1: lpi2c1grp { | ||
192 | fsl,pins = < | ||
193 | IMX8QXP_USB_SS3_TC1_ADMA_I2C1_SCL 0x06000021 | ||
194 | IMX8QXP_USB_SS3_TC3_ADMA_I2C1_SDA 0x06000021 | ||
195 | >; | ||
196 | }; | ||
197 | |||
103 | pinctrl_lpuart0: lpuart0grp { | 198 | pinctrl_lpuart0: lpuart0grp { |
104 | fsl,pins = < | 199 | fsl,pins = < |
105 | IMX8QXP_UART0_RX_ADMA_UART0_RX 0x06000020 | 200 | IMX8QXP_UART0_RX_ADMA_UART0_RX 0x06000020 |
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi index 4c3dd95ed488..0683ee2a48ae 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi | |||
@@ -21,6 +21,7 @@ | |||
21 | mmc1 = &usdhc2; | 21 | mmc1 = &usdhc2; |
22 | mmc2 = &usdhc3; | 22 | mmc2 = &usdhc3; |
23 | serial0 = &adma_lpuart0; | 23 | serial0 = &adma_lpuart0; |
24 | mu1 = &lsio_mu1; | ||
24 | }; | 25 | }; |
25 | 26 | ||
26 | cpus { | 27 | cpus { |
@@ -34,6 +35,9 @@ | |||
34 | reg = <0x0 0x0>; | 35 | reg = <0x0 0x0>; |
35 | enable-method = "psci"; | 36 | enable-method = "psci"; |
36 | next-level-cache = <&A35_L2>; | 37 | next-level-cache = <&A35_L2>; |
38 | clocks = <&clk IMX_A35_CLK>; | ||
39 | operating-points-v2 = <&a35_opp_table>; | ||
40 | #cooling-cells = <2>; | ||
37 | }; | 41 | }; |
38 | 42 | ||
39 | A35_1: cpu@1 { | 43 | A35_1: cpu@1 { |
@@ -42,6 +46,9 @@ | |||
42 | reg = <0x0 0x1>; | 46 | reg = <0x0 0x1>; |
43 | enable-method = "psci"; | 47 | enable-method = "psci"; |
44 | next-level-cache = <&A35_L2>; | 48 | next-level-cache = <&A35_L2>; |
49 | clocks = <&clk IMX_A35_CLK>; | ||
50 | operating-points-v2 = <&a35_opp_table>; | ||
51 | #cooling-cells = <2>; | ||
45 | }; | 52 | }; |
46 | 53 | ||
47 | A35_2: cpu@2 { | 54 | A35_2: cpu@2 { |
@@ -50,6 +57,9 @@ | |||
50 | reg = <0x0 0x2>; | 57 | reg = <0x0 0x2>; |
51 | enable-method = "psci"; | 58 | enable-method = "psci"; |
52 | next-level-cache = <&A35_L2>; | 59 | next-level-cache = <&A35_L2>; |
60 | clocks = <&clk IMX_A35_CLK>; | ||
61 | operating-points-v2 = <&a35_opp_table>; | ||
62 | #cooling-cells = <2>; | ||
53 | }; | 63 | }; |
54 | 64 | ||
55 | A35_3: cpu@3 { | 65 | A35_3: cpu@3 { |
@@ -58,6 +68,9 @@ | |||
58 | reg = <0x0 0x3>; | 68 | reg = <0x0 0x3>; |
59 | enable-method = "psci"; | 69 | enable-method = "psci"; |
60 | next-level-cache = <&A35_L2>; | 70 | next-level-cache = <&A35_L2>; |
71 | clocks = <&clk IMX_A35_CLK>; | ||
72 | operating-points-v2 = <&a35_opp_table>; | ||
73 | #cooling-cells = <2>; | ||
61 | }; | 74 | }; |
62 | 75 | ||
63 | A35_L2: l2-cache0 { | 76 | A35_L2: l2-cache0 { |
@@ -65,6 +78,24 @@ | |||
65 | }; | 78 | }; |
66 | }; | 79 | }; |
67 | 80 | ||
81 | a35_opp_table: opp-table { | ||
82 | compatible = "operating-points-v2"; | ||
83 | opp-shared; | ||
84 | |||
85 | opp-900000000 { | ||
86 | opp-hz = /bits/ 64 <900000000>; | ||
87 | opp-microvolt = <1000000>; | ||
88 | clock-latency-ns = <150000>; | ||
89 | }; | ||
90 | |||
91 | opp-1200000000 { | ||
92 | opp-hz = /bits/ 64 <1200000000>; | ||
93 | opp-microvolt = <1100000>; | ||
94 | clock-latency-ns = <150000>; | ||
95 | opp-suspend; | ||
96 | }; | ||
97 | }; | ||
98 | |||
68 | gic: interrupt-controller@51a00000 { | 99 | gic: interrupt-controller@51a00000 { |
69 | compatible = "arm,gic-v3"; | 100 | compatible = "arm,gic-v3"; |
70 | reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */ | 101 | reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */ |
@@ -87,7 +118,8 @@ | |||
87 | scu { | 118 | scu { |
88 | compatible = "fsl,imx-scu"; | 119 | compatible = "fsl,imx-scu"; |
89 | mbox-names = "tx0", "tx1", "tx2", "tx3", | 120 | mbox-names = "tx0", "tx1", "tx2", "tx3", |
90 | "rx0", "rx1", "rx2", "rx3"; | 121 | "rx0", "rx1", "rx2", "rx3", |
122 | "gip3"; | ||
91 | mboxes = <&lsio_mu1 0 0 | 123 | mboxes = <&lsio_mu1 0 0 |
92 | &lsio_mu1 0 1 | 124 | &lsio_mu1 0 1 |
93 | &lsio_mu1 0 2 | 125 | &lsio_mu1 0 2 |
@@ -95,7 +127,8 @@ | |||
95 | &lsio_mu1 1 0 | 127 | &lsio_mu1 1 0 |
96 | &lsio_mu1 1 1 | 128 | &lsio_mu1 1 1 |
97 | &lsio_mu1 1 2 | 129 | &lsio_mu1 1 2 |
98 | &lsio_mu1 1 3>; | 130 | &lsio_mu1 1 3 |
131 | &lsio_mu1 3 3>; | ||
99 | 132 | ||
100 | clk: clock-controller { | 133 | clk: clock-controller { |
101 | compatible = "fsl,imx8qxp-clk"; | 134 | compatible = "fsl,imx8qxp-clk"; |
@@ -163,6 +196,39 @@ | |||
163 | status = "disabled"; | 196 | status = "disabled"; |
164 | }; | 197 | }; |
165 | 198 | ||
199 | adma_lpuart1: serial@5a070000 { | ||
200 | compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; | ||
201 | reg = <0x5a070000 0x1000>; | ||
202 | interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; | ||
203 | interrupt-parent = <&gic>; | ||
204 | clocks = <&adma_lpcg IMX_ADMA_LPCG_UART1_BAUD_CLK>; | ||
205 | clock-names = "ipg"; | ||
206 | power-domains = <&pd IMX_SC_R_UART_1>; | ||
207 | status = "disabled"; | ||
208 | }; | ||
209 | |||
210 | adma_lpuart2: serial@5a080000 { | ||
211 | compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; | ||
212 | reg = <0x5a080000 0x1000>; | ||
213 | interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; | ||
214 | interrupt-parent = <&gic>; | ||
215 | clocks = <&adma_lpcg IMX_ADMA_LPCG_UART2_BAUD_CLK>; | ||
216 | clock-names = "ipg"; | ||
217 | power-domains = <&pd IMX_SC_R_UART_2>; | ||
218 | status = "disabled"; | ||
219 | }; | ||
220 | |||
221 | adma_lpuart3: serial@5a090000 { | ||
222 | compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; | ||
223 | reg = <0x5a090000 0x1000>; | ||
224 | interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>; | ||
225 | interrupt-parent = <&gic>; | ||
226 | clocks = <&adma_lpcg IMX_ADMA_LPCG_UART3_BAUD_CLK>; | ||
227 | clock-names = "ipg"; | ||
228 | power-domains = <&pd IMX_SC_R_UART_3>; | ||
229 | status = "disabled"; | ||
230 | }; | ||
231 | |||
166 | adma_i2c0: i2c@5a800000 { | 232 | adma_i2c0: i2c@5a800000 { |
167 | compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; | 233 | compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; |
168 | reg = <0x5a800000 0x4000>; | 234 | reg = <0x5a800000 0x4000>; |
@@ -328,7 +394,7 @@ | |||
328 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; | 394 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; |
329 | reg = <0x5d1b0000 0x10000>; | 395 | reg = <0x5d1b0000 0x10000>; |
330 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; | 396 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; |
331 | #mbox-cells = <0>; | 397 | #mbox-cells = <2>; |
332 | status = "disabled"; | 398 | status = "disabled"; |
333 | }; | 399 | }; |
334 | 400 | ||
@@ -339,11 +405,19 @@ | |||
339 | #mbox-cells = <2>; | 405 | #mbox-cells = <2>; |
340 | }; | 406 | }; |
341 | 407 | ||
408 | lsio_mu2: mailbox@5d1d0000 { | ||
409 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; | ||
410 | reg = <0x5d1d0000 0x10000>; | ||
411 | interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>; | ||
412 | #mbox-cells = <2>; | ||
413 | status = "disabled"; | ||
414 | }; | ||
415 | |||
342 | lsio_mu3: mailbox@5d1e0000 { | 416 | lsio_mu3: mailbox@5d1e0000 { |
343 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; | 417 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; |
344 | reg = <0x5d1e0000 0x10000>; | 418 | reg = <0x5d1e0000 0x10000>; |
345 | interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; | 419 | interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; |
346 | #mbox-cells = <0>; | 420 | #mbox-cells = <2>; |
347 | status = "disabled"; | 421 | status = "disabled"; |
348 | }; | 422 | }; |
349 | 423 | ||
@@ -351,7 +425,7 @@ | |||
351 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; | 425 | compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; |
352 | reg = <0x5d1f0000 0x10000>; | 426 | reg = <0x5d1f0000 0x10000>; |
353 | interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; | 427 | interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; |
354 | #mbox-cells = <0>; | 428 | #mbox-cells = <2>; |
355 | status = "disabled"; | 429 | status = "disabled"; |
356 | }; | 430 | }; |
357 | 431 | ||
@@ -443,4 +517,9 @@ | |||
443 | power-domains = <&pd IMX_SC_R_GPIO_7>; | 517 | power-domains = <&pd IMX_SC_R_GPIO_7>; |
444 | }; | 518 | }; |
445 | }; | 519 | }; |
520 | |||
521 | watchdog { | ||
522 | compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt"; | ||
523 | timeout-sec = <60>; | ||
524 | }; | ||
446 | }; | 525 | }; |