xref: /linux/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi (revision cdd30ebb1b9f36159d66f088b61aee264e649d7a)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2018-2019 NXP
4 *	Dong Aisheng <aisheng.dong@nxp.com>
5 */
6
7/delete-node/ &adma_pwm;
8/delete-node/ &adma_pwm_lpcg;
9
10&dma_subsys {
11	uart4_lpcg: clock-controller@5a4a0000 {
12		compatible = "fsl,imx8qxp-lpcg";
13		reg = <0x5a4a0000 0x10000>;
14		#clock-cells = <1>;
15		clocks = <&clk IMX_SC_R_UART_4 IMX_SC_PM_CLK_PER>,
16			 <&dma_ipg_clk>;
17		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
18		clock-output-names = "uart4_lpcg_baud_clk",
19				     "uart4_lpcg_ipg_clk";
20		power-domains = <&pd IMX_SC_R_UART_4>;
21	};
22
23	i2c4: i2c@5a840000 {
24		compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
25		reg = <0x5a840000 0x4000>;
26		interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
27		interrupt-parent = <&gic>;
28		clocks = <&i2c4_lpcg 0>,
29			 <&i2c4_lpcg 1>;
30		clock-names = "per", "ipg";
31		assigned-clocks = <&clk IMX_SC_R_I2C_4 IMX_SC_PM_CLK_PER>;
32		assigned-clock-rates = <24000000>;
33		power-domains = <&pd IMX_SC_R_I2C_4>;
34		status = "disabled";
35	};
36
37	i2c4_lpcg: clock-controller@5ac40000 {
38		compatible = "fsl,imx8qxp-lpcg";
39		reg = <0x5ac40000 0x10000>;
40		#clock-cells = <1>;
41		clocks = <&clk IMX_SC_R_I2C_4 IMX_SC_PM_CLK_PER>,
42			 <&dma_ipg_clk>;
43		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
44		clock-output-names = "i2c4_lpcg_clk",
45				     "i2c4_lpcg_ipg_clk";
46		power-domains = <&pd IMX_SC_R_I2C_4>;
47	};
48
49	can1_lpcg: clock-controller@5ace0000 {
50		compatible = "fsl,imx8qxp-lpcg";
51		reg = <0x5ace0000 0x10000>;
52		#clock-cells = <1>;
53		clocks = <&clk IMX_SC_R_CAN_1 IMX_SC_PM_CLK_PER>,
54			 <&dma_ipg_clk>, <&dma_ipg_clk>;
55		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
56		clock-output-names = "can1_lpcg_pe_clk",
57				     "can1_lpcg_ipg_clk",
58				     "can1_lpcg_chi_clk";
59		power-domains = <&pd IMX_SC_R_CAN_1>;
60	};
61
62	can2_lpcg: clock-controller@5acf0000 {
63		compatible = "fsl,imx8qxp-lpcg";
64		reg = <0x5acf0000 0x10000>;
65		#clock-cells = <1>;
66		clocks = <&clk IMX_SC_R_CAN_2 IMX_SC_PM_CLK_PER>,
67			 <&dma_ipg_clk>, <&dma_ipg_clk>;
68		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
69		clock-output-names = "can2_lpcg_pe_clk",
70				     "can2_lpcg_ipg_clk",
71				     "can2_lpcg_chi_clk";
72		power-domains = <&pd IMX_SC_R_CAN_2>;
73	};
74};
75
76&edma2 {
77	reg = <0x5a1f0000 0x170000>;
78	#dma-cells = <3>;
79	dma-channels = <22>;
80	dma-channel-mask = <0xf00>;
81	interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
82		     <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
83		     <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
84		     <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
85		     <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
86		     <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
87		     <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
88		     <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
89		     <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* unused */
90		     <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* unused */
91		     <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* unused */
92		     <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* unused */
93		     <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
94		     <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
95		     <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
96		     <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>,
97		     <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
98		     <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>,
99		     <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
100		     <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>,
101		     <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>,
102		     <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
103	power-domains = <&pd IMX_SC_R_DMA_0_CH0>,
104			<&pd IMX_SC_R_DMA_0_CH1>,
105			<&pd IMX_SC_R_DMA_0_CH2>,
106			<&pd IMX_SC_R_DMA_0_CH3>,
107			<&pd IMX_SC_R_DMA_0_CH4>,
108			<&pd IMX_SC_R_DMA_0_CH5>,
109			<&pd IMX_SC_R_DMA_0_CH6>,
110			<&pd IMX_SC_R_DMA_0_CH7>,
111			<&pd IMX_SC_R_DMA_0_CH8>,
112			<&pd IMX_SC_R_DMA_0_CH9>,
113			<&pd IMX_SC_R_DMA_0_CH10>,
114			<&pd IMX_SC_R_DMA_0_CH11>,
115			<&pd IMX_SC_R_DMA_0_CH12>,
116			<&pd IMX_SC_R_DMA_0_CH13>,
117			<&pd IMX_SC_R_DMA_0_CH14>,
118			<&pd IMX_SC_R_DMA_0_CH15>,
119			<&pd IMX_SC_R_DMA_0_CH16>,
120			<&pd IMX_SC_R_DMA_0_CH17>,
121			<&pd IMX_SC_R_DMA_0_CH18>,
122			<&pd IMX_SC_R_DMA_0_CH19>,
123			<&pd IMX_SC_R_DMA_0_CH20>,
124			<&pd IMX_SC_R_DMA_0_CH21>;
125	status = "okay";
126};
127
128/* It is eDMA1 in 8QM RM, but 8QXP it is eDMA3 */
129&edma3 {
130	reg = <0x5a9f0000 0x210000>;
131	dma-channels = <10>;
132	interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
133		     <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
134		     <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
135		     <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
136		     <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
137		     <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
138		     <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
139		     <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>,
140		     <GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
141		     <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>;
142	power-domains = <&pd IMX_SC_R_DMA_1_CH0>,
143			<&pd IMX_SC_R_DMA_1_CH1>,
144			<&pd IMX_SC_R_DMA_1_CH2>,
145			<&pd IMX_SC_R_DMA_1_CH3>,
146			<&pd IMX_SC_R_DMA_1_CH4>,
147			<&pd IMX_SC_R_DMA_1_CH5>,
148			<&pd IMX_SC_R_DMA_1_CH6>,
149			<&pd IMX_SC_R_DMA_1_CH7>,
150			<&pd IMX_SC_R_DMA_1_CH8>,
151			<&pd IMX_SC_R_DMA_1_CH9>;
152};
153
154&flexcan1 {
155	fsl,clk-source = /bits/ 8 <1>;
156};
157
158&flexcan2 {
159	clocks = <&can1_lpcg IMX_LPCG_CLK_4>,
160		 <&can1_lpcg IMX_LPCG_CLK_0>;
161	assigned-clocks = <&clk IMX_SC_R_CAN_1 IMX_SC_PM_CLK_PER>;
162	fsl,clk-source = /bits/ 8 <1>;
163};
164
165&flexcan3 {
166	clocks = <&can2_lpcg IMX_LPCG_CLK_4>,
167		 <&can2_lpcg IMX_LPCG_CLK_0>;
168	assigned-clocks = <&clk IMX_SC_R_CAN_2 IMX_SC_PM_CLK_PER>;
169	fsl,clk-source = /bits/ 8 <1>;
170};
171
172&lpuart0 {
173	compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
174	dmas = <&edma2 13 0 0>, <&edma2 12 0 1>;
175	dma-names = "rx","tx";
176};
177
178&lpuart1 {
179	compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
180	dmas = <&edma2 15 0 0>, <&edma2 14 0 1>;
181	dma-names = "rx","tx";
182};
183
184&lpuart2 {
185	compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
186	dmas = <&edma2 17 0 0>, <&edma2 16 0 1>;
187	dma-names = "rx","tx";
188};
189
190&lpuart3 {
191	compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
192	dmas = <&edma2 19 0 0>, <&edma2 18 0 1>;
193	dma-names = "rx","tx";
194};
195
196&i2c0 {
197	compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
198};
199
200&i2c1 {
201	compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
202};
203
204&i2c2 {
205	compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
206};
207
208&i2c3 {
209	compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
210};
211