主题中讨论的其他器件: TLV320AIC3104
您好!
我们的客户正在使用 AM4378使用 TI-LinuxSDK (v7.03.0.005)进行开发。
他们正在使用 AudioCodec (TLV320AIC3104)、并确认当 MCLK 为24MHz 时、他们可以使用以下 DTS 输出44.1kHz 音频数据。
< device tree > sound0: sound0 { compatible = "simple-audio-card"; simple-audio-card,name = "TEST"; simple-audio-card,widgets = "Line", "Line Out"; simple-audio-card,routing = "Line Out", "LLOUT", "Line Out", "RLOUT"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&sound0_master>; simple-audio-card,frame-master = <&sound0_master>; simple-audio-card,cpu { sound-dai = <&mcasp1>; system-clock-frequency = <24000000>; }; sound0_master: simple-audio-card,codec { sound-dai = <&tlv320aic3104>; system-clock-frequency = <24000000>; }; }; &i2c2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c2_pins>; tlv320aic3104: tlv320aic3104@18 { #sound-dai-cells = <0>; compatible = "ti,tlv320aic3104"; reg = <0x18>; status = "okay"; reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; IOVDD-supply = <&dummy_vcodec_vdd>; AVDD-supply = <&dummy_vcodec_vdd>; DRVDD-supply = <&dummy_vcodec_vdd>; DVDD-supply = <&vldo1>; }; }; &mcasp1 { #sound-dai-cells = <0>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&mcasp1_pins>; pinctrl-1 = <&mcasp1_sleep_pins>; status = "okay"; op-mode = <0>; tdm-slots = <2>; serial-dir = < 0 1 0 0 >; tx-num-evt = <32>; rx-num-evt = <32>; };
他们正在尝试将 AudioCodec 的 MCLK 更改为12MHz (输出为44.1kHz)。
他们现在想通过 DeviceTree、PRCM_CM_CLKOUT1_CTRL 寄存器中的 CLKOUT1SEL0DIV (位[21-20])将 PRCM 输出设置为12MHz。
它们将分配的时钟、分配的时钟父级和分配的时钟速率添加到器件树和中的 tlv320aic3104属性
他们尝试将 OSC 时钟(24MHz)设置为 OSC 时钟(12MHz)的1/2。
tlv320aic3104: tlv320aic3104@18 { #sound-dai-cells = <0>; compatible = "ti,tlv320aic3104"; reg = <0x18>; status = "okay"; assigned-clocks = <&clkout1_mux_ck>; <-- Add assigned-clock-parents = <&clkout1_osc_div_ck>; <-- Add assigned-clock-rates = <12000000>; <-- Add reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; IOVDD-supply = <&dummy_vcodec_vdd>; AVDD-supply = <&dummy_vcodec_vdd>; DRVDD-supply = <&dummy_vcodec_vdd>; DVDD-supply = <&vldo1>; };
他们假定通过这种修改、他们可以将 PRCM_CM_CLKOUT1_CTRL 寄存器中的 CLKOUT1SEL0DIV (位[21-20])设置为 B01、但它仍保持在其默认值(B00)。
设置位置或内容是否出错?
此致、
库吉·西加塔