This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM68A:在 Linux 中使用音频基准时钟0

Guru**** 2455560 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1484114/am68a-using-audio-reference-clock-0-in-linux

器件型号:AM68A

工具与软件:

各位专家、您好!

我们有一个使用 AUDIO_EXT_REFCLK0的定制设计。

在最新的 Linux SDK 中、我可以在 k3-j721s2-main.dtsi 中看到 audio_refclk1、我猜该文件适用于 AUDIO_EXT_REFCLK1。 如果是正确的、有人可以向我提供如何在 Linux 中使用 AUDIO_EXT_REFCLK0的信息吗?

提前感谢、

Frank

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frank、

    我们将在下周早些时候与您联系。  

    谢谢!  

    基尔西  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frank、

    您将需要创建一个节点、设置引脚复用、并将编解码器的时钟设置为使用 audio_refclk0。 我已经在 j721s2的器件树文件中附加了 audio_refclk1的代码片段。

    audio_refclk1的参考节点(k3-j721s2-main.dtsi):

    audio_refclk1: clock-controller@42e4 {
    	compatible = "ti,am62-audio-refclk";
    	reg = <0x42e4 0x4>;
    	clocks = <&k3_clks 157 299>;
    	assigned-clocks = <&k3_clks 157 299>;
    	assigned-clock-parents = <&k3_clks 157 328>;
    	#clock-cells = <0>;
    };

    audio_refclk1的参考引脚多路复用(k3-j721s2-common-proc-board.dts):

    audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
    	pinctrl-single,pins = <
    		J721S2_IOPAD(0x078, PIN_OUTPUT, 1) /* (Y25) MCAN2_RX.AUDIO_EXT_REFCLK1 */
    	>;
    };

    audio_refclk1的参考编解码器(k3-j721s2-common-proc-board.dts):

    &k3_clks {
    	/* Confiure AUDIO_EXT_REFCLK1 pin as output */
    	pinctrl-names = "default";
    	pinctrl-0 = <&audio_ext_refclk1_pins_default>;
    };
    
    &main_i2c3 {
        ...
        pcm3168a_1: audio-codec@44 {
    		compatible = "ti,pcm3168a";
    		reg = <0x44>;
    		#sound-dai-cells = <1>;
    		reset-gpios = <&exp3 0 GPIO_ACTIVE_LOW>;
    		/* C_AUDIO_REFCLK1 -> MCAN2_RX (Y25) */
    		clocks = <&audio_refclk1>;
    		clock-names = "scki";
    		VDD1-supply = <&vsys_3v3>;
    		VDD2-supply = <&vsys_3v3>;
    		VCCAD1-supply = <&vsys_5v0>;
    		VCCAD2-supply = <&vsys_5v0>;
    		VCCDA1-supply = <&vsys_5v0>;
    		VCCDA2-supply = <&vsys_5v0>;
    	};
    };

    节点中的时钟标识符(分配的时钟和分配的时钟父节点)可以在以下位置找到: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html 

    此致!
    Jared

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jared:

    我已经实现了 devicetree 节点。

    感谢您对时钟的澄清。

    但是、audio_refclkX 节点中的寄存器值("0x42e4 0x4")意味着什么?

    此致、

    Frank

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frank、

    这是 CTRL_MMR 中对应 AUDIO_refclk1的地址(和大小)。 您 可以在 TRM 寄存器电子表格中找到相关信息。 器件树中的基址是0x00104000而不是 0x00100000、因此该值不是0x82e4的原因。

    AUDIO_refclk0为:

    reg = <0x42e0 0x4>;

    此致!
    Jared