STM32MP135: SAI missing clock error at boot time
I generated the device tree for the STM32MP135-DK to include the tlv320aic31xx audio codec connected to the sai1a port, but during the boot I get the following errors.
[ 90.094282] st,stm32-sai 4400a000.sai: missing x8k parent clock: -2
[ 90.155023] st,stm32-sai: probe of 4400a000.sai failed with error -2
The audio codec is connected to one speaker without microphones.
How can I solve the problem?
Below is an excerpt from the device tree:
sound: sound {
compatible = "audio-graph-card";
label = "STM32MP135F-DK";
routing = "Playback", "MCLK1";
dais = <&sai1a_port>;
status = "okay";
};
&i2c1{
tlv320aic31xx: tlv320aic31xx@18 {
compatible = "ti,tlv320aic3120";
reg = <0x18>;
ai31xx-micbias-vg = <MICBIAS_2_5V>;
reset-gpios = <&gpioe 5 GPIO_ACTIVE_LOW>;
HPVDD-supply = <&scmi_vdd>;
SPRVDD-supply = <&scmi_vdd>;
SPLVDD-supply = <&scmi_vdd>;
AVDD-supply = <&scmi_vdd>;
IOVDD-supply = <&scmi_vdd>;
DVDD-supply = <&scmi_v1v8_periph>;
clocks = <&sai1a>;
clock-names = "MCLK1";
ports {
#address-cells = <1>;
#size-cells = <0>;
tlv320aic31xx_tx_port: port@0 {
reg = <0>;
tlv320aic31xx_tx_endpoint: endpoint {
remote-endpoint = <&sai1a_endpoint>;
};
};
};
};
};
&sai1{
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sai1a_pins_mx>;
pinctrl-1 = <&sai1a_sleep_pins_mx>;
status = "okay";
/* USER CODE BEGIN sai1 */
clocks = <&rcc SAI1>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
clock-names = "pclk", "x8k", "x11k";
/* USER CODE END sai1 */
sai1a:audio-controller@4400a004{
status = "okay";
/* USER CODE BEGIN sai1a */
compatible = "st,stm32-sai-sub-a";
#clock-cells = <0>;
dma-names = "tx";
clocks = <&rcc SAI1_K>;
clock-names = "sai_ck";
sai1a_port: port {
sai1a_endpoint: endpoint {
remote-endpoint = <&tlv320aic31xx_tx_endpoint>;
format = "i2s";
mclk-fs = <512>;
};
};
/* USER CODE END sai1a */
};
};
