Platform: RK3399
OS: Android 7.1 industry
Kernel: v4.4.83
HDMI显示有两套流程框架。一套是基于DRM显示标准的HDMI框架;另外一套是RK自定义的HDMI框架。
那么对应地,HDMI Audio部分也对应的是有两套流程框架。
DRM标准HDMI框架
显示部分配置:
hdmi: hdmi@ff940000 {
compatible = "rockchip,rk3399-dw-hdmi";
reg = <0x0 0xff940000 0x0 0x20000>;
reg-io-width = <4>;
rockchip,grf = <&grf>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_i2c_xfer>;
power-domains = <&power RK3399_PD_HDCP>;
interrupts = ;
clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>,
<&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>,
<&cru SCLK_HDMI_CEC>;
clock-names = "iahb", "isfr", "vpll", "grf", "cec";
status = "disabled";
......
};
音频部分配置:
hdmi_codec: hdmi-codec {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "HDMI-CODEC";
simple-audio-card,cpu {
sound-dai = <&i2s2>;
};
simple-audio-card,codec {
sound-dai = <&hdmi>;
};
};
RK HDMI框架
显示部分配置:
hdmi_rk_fb: hdmi-rk-fb@ff940000 {
status = "disabled";
compatible = "rockchip,rk3399-hdmi";
reg = <0x0 0xff940000 0x0 0x20000>;
interrupts = ,
;
clocks = <&cru PCLK_HDMI_CTRL>,
<&cru HCLK_HDCP>,
<&cru SCLK_HDMI_CEC>,
<&cru PLL_VPLL>,
<&cru SCLK_HDMI_SFR>;
clock-names = "pclk_hdmi",
"hdcp_clk_hdmi",
"cec_clk_hdmi",
"dclk_hdmi_phy",
"sclk_hdmi_sfr";
resets = <&cru SRST_HDMI_CTRL>;
reset-names = "hdmi";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&hdmi_i2c_xfer &hdmi_cec>;
pinctrl-1 = <&i2c3_gpio>;
rockchip,grf = <&grf>;
power-domains = <&power RK3399_PD_HDCP>;
};
音频部分配置:
hdmi_sound: hdmi-sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,hdmi";
simple-audio-card,cpu {
sound-dai = <&i2s2>;
};
simple-audio-card,codec {
sound-dai = <&dw_hdmi_audio>;
};
};
Platform: RK3399
OS: Android 7.1 industry
Kernel: v4.4.83
HDMI显示有两套流程框架。一套是基于DRM显示标准的HDMI框架;另外一套是RK自定义的HDMI框架。
那么对应地,HDMI Audio部分也对应的是有两套流程框架。
DRM标准HDMI框架
显示部分配置:
hdmi: hdmi@ff940000 {
compatible = "rockchip,rk3399-dw-hdmi";
reg = <0x0 0xff940000 0x0 0x20000>;
reg-io-width = <4>;
rockchip,grf = <&grf>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_i2c_xfer>;
power-domains = <&power RK3399_PD_HDCP>;
interrupts = ;
clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>,
<&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>,
<&cru SCLK_HDMI_CEC>;
clock-names = "iahb", "isfr", "vpll", "grf", "cec";
status = "disabled";
......
};
音频部分配置:
hdmi_codec: hdmi-codec {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "HDMI-CODEC";
simple-audio-card,cpu {
sound-dai = <&i2s2>;
};
simple-audio-card,codec {
sound-dai = <&hdmi>;
};
};
RK HDMI框架
显示部分配置:
hdmi_rk_fb: hdmi-rk-fb@ff940000 {
status = "disabled";
compatible = "rockchip,rk3399-hdmi";
reg = <0x0 0xff940000 0x0 0x20000>;
interrupts = ,
;
clocks = <&cru PCLK_HDMI_CTRL>,
<&cru HCLK_HDCP>,
<&cru SCLK_HDMI_CEC>,
<&cru PLL_VPLL>,
<&cru SCLK_HDMI_SFR>;
clock-names = "pclk_hdmi",
"hdcp_clk_hdmi",
"cec_clk_hdmi",
"dclk_hdmi_phy",
"sclk_hdmi_sfr";
resets = <&cru SRST_HDMI_CTRL>;
reset-names = "hdmi";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&hdmi_i2c_xfer &hdmi_cec>;
pinctrl-1 = <&i2c3_gpio>;
rockchip,grf = <&grf>;
power-domains = <&power RK3399_PD_HDCP>;
};
音频部分配置:
hdmi_sound: hdmi-sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,hdmi";
simple-audio-card,cpu {
sound-dai = <&i2s2>;
};
simple-audio-card,codec {
sound-dai = <&dw_hdmi_audio>;
};
};
举报