您好!
我们正在使用 TLV320AIC3110编解码器、并且我们已经看到它永远不会进入断电模式、即它永远不会将值0x80写入页1寄存器46 (0x2E)。 我们只会看到其值为0x00或0x01。

这是我们用于编解码器的器件树:
/ {
sound0: sound@0 {
compatible = "simple-audio-card";
simple-audio-card,name = "MySound";
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Headphone", "Headphone Jack",
"Speaker", "Speaker";
simple-audio-card,routing =
"MIC1LP", "Microphone Jack",
"MIC1RP", "Microphone Jack",
"MIC1LP", "MICBIAS",
"MIC1RP", "MICBIAS",
"Headphone Jack", "HPL",
"Headphone Jack", "HPR",
"Speaker", "SPL",
"Speaker", "SPR";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound0_master>;
simple-audio-card,frame-master = <&sound0_master>;
simple-audio-card,bitclock-inversion;
simple-audio-card,convert-rate = <48000>;
sound0_master: simple-audio-card,cpu {
sound-dai = <&i2s1>;
system-clock-frequency = <12000000>;
};
simple-audio-card,codec {
sound-dai = <&codec>;
system-clock-frequency = <12000000>;
};
};
};
&pinctrl {
codec_pins_a: codec_pins_a {
pins1 {
pinmux = <STM32_PINMUX('H', 2, GPIO)>; /* AUDIO_PWR_EN1 */
};
pins2 {
pinmux = <STM32_PINMUX('C', 0, AF6)>, /* CODEC_I2S1_SDO */
<STM32_PINMUX('A', 6, AF5)>, /* CODEC_I2S1_SDI */
<STM32_PINMUX('B', 1, AF5)>, /* CODEC_I2S1_BITCLK / I2S1_CK */
<STM32_PINMUX('B', 0, AF5)>, /* I2S1_MCK */
<STM32_PINMUX('A', 4, AF5)>; /* CODEC_I2S1_WORDCLK / I2S1_WS */
};
};
codec_sleep_pins_a: codec_sleep_pins_a {
pins {
pinmux = <STM32_PINMUX('H', 2, ANALOG)>, /* AUDIO_PWR_EN1 */
<STM32_PINMUX('C', 0, ANALOG)>, /* CODEC_I2S1_SDO */
<STM32_PINMUX('A', 6, ANALOG)>, /* CODEC_I2S1_SDI */
<STM32_PINMUX('B', 1, ANALOG)>, /* CODEC_I2S1_BITCLK / I2S1_CK */
<STM32_PINMUX('B', 0, ANALOG)>, /* I2S1_MCK */
<STM32_PINMUX('A', 4, ANALOG)>; /* CODEC_I2S1_WORDCLK / I2S1_WS */
};
};
};
&i2s1 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&codec_pins_a>;
pinctrl-1 = <&codec_sleep_pins_a>; /* Sleep pins */
clock-names = "pclk", "i2sclk", "x8k", "x11k";
clocks = <&rcc SPI1>,
<&rcc SPI1_K>,
<&scmi_clk CK_SCMI_PLL3_Q>,
<&scmi_clk CK_SCMI_PLL3_R>;
};
&i2c1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c1_pins_a>;
pinctrl-1 = <&i2c1_sleep_pins_a>;
i2c-scl-rising-time-ns = <96>;
i2c-scl-falling-time-ns = <3>;
clock-frequency = <100000>;
status = "okay";
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
codec: codec@18 {
compatible = "ti,tlv320aic3110";
reg = <0x18>;
#sound-dai-cells = <0>;
status = "okay";
reset-gpios = <&gpiof 6 GPIO_ACTIVE_LOW>;
ai31xx-micbias-vg = <MICBIAS_2_0V>;
// ai31xx-ocmv = <3>;
/* Regulators */
HPVDD-supply = <&scmi_v3v3_sw>; /* 3V3_CODEC */
SPRVDD-supply = <&v5v0_ao>; /* 5V0_CODEC */
SPLVDD-supply = <&v5v0_ao>; /* 5V0_CODEC */
AVDD-supply = <&scmi_v3v3_sw>; /* 3V3_CODEC */
IOVDD-supply = <&scmi_v3v3_sw>; /* 3V3_CODEC */
DVDD-supply = <&scmi_v1v8_periph>; /* 1V8_CODEC */
};
};
您知道这里的问题是什么、我该怎么做才能解决这个问题吗?
大概、在有播放一些音频的请求之前、编解码器应该处于断电模式、对吧?
谢谢你。