在设备树中配置RK3568芯片的I2S接口和tlv320dac3100音频芯片的配置,包括I2S接口和MCLK的连接。以下是一个可能的设备树配置示例:

&i2s3 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&i2s3_pins>;

    tlv320dac3100: codec@1a {
        compatible = "ti,tlv320dac3100";
        reg = <0x1a>;
        reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
        clocks = <&cru SCLK_I2S3>;
        clock-names = "mclk";
        VDD-supply = <&vcc33>;
        VIO-supply = <&vcc18>;
    };
};

&cru {
    SCLK_I2S3: i2s3_clk {
        #clock-cells = <0>;
        compatible = "rockchip,rk3568-cru-clk";
        clock-output-names = "i2s3";
        clocks = <&cru SCLK_I2S3_MUX>;
    };

    SCLK_I2S3_MUX: mux {
        #clock-cells = <1>;
        compatible = "rockchip,rk3568-cru-clk-mux";
        clocks = <&cru SCLK_PLL>;
        clock-output-names = "i2s3_mux";
        mux-mask = <0x1>;
        mux-value = <0x0>;
        pinctrl-names = "default";
        pinctrl-0 = <&i2s3_mux_pins>;
        rockchip,grf = <&grf>;
        rockchip,pmu = <&pmugrf>;
    };
};

&grf {
    i2s3_mux_pins: i2s3-mux-pins {
        rockchip,pins = <RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
    };
};

&i2c2 {
    status = "okay";

    tlv320dac3100: codec@18 {
        compatible = "ti,tlv320dac3100";
        reg = <0x18>;
        reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
        VDD-supply = <&vcc33>;
        VIO-supply = <&vcc18>;
    };
};

&vcc33 {
    status = "okay";
};

&vcc18 {
    status = "okay";
};

在这个例子中,设备树中的 &i2s3 节点定义了RK3568芯片的I2S3接口,该接口连接到了tlv320dac3100音频芯片。在 &i2s3 节点中,配置了I2S接口的引脚控制和tlv320dac3100音频芯片的设备属性,如寄存器地址、复位GPIO、时钟和电源供应。

同时,需要在 &cru 节点中配置I2S3的时钟源和时钟分频。在这个例子中,使用了RK3568芯片的时钟控制器(cru)来设置I2S3的时钟源为PLL,时钟输出名称为 i2s3

最后,在设备树中还需要定义引脚控制器(grf)的配置,以及tlv320dac3100音频芯片的I2C接口配置。在这个例子中,使用了RK3568芯片的GPIO引脚配置(grf)来定义I2S3的引脚配置,以及I2C接口的配置

RK3568芯片i2s3外接tlv320dac3100音频芯片RK3568输出MCLK给tlv320dac3100音频芯片设备树该怎么配置?

原文地址: https://www.cveoy.top/t/topic/h6if 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录