RK3568芯片i2s3外接tlv320dac3100音频芯片RK3568输出MCLK给tlv320dac3100音频芯片设备树该怎么配置?
在设备树中配置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接口的配置
原文地址: https://www.cveoy.top/t/topic/h6if 著作权归作者所有。请勿转载和采集!