2020-07-07 06:37 AM
Hello,
so I am using the Yocto environment and patched the device tree:
diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
index dd796ec03..54ef05294 100644
--- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
@@ -473,7 +473,16 @@
};
};
-
+
+ i2s1_pins_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('A', 15, AF5)>; /* I2S1_WS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
i2s2_pins_a: i2s2-0 {
pins {
pinmux = <STM32_PINMUX('I', 3, AF5)>, /* I2S2_SDO */
@@ -1479,6 +1488,17 @@
};
};
+ i2s1_pins_z_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* I2S1_CK */
+ <STM32_PINMUX('Z', 1, AF5)>, /* I2S1_SDI */
+ <STM32_PINMUX('Z', 2, AF5)>; /* I2S1_SDO */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
spi1_sleep_pins_a: spi1-sleep-0 {
pins {
pinmux = <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI1_SCK */
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 7323f40af..ce89fa959 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -98,7 +98,7 @@
};
};
- sound: sound {
+ sound0: sound@0 {
compatible = "audio-graph-card";
label = "STM32MP1-EV";
routing =
@@ -111,6 +111,42 @@
&dfsdm0_port &dfsdm1_port &dfsdm2_port &dfsdm3_port>;
status = "okay";
};
+
+ sound1: sound@1 {
+ compatible = "audio-graph-card";
+ label = "I2S-DEVICE";
+ dais = <&i2s1_port>;
+ };
+
+ i2s1: audio-controller@44004000 {
+ compatible = "st,stm32h7-i2s";
+ #sound-dai-cells = <0>;
+ reg = <0x44004000 0x400>;
+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+ clock-names = "pclk", "i2sclk", "x8k", "x11k";
+ dmas = <&dmamux1 37 0x400 0x01>,
+ <&dmamux1 38 0x400 0x01>;
+ dma-names = "rx", "tx";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2s1_pins_mx>;
+ status = "okay";
+
+ i2s1_port: port@0 {
+ cpu_endpoint: endpoint {
+ remote-endpoint = <&codec_endpoint>;
+ format = "i2s";
+ };
+ };
+ };
+
+ audio-codec {
+ codec_port: port@0 {
+ codec_endpoint: endpoint {
+ remote-endpoint = <&cpu_endpoint>;
+ };
+ };
+ };
dmic0: dmic-0 {
compatible = "dmic-codec";
@@ -660,12 +696,12 @@
};
};
-&spi1 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&spi1_pins_a>;
- pinctrl-1 = <&spi1_sleep_pins_a>;
- status = "disabled";
-};
+// &spi1 {
+// pinctrl-names = "default", "sleep";
+// pinctrl-0 = <&spi1_pins_a>;
+// pinctrl-1 = <&spi1_sleep_pins_a>;
+// status = "disabled";
+// };
&timers2 {
status = "disabled";
diff --git a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
index 4d641a99c..b44618088 100644
--- a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
@@ -516,9 +516,9 @@
m4_spi1_pins_a: m4-spi1-0 {
pins {
- pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
- <STM32_PINMUX('Z', 2, AF5)>, /* SPI1_MOSI */
- <STM32_PINMUX('Z', 1, AF5)>; /* SPI1_MISO */
+ pinmux = <STM32_PINMUX('Z', 0, RSVD)>, /* SPI1_SCK */
+ <STM32_PINMUX('Z', 2, RSVD)>, /* SPI1_MOSI */
+ <STM32_PINMUX('Z', 1, RSVD)>; /* SPI1_MISO */
};
};
};
diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
index d56e0f984..20f30f416 100644
--- a/arch/arm/boot/dts/stm32mp157c.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -800,31 +800,31 @@
status = "disabled";
};
- spi1: spi@44004000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "st,stm32h7-spi";
- reg = <0x44004000 0x400>;
- interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&rcc SPI1_K>;
- resets = <&rcc SPI1_R>;
- dmas = <&dmamux1 37 0x400 0x01>,
- <&dmamux1 38 0x400 0x01>;
- dma-names = "rx", "tx";
- power-domains = <&pd_core>;
- status = "disabled";
- };
-
- i2s1: audio-controller@44004000 {
- compatible = "st,stm32h7-i2s";
- #sound-dai-cells = <0>;
- reg = <0x44004000 0x400>;
- interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
- dmas = <&dmamux1 37 0x400 0x01>,
- <&dmamux1 38 0x400 0x01>;
- dma-names = "rx", "tx";
- status = "disabled";
- };
+// spi1: spi@44004000 {
+// #address-cells = <1>;
+// #size-cells = <0>;
+// compatible = "st,stm32h7-spi";
+// reg = <0x44004000 0x400>;
+// interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+// clocks = <&rcc SPI1_K>;
+// resets = <&rcc SPI1_R>;
+// dmas = <&dmamux1 37 0x400 0x01>,
+// <&dmamux1 38 0x400 0x01>;
+// dma-names = "rx", "tx";
+// power-domains = <&pd_core>;
+// status = "disabled";
+// };
+
+// i2s1: audio-controller@44004000 {
+// compatible = "st,stm32h7-i2s";
+// #sound-dai-cells = <0>;
+// reg = <0x44004000 0x400>;
+// interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+// dmas = <&dmamux1 37 0x400 0x01>,
+// <&dmamux1 38 0x400 0x01>;
+// dma-names = "rx", "tx";
+// status = "okay";
+// };
spi4: spi@44005000 {
#address-cells = <1>;
And basically I just want to add a new I2S sound device to connect to via the GPIOs to evaluate data.
The patch gets deployed with no problems. However I am getting the Error
[ 2.359377] st,stm32-i2s 44004000.audio-controller: no irq for node 44004000.audio-controller
What is it that I am missing?
Solved! Go to Solution.
2020-07-09 06:56 AM
By the time I got it to work.
In case someone runs into the same problem here is the modified patch-file that appears to work:
diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
index dd796ec03..54ef05294 100644
--- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
@@ -473,7 +473,16 @@
};
};
-
+
+ i2s1_pins_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('A', 15, AF5)>; /* I2S1_WS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
i2s2_pins_a: i2s2-0 {
pins {
pinmux = <STM32_PINMUX('I', 3, AF5)>, /* I2S2_SDO */
@@ -1479,6 +1488,17 @@
};
};
+ i2s1_pins_z_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* I2S1_CK */
+ <STM32_PINMUX('Z', 1, AF5)>, /* I2S1_SDI */
+ <STM32_PINMUX('Z', 2, AF5)>; /* I2S1_SDO */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
spi1_sleep_pins_a: spi1-sleep-0 {
pins {
pinmux = <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI1_SCK */
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 7323f40af..7771dc81e 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -98,7 +98,7 @@
};
};
- sound: sound {
+ sound0: sound@0 {
compatible = "audio-graph-card";
label = "STM32MP1-EV";
routing =
@@ -107,10 +107,16 @@
"IN1LN" , "MICBIAS2",
"DMIC2DAT" , "MICBIAS1",
"DMIC1DAT" , "MICBIAS1";
- dais = <&sai2a_port &sai2b_port &sai4a_port &spdifrx_port
+ dais = <&sai4a_port &spdifrx_port
&dfsdm0_port &dfsdm1_port &dfsdm2_port &dfsdm3_port>;
status = "okay";
};
+
+ sound1: sound@1 {
+ compatible = "audio-graph-card";
+ label = "I2S-DEVICE";
+ dais = <&i2s1_tx_port &i2s1_rx_port>;
+ };
dmic0: dmic-0 {
compatible = "dmic-codec";
@@ -387,6 +393,29 @@
STM32_HDP(7, HDP7_GPOVAL_7))>;
};
+&i2s1 {
+ #clock-cells = <0>;
+ clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+ clock-names = "pclk", "i2sclk", "x8k", "x11k";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2s1_pins_mx>;
+ status = "okay";
+
+ i2s1_tx_port: port@0 {
+ i2s1_tx_endpoint: endpoint {
+ remote-endpoint = <&wm8994_tx_endpoint>;
+ format = "i2s";
+ };
+ };
+
+ i2s1_rx_port: port@1 {
+ i2s1_rx_endpoint: endpoint {
+ remote-endpoint = <&wm8994_rx_endpoint>;
+ format = "i2s";
+ };
+ };
+};
+
&i2c2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c2_pins_a>;
@@ -414,7 +443,7 @@
wlf,ldoena-always-driven;
- clocks = <&sai2a>;
+ clocks = <&i2s1>;
clock-names = "MCLK1";
wlf,gpio-cfg = <0x8101 0xa100 0xa100 0xa100 0xa101 0xa101 0xa100 0xa101 0xa101 0xa101 0xa101>;
@@ -426,14 +455,14 @@
wm8994_tx_port: port@0 {
reg = <0>;
wm8994_tx_endpoint: endpoint {
- remote-endpoint = <&sai2a_endpoint>;
+ remote-endpoint = <&i2s1_tx_endpoint>;
};
};
wm8994_rx_port: port@1 {
reg = <1>;
wm8994_rx_endpoint: endpoint {
- remote-endpoint = <&sai2b_endpoint>;
+ remote-endpoint = <&i2s1_rx_endpoint>;
};
};
};
@@ -572,45 +601,45 @@
};
};
-&sai2 {
- clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_a>;
- pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_a>;
- clock-names = "pclk", "x8k", "x11k";
- status = "okay";
-
- sai2a: audio-controller@4400b004 {
- #clock-cells = <0>;
- dma-names = "tx";
- clocks = <&rcc SAI2_K>;
- clock-names = "sai_ck";
- status = "okay";
-
- sai2a_port: port {
- sai2a_endpoint: endpoint {
- remote-endpoint = <&wm8994_tx_endpoint>;
- format = "i2s";
- mclk-fs = <256>;
- };
- };
- };
-
- sai2b: audio-controller@4400b024 {
- dma-names = "rx";
- clocks = <&rcc SAI2_K>, <&sai2a>;
- clock-names = "sai_ck", "MCLK";
- status = "okay";
-
- sai2b_port: port {
- sai2b_endpoint: endpoint {
- remote-endpoint = <&wm8994_rx_endpoint>;
- format = "i2s";
- mclk-fs = <256>;
- };
- };
- };
-};
+// &sai2 {
+// clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+// pinctrl-names = "default", "sleep";
+// pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_a>;
+// pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_a>;
+// clock-names = "pclk", "x8k", "x11k";
+// status = "okay";
+//
+// sai2a: audio-controller@4400b004 {
+// #clock-cells = <0>;
+// dma-names = "tx";
+// clocks = <&rcc SAI2_K>;
+// clock-names = "sai_ck";
+// status = "okay";
+//
+// sai2a_port: port {
+// sai2a_endpoint: endpoint {
+// remote-endpoint = <&wm8994_tx_endpoint>;
+// format = "i2s";
+// mclk-fs = <256>;
+// };
+// };
+// };
+//
+// sai2b: audio-controller@4400b024 {
+// dma-names = "rx";
+// clocks = <&rcc SAI2_K>, <&sai2a>;
+// clock-names = "sai_ck", "MCLK";
+// status = "okay";
+//
+// sai2b_port: port {
+// sai2b_endpoint: endpoint {
+// remote-endpoint = <&wm8994_rx_endpoint>;
+// format = "i2s";
+// mclk-fs = <256>;
+// };
+// };
+// };
+// };
&sai4 {
clocks = <&rcc SAI4>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
@@ -660,12 +689,12 @@
};
};
-&spi1 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&spi1_pins_a>;
- pinctrl-1 = <&spi1_sleep_pins_a>;
- status = "disabled";
-};
+// &spi1 {
+// pinctrl-names = "default", "sleep";
+// pinctrl-0 = <&spi1_pins_a>;
+// pinctrl-1 = <&spi1_sleep_pins_a>;
+// status = "disabled";
+// };
&timers2 {
status = "disabled";
diff --git a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
index 4d641a99c..b44618088 100644
--- a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
@@ -516,9 +516,9 @@
m4_spi1_pins_a: m4-spi1-0 {
pins {
- pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
- <STM32_PINMUX('Z', 2, AF5)>, /* SPI1_MOSI */
- <STM32_PINMUX('Z', 1, AF5)>; /* SPI1_MISO */
+ pinmux = <STM32_PINMUX('Z', 0, RSVD)>, /* SPI1_SCK */
+ <STM32_PINMUX('Z', 2, RSVD)>, /* SPI1_MOSI */
+ <STM32_PINMUX('Z', 1, RSVD)>; /* SPI1_MISO */
};
};
};
diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
index d56e0f984..b3573d07a 100644
--- a/arch/arm/boot/dts/stm32mp157c.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -823,7 +823,7 @@
dmas = <&dmamux1 37 0x400 0x01>,
<&dmamux1 38 0x400 0x01>;
dma-names = "rx", "tx";
- status = "disabled";
+ status = "okay";
};
spi4: spi@44005000 {
2020-07-07 08:50 AM
And i forgot to add that even when I use the same interrupt line id as SPI1 the error remains
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
to
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
2020-07-09 06:56 AM
By the time I got it to work.
In case someone runs into the same problem here is the modified patch-file that appears to work:
diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
index dd796ec03..54ef05294 100644
--- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
@@ -473,7 +473,16 @@
};
};
-
+
+ i2s1_pins_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('A', 15, AF5)>; /* I2S1_WS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
i2s2_pins_a: i2s2-0 {
pins {
pinmux = <STM32_PINMUX('I', 3, AF5)>, /* I2S2_SDO */
@@ -1479,6 +1488,17 @@
};
};
+ i2s1_pins_z_mx: i2s1_mx-0 {
+ pins {
+ pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* I2S1_CK */
+ <STM32_PINMUX('Z', 1, AF5)>, /* I2S1_SDI */
+ <STM32_PINMUX('Z', 2, AF5)>; /* I2S1_SDO */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
spi1_sleep_pins_a: spi1-sleep-0 {
pins {
pinmux = <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI1_SCK */
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 7323f40af..7771dc81e 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -98,7 +98,7 @@
};
};
- sound: sound {
+ sound0: sound@0 {
compatible = "audio-graph-card";
label = "STM32MP1-EV";
routing =
@@ -107,10 +107,16 @@
"IN1LN" , "MICBIAS2",
"DMIC2DAT" , "MICBIAS1",
"DMIC1DAT" , "MICBIAS1";
- dais = <&sai2a_port &sai2b_port &sai4a_port &spdifrx_port
+ dais = <&sai4a_port &spdifrx_port
&dfsdm0_port &dfsdm1_port &dfsdm2_port &dfsdm3_port>;
status = "okay";
};
+
+ sound1: sound@1 {
+ compatible = "audio-graph-card";
+ label = "I2S-DEVICE";
+ dais = <&i2s1_tx_port &i2s1_rx_port>;
+ };
dmic0: dmic-0 {
compatible = "dmic-codec";
@@ -387,6 +393,29 @@
STM32_HDP(7, HDP7_GPOVAL_7))>;
};
+&i2s1 {
+ #clock-cells = <0>;
+ clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+ clock-names = "pclk", "i2sclk", "x8k", "x11k";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2s1_pins_mx>;
+ status = "okay";
+
+ i2s1_tx_port: port@0 {
+ i2s1_tx_endpoint: endpoint {
+ remote-endpoint = <&wm8994_tx_endpoint>;
+ format = "i2s";
+ };
+ };
+
+ i2s1_rx_port: port@1 {
+ i2s1_rx_endpoint: endpoint {
+ remote-endpoint = <&wm8994_rx_endpoint>;
+ format = "i2s";
+ };
+ };
+};
+
&i2c2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c2_pins_a>;
@@ -414,7 +443,7 @@
wlf,ldoena-always-driven;
- clocks = <&sai2a>;
+ clocks = <&i2s1>;
clock-names = "MCLK1";
wlf,gpio-cfg = <0x8101 0xa100 0xa100 0xa100 0xa101 0xa101 0xa100 0xa101 0xa101 0xa101 0xa101>;
@@ -426,14 +455,14 @@
wm8994_tx_port: port@0 {
reg = <0>;
wm8994_tx_endpoint: endpoint {
- remote-endpoint = <&sai2a_endpoint>;
+ remote-endpoint = <&i2s1_tx_endpoint>;
};
};
wm8994_rx_port: port@1 {
reg = <1>;
wm8994_rx_endpoint: endpoint {
- remote-endpoint = <&sai2b_endpoint>;
+ remote-endpoint = <&i2s1_rx_endpoint>;
};
};
};
@@ -572,45 +601,45 @@
};
};
-&sai2 {
- clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_a>;
- pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_a>;
- clock-names = "pclk", "x8k", "x11k";
- status = "okay";
-
- sai2a: audio-controller@4400b004 {
- #clock-cells = <0>;
- dma-names = "tx";
- clocks = <&rcc SAI2_K>;
- clock-names = "sai_ck";
- status = "okay";
-
- sai2a_port: port {
- sai2a_endpoint: endpoint {
- remote-endpoint = <&wm8994_tx_endpoint>;
- format = "i2s";
- mclk-fs = <256>;
- };
- };
- };
-
- sai2b: audio-controller@4400b024 {
- dma-names = "rx";
- clocks = <&rcc SAI2_K>, <&sai2a>;
- clock-names = "sai_ck", "MCLK";
- status = "okay";
-
- sai2b_port: port {
- sai2b_endpoint: endpoint {
- remote-endpoint = <&wm8994_rx_endpoint>;
- format = "i2s";
- mclk-fs = <256>;
- };
- };
- };
-};
+// &sai2 {
+// clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+// pinctrl-names = "default", "sleep";
+// pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_a>;
+// pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_a>;
+// clock-names = "pclk", "x8k", "x11k";
+// status = "okay";
+//
+// sai2a: audio-controller@4400b004 {
+// #clock-cells = <0>;
+// dma-names = "tx";
+// clocks = <&rcc SAI2_K>;
+// clock-names = "sai_ck";
+// status = "okay";
+//
+// sai2a_port: port {
+// sai2a_endpoint: endpoint {
+// remote-endpoint = <&wm8994_tx_endpoint>;
+// format = "i2s";
+// mclk-fs = <256>;
+// };
+// };
+// };
+//
+// sai2b: audio-controller@4400b024 {
+// dma-names = "rx";
+// clocks = <&rcc SAI2_K>, <&sai2a>;
+// clock-names = "sai_ck", "MCLK";
+// status = "okay";
+//
+// sai2b_port: port {
+// sai2b_endpoint: endpoint {
+// remote-endpoint = <&wm8994_rx_endpoint>;
+// format = "i2s";
+// mclk-fs = <256>;
+// };
+// };
+// };
+// };
&sai4 {
clocks = <&rcc SAI4>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
@@ -660,12 +689,12 @@
};
};
-&spi1 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&spi1_pins_a>;
- pinctrl-1 = <&spi1_sleep_pins_a>;
- status = "disabled";
-};
+// &spi1 {
+// pinctrl-names = "default", "sleep";
+// pinctrl-0 = <&spi1_pins_a>;
+// pinctrl-1 = <&spi1_sleep_pins_a>;
+// status = "disabled";
+// };
&timers2 {
status = "disabled";
diff --git a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
index 4d641a99c..b44618088 100644
--- a/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c-m4-srm.dtsi
@@ -516,9 +516,9 @@
m4_spi1_pins_a: m4-spi1-0 {
pins {
- pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
- <STM32_PINMUX('Z', 2, AF5)>, /* SPI1_MOSI */
- <STM32_PINMUX('Z', 1, AF5)>; /* SPI1_MISO */
+ pinmux = <STM32_PINMUX('Z', 0, RSVD)>, /* SPI1_SCK */
+ <STM32_PINMUX('Z', 2, RSVD)>, /* SPI1_MOSI */
+ <STM32_PINMUX('Z', 1, RSVD)>; /* SPI1_MISO */
};
};
};
diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
index d56e0f984..b3573d07a 100644
--- a/arch/arm/boot/dts/stm32mp157c.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -823,7 +823,7 @@
dmas = <&dmamux1 37 0x400 0x01>,
<&dmamux1 38 0x400 0x01>;
dma-names = "rx", "tx";
- status = "disabled";
+ status = "okay";
};
spi4: spi@44005000 {
2021-08-06 02:57 AM
Hi I am having on sgtl5000 codec on i2s lines,
i2sa_pins_z: i2sz-1 {
pins {
pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* I2S1_CK */
<STM32_PINMUX('Z', 1, AF5)>, /* I2S1_SDI */
<STM32_PINMUX('Z', 2, AF5)>, /* I2S1_SDO */
<STM32_PINMUX('Z', 6, AF5)>; /* I2S1_MCK */
slew-rate = <0>;
drive-push-pull;
bias-disable;
};
};
i2s1_pins_mx: i2s1_mx-0 {
pins {
pinmux = <STM32_PINMUX('A', 15, AF5)>; /* I2S1_WS */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
};
&i2s1 {
#clock-cells = <0>;
clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
clock-names = "pclk", "i2sclk", "x8k", "x11k";
pinctrl-names = "default";
pinctrl-0 = <&i2s1_pins_mx &i2sa_pins_z>;
status = "okay";
};
STill i see a
[ 2.931175] sgtl5000 0-000a: Error reading chip id -6
[ 9.582514] Error: Driver 'sgtl5000' is already registered, aborting...
could you please share your thoughts,