cancel
Showing results for 
Search instead for 
Did you mean: 

Query on using PCM1754 DAC in STM32MP135 DK for Audio output

ravichandra_t
Associate III

Hi,

Is it possible to utilize the PCM1754 DAC as a Sound card with the ALSA Framework on OpenSTLinux?
According to the documentation, the PCM1754 functions as a Hardware-controlled DAC, eliminating the need for additional drivers. Therefore, is it necessary to develop custom drivers for this particular DAC if we are using linux as OS?

If it is possible, are there any references for configuring device tree files and sound card configuration to facilitate this setup?

 

5 REPLIES 5
ravichandra_t
Associate III

@Erwan SZYMANSKI   any information on this?

AScha.3
Principal III

hi,

where you connect this dac ? and which SCK ?

maybe you can use the alsa definition from rasperry... but almost sure, you have to adapt it -> edit /etc/modules/ and /etc/modprobe.d/

AScha3_0-1690189830099.png

 

 

If you feel a post has answered your question, please click "Accept as Solution".
ravichandra_t
Associate III

@AScha.3  We are connecting the DAC to I2S1 port of STM32MP135

again :

>and which SCK ?

dac needs sync masterclk = SCK

If you feel a post has answered your question, please click "Accept as Solution".
ravichandra_t
Associate III

Please find the details

i2s1_pins_mx: i2s1_mx-0 {
		pins {
			pinmux = <STM32_PINMUX('A', 4, AF5)>, /* I2S1_WS */
					 <STM32_PINMUX('B', 0, AF5)>, /* I2S1_MCK */
					 <STM32_PINMUX('C', 0, AF6)>, /* I2S1_SDO */
					 <STM32_PINMUX('C', 3, AF6)>; /* I2S1_CK */
			bias-disable;
			drive-push-pull;
			slew-rate = <1>;
		};
	};

	i2s1_sleep_pins_mx: i2s1_sleep_mx-0 {
		pins {
			pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* I2S1_WS */
					 <STM32_PINMUX('B', 0, ANALOG)>, /* I2S1_MCK */
					 <STM32_PINMUX('C', 0, ANALOG)>, /* I2S1_SDO */
					 <STM32_PINMUX('C', 3, ANALOG)>; /* I2S1_CK */
		};
	};

Clocks:

clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&scmi_clk CK_SCMI_PLL3_Q>, <&scmi_clk CK_SCMI_PLL3_R>;
clock-names = "pclk", "i2sclk", "x8k", "x11k";