summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
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-mek-domu.dts
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-mek-domu.dts')
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts133
1 files changed, 130 insertions, 3 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
index f0c1d227beac..828480617f3a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
@@ -282,6 +282,15 @@
gpio = <&gpio4 9 0>;
enable-active-high;
};
+
+ reg_audio: fixedregulator@2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "cs42888_supply";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
};
#include "fsl-imx8qm-device.dtsi"
@@ -310,11 +319,63 @@
status = "okay";
};
+ edma20: dma-controller@591f0000 {
+ 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";
+ 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 */
+ status = "okay";
+ };
+
+ sound-cs42888 {
+ compatible = "fsl,imx8qm-sabreauto-cs42888",
+ "fsl,imx-audio-cs42888";
+ model = "imx-cs42888";
+ esai-controller = <&esai0>;
+ audio-codec = <&cs42888>;
+ asrc-controller = <&asrc0>;
+ status = "okay";
+ };
+
xen_i2c0: xen_i2c@0 {
compatible = "xen,i2c";
be-adapter = "5a800000.i2c";
status = "okay";
};
+
+ xen_i2c1: xen_i2c@1 {
+ compatible = "xen,i2c";
+ be-adapter = "3b230000.i2c";
+ status = "okay";
+ };
};
};
@@ -660,8 +721,26 @@
/delete-node/ &ddr_pmu0;
/delete-node/ &ddr_pmu1;
/delete-node/ &vpu;
-/delete-node/ &acm;
-/delete-node/ &esai0;
+
+&acm {
+ status = "okay";
+};
+
+&esai0 {
+ compatible = "fsl,imx8qm-esai";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_esai0>;
+ dmas = <&edma21 6 0 1>, <&edma21 7 0 0>;
+ assigned-clocks = <&clk IMX8QM_ACM_ESAI0_MCLK_SEL>,
+ <&clk IMX8QM_AUD_PLL0_DIV>,
+ <&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_DIV>,
+ <&clk IMX8QM_AUD_ACM_AUD_REC_CLK0_DIV>,
+ <&clk IMX8QM_AUD_ESAI_0_EXTAL_IPG>;
+ assigned-clock-parents = <&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_CLK>;
+ assigned-clock-rates = <0>, <786432000>, <49152000>, <12288000>, <49152000>;
+ status = "okay";
+};
+
/delete-node/ &esai1;
/delete-node/ &spdif0;
/delete-node/ &spdif1;
@@ -674,7 +753,14 @@
/delete-node/ &sai6;
/delete-node/ &sai7;
/delete-node/ &amix;
-/delete-node/ &asrc0;
+
+&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>;
+ fsl,asrc-rate = <48000>;
+ status = "okay";
+};
+
/delete-node/ &asrc1;
/delete-node/ &mqs;
/delete-node/ &flexspi0;
@@ -819,6 +905,21 @@
SC_P_USDHC2_WP_LSIO_GPIO4_IO11 0x00000021
>;
};
+
+ pinctrl_esai0: esai0grp {
+ fsl,pins = <
+ SC_P_ESAI0_FSR_AUD_ESAI0_FSR 0xc6000040
+ SC_P_ESAI0_FST_AUD_ESAI0_FST 0xc6000040
+ SC_P_ESAI0_SCKR_AUD_ESAI0_SCKR 0xc6000040
+ SC_P_ESAI0_SCKT_AUD_ESAI0_SCKT 0xc6000040
+ SC_P_ESAI0_TX0_AUD_ESAI0_TX0 0xc6000040
+ SC_P_ESAI0_TX1_AUD_ESAI0_TX1 0xc6000040
+ SC_P_ESAI0_TX2_RX3_AUD_ESAI0_TX2_RX3 0xc6000040
+ SC_P_ESAI0_TX3_RX2_AUD_ESAI0_TX3_RX2 0xc6000040
+ SC_P_ESAI0_TX4_RX1_AUD_ESAI0_TX4_RX1 0xc6000040
+ SC_P_ESAI0_TX5_RX0_AUD_ESAI0_TX5_RX0 0xc6000040
+ >;
+ };
};
};
@@ -927,6 +1028,32 @@
};
};
+&xen_i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <100000>;
+ status = "okay";
+
+ cs42888: cs42888@48 {
+ compatible = "cirrus,cs42888";
+ reg = <0x48>;
+ clocks = <&clk IMX8QM_AUD_MCLKOUT0>;
+ clock-names = "mclk";
+ VA-supply = <&reg_audio>;
+ VD-supply = <&reg_audio>;
+ VLS-supply = <&reg_audio>;
+ VLC-supply = <&reg_audio>;
+ reset-gpio = <&gpio4 25 1>;
+ power-domains = <&pd_mclk_out0>;
+ assigned-clocks = <&clk IMX8QM_AUD_PLL0_DIV>,
+ <&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_DIV>,
+ <&clk IMX8QM_AUD_ACM_AUD_REC_CLK0_DIV>,
+ <&clk IMX8QM_AUD_MCLKOUT0>;
+ assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
+ status = "okay";
+ };
+};
+
/* Camera */
/delete-node/ &isi_4;
/delete-node/ &isi_5;