summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-10-24 18:41:48 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:34:47 +0800
commitbf930000b8d4110f11f94f3fdfafa841249563e4 (patch)
tree184bc8e57857b6b660a9a5da324aabe6a5296074 /arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi
parenta4d31d7da69af77b7fa3a35bbe4fc2905fe0460a (diff)
MLK-20056-1 ARM64: dts: imx8qm: passthrough esai0 to domu
Passthrough esai0 to domu, the audio in dom0 is broken for now. Because of there are some shared clock/power for sai and esai, we could not cleanly parition the audio. So only support audio in domu now, in future, we could use paravirtualized audio. Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi')
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi208
1 files changed, 203 insertions, 5 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi
index 484889e89d69..632d25d04181 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-xen.dtsi
@@ -20,7 +20,7 @@
/delete-node/ wu;
- edma00: dma-controller0@5a1f0000 {
+ edma00: dma-controller0@5a2c0000 {
compatible = "fsl,imx8qm-edma";
reg = <0x0 0x5a2c0000 0x0 0x10000>, /* channel12 UART0 rx */
<0x0 0x5a2d0000 0x0 0x10000>; /* channel13 UART0 tx */
@@ -29,10 +29,12 @@
interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "edma0-chan12-rx", "edma0-chan13-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_0_CH12>,
+ <SC_R_DMA_0_CH13>;
status = "okay";
};
- edma01: dma-controller1@5a1f0000 {
+ edma01: dma-controller1@5a2e0000 {
compatible = "fsl,imx8qm-edma";
reg = <0x0 0x5a2e0000 0x0 0x10000>, /* channel14 UART1 rx */
<0x0 0x5a2f0000 0x0 0x10000>; /* channel15 UART1 tx */
@@ -41,10 +43,12 @@
interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "edma0-chan14-rx", "edma0-chan15-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_0_CH14>,
+ <SC_R_DMA_0_CH15>;
status = "okay";
};
- edma02: dma-controller2@5a1f0000 {
+ edma02: dma-controller2@5a300000 {
compatible = "fsl,imx8qm-edma";
reg = <0x0 0x5a300000 0x0 0x10000>, /* channel16 UART2 rx */
<0x0 0x5a310000 0x0 0x10000>; /* channel17 UART2 tx */
@@ -53,10 +57,12 @@
interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "edma0-chan16-rx", "edma0-chan17-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_0_CH16>,
+ <SC_R_DMA_0_CH17>;
status = "okay";
};
- edma03: dma-controller3@5a1f0000 {
+ edma03: dma-controller3@5a320000 {
compatible = "fsl,imx8qm-edma";
reg = <0x0 0x5a320000 0x0 0x10000>, /* channel18 UART3 rx */
<0x0 0x5a330000 0x0 0x10000>; /* channel19 UART3 tx */
@@ -65,10 +71,12 @@
interrupts = <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "edma0-chan18-rx", "edma0-chan19-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_0_CH18>,
+ <SC_R_DMA_0_CH19>;
status = "okay";
};
- edma04: dma-controller4@5a1f0000 {
+ edma04: dma-controller4@5a340000 {
compatible = "fsl,imx8qm-edma";
reg = <0x0 0x5a340000 0x0 0x10000>, /* channel20 UART4 rx */
<0x0 0x5a350000 0x0 0x10000>; /* channel21 UART4 tx */
@@ -77,6 +85,127 @@
interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "edma0-chan20-rx", "edma0-chan21-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_0_CH20>,
+ <SC_R_DMA_0_CH21>;
+ status = "okay";
+ };
+
+ edma20: dma-controller@59200000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x59200000 0x0 0x10000>, /* asrc0 */
+ <0x0 0x59210000 0x0 0x10000>,
+ <0x0 0x59220000 0x0 0x10000>,
+ <0x0 0x59230000 0x0 0x10000>,
+ <0x0 0x59240000 0x0 0x10000>,
+ <0x0 0x59250000 0x0 0x10000>;
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <6>;
+ interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc0 */
+ <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan0-rx", "edma2-chan1-rx", /* asrc0 */
+ "edma2-chan2-rx", "edma2-chan3-tx",
+ "edma2-chan4-tx", "edma2-chan5-tx";
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH0>,
+ <SC_R_DMA_2_CH1>,
+ <SC_R_DMA_2_CH2>,
+ <SC_R_DMA_2_CH3>,
+ <SC_R_DMA_2_CH4>,
+ <SC_R_DMA_2_CH5>;
+ status = "okay";
+ };
+
+ edma21: dma-controller@0x59260000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x59260000 0x0 0x10000>, /* esai0 rx */
+ <0x0 0x59270000 0x0 0x10000>; /* esai0 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* esai0 */
+ <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan6-rx", "edma2-chan7-tx"; /* esai0 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH6>,
+ <SC_R_DMA_2_CH7>;
+ status = "okay";
+ };
+
+ edma22: dma-controller@0x59280000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x59280000 0x0 0x10000>, /* spdif0 rx */
+ <0x0 0x59290000 0x0 0x10000>; /* spdif0 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, /* spdif0 */
+ <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan8-rx", "edma2-chan9-tx"; /* spdif0 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH8>,
+ <SC_R_DMA_2_CH9>;
+ status = "okay";
+ };
+
+ edma23: dma-controller@0x592a0000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x592A0000 0x0 0x10000>, /* spdif1 rx */
+ <0x0 0x592B0000 0x0 0x10000>; /* spdif1 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>, /* spdif1 */
+ <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan10-rx", "edma2-chan11-tx"; /* spdif1 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH10>,
+ <SC_R_DMA_2_CH11>;
+ status = "okay";
+ };
+
+ edma24: dma-controller@0x592c0000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x592c0000 0x0 0x10000>, /* sai0 rx */
+ <0x0 0x592d0000 0x0 0x10000>; /* sai0 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* sai0 */
+ <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan12-rx", "edma2-chan13-tx"; /* sai0 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH12>,
+ <SC_R_DMA_2_CH13>;
+ status = "okay";
+ };
+
+ edma25: dma-controller@0x592e0000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x592e0000 0x0 0x10000>, /* sai1 rx */
+ <0x0 0x592f0000 0x0 0x10000>; /* sai1 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, /* sai1 */
+ <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "edma2-chan14-rx", "edma2-chan15-tx"; /* sai1 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH14>,
+ <SC_R_DMA_2_CH15>;
+ status = "okay";
+ };
+
+ edma26: dma-controller@0x59320000 {
+ compatible = "fsl,imx8qm-adma";
+ reg = <0x0 0x59320000 0x0 0x10000>, /* sai4 rx */
+ <0x0 0x59330000 0x0 0x10000>; /* sai5 tx */
+ #dma-cells = <3>;
+ shared-interrupt;
+ dma-channels = <2>;
+ interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */
+ <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */
+ interrupt-names = "edma2-chan18-rx", "edma2-chan19-tx"; /* sai1 */
+ fsl,sc_rsrc_id = <SC_R_DMA_2_CH18>,
+ <SC_R_DMA_2_CH19>;
status = "okay";
};
@@ -213,9 +342,42 @@
aud_hdmi_tx_sai_0_lpcg: aud_hdmi_tx_sai_0_lpcg@0x59490000 {
reg = <0x0 0x59490000 0x0 0x1000>;
};
+
+ aud_asrc_0_lpcg: aud_asrc_0_lpcg@0x59400000 {
+ reg = <0x0 0x59400000 0x0 0x1000>;
+ };
+
+ aud_esai_0_lpcg: aud_esai_0_lpcg@0x59410000 {
+ reg = <0x0 0x59410000 0x0 0x1000>;
+ };
+
+ aud_pll_clk0_lpcg: aud_pll_clk0_lpcg {
+ reg = <0x0 0x59d20000 0x0 0x1000>;
+ };
+
+ aud_pll_clk1_lpcg: aud_pll_clk1_lpcg {
+ reg = <0x0 0x59d30000 0x0 0x1000>;
+ };
+
+ aud_mclkout0_lpcg: aud_mclkout0_lpcg {
+ reg = <0x0 0x59d50000 0x0 0x1000>;
+ };
+
+ aud_mclkout1_lpcg: aud_mclkout1_lpcg {
+ reg = <0x0 0x59d60000 0x0 0x1000>;
+ };
+
+ aud_rec_clk0_lpcg: aud_rec_clk0_lpcg {
+ reg = <0x0 0x59d00000 0x0 0x1000>;
+ };
+
+ aud_rec_clk1_lpcg: aud_rec_clk1_lpcg {
+ reg = <0x0 0x59d10000 0x0 0x1000>;
+ };
};
/delete-node/ &edma0;
+/delete-node/ &edma2;
&mu {
interrupt-parent = <&gic>;
@@ -323,3 +485,39 @@
<SC_R_DC_1_FRAC0>,
<SC_R_DC_1>;
};
+
+&esai0 {
+ dmas = <&edma21 6 0 1>, <&edma21 7 0 0>;
+};
+
+&spdif0 {
+ dmas = <&edma22 8 0 5>, <&edma22 9 0 4>;
+};
+
+&spdif1 {
+ dmas = <&edma23 10 0 5>, <&edma23 11 0 4>;
+};
+
+&sai0 {
+ dmas = <&edma24 12 0 1>, <&edma24 13 0 0>;
+};
+
+&sai1 {
+ dmas = <&edma25 14 0 1>, <&edma25 15 0 0>;
+};
+
+/delete-node/ &sai2;
+/delete-node/ &sai3;
+
+&sai_hdmi_rx {
+ dmas = <&edma26 18 0 1>;
+};
+
+&sai_hdmi_tx {
+ dmas = <&edma26 19 0 0>;
+};
+
+&asrc0 {
+ dmas = <&edma20 0 0 0>, <&edma20 1 0 0>, <&edma20 2 0 0>,
+ <&edma20 3 0 1>, <&edma20 4 0 1>, <&edma20 5 0 1>;
+};