[PATCH v2 0/12] Those patches is used for dw_hdmi audio support
Yang Kuankuan
ykk at rock-chips.com
Mon Feb 2 05:02:56 PST 2015
On 01/31/2015 07:00 AM, Russell King - ARM Linux wrote:
> On Fri, Jan 30, 2015 at 06:23:51AM -0500, Yakir Yang wrote:
>> We found Designware hdmi driver only support audio clock config, we can not play sound through it.
>> To add Designware HDMI Audio support, we make those patch set:
>> 1): modify n/cts config order, according to dw_hdmi document.
>> 2): add Audio Sample Channel Status config interfaces to dw_hdmi driver.
>> 3): add audio support for more display resolutions(eg. 800x600).
>> 4): add audio support for No-CEA display resolutions.
>> 5): fixed dw_hdmi irq bug, add irq control to suspend/resume interfaces.
>> 6): add suspend/resume callback for dw_hdmi rockchip driver.
>> 7): filter interlace mode in rockchip vop driver.
>> 8): add hdmi audio config interfaces to dw_hdmi driver.
>> 9): creat "dw_hdmi-audio" platform device in dw_hdmi driver.
>> 10): add codec driver for hdmi audio, callback dw_hdmi audio config functions.
>> 11): add sound driver for hdmi audio, creat hdmi audio sound card.
>> 12): add dt-bings file and add hdmi_audio node to corresponding dt file.
> I think the overall issue with this patch is working out how to support
> both the iMX6 version of this IP, and the Rockchip version of the IP.
>
> These two hardware IPs seem to be configured at synthesis time with
> entirely different audio architectures, which change which registers
> are available, and sometimes which bits in the registers are present,
> which makes it more difficult to come up with a unified audio driver.
>
> Also, I think that it would be a good idea to start documenting which
> registers are available in which versions of the IP in dw_hdmi.h,
> otherwise I can see that it's going to be very easy for someone to
> assume that some register or bit which is available in one IP is
> present on all.
>
> The CONFIGx_ID register values for the iMX6 SoC are:
>
> CONFIG0_ID 0x8f
> CONFIG1_ID 0x01
> CONFIG2_ID 0xf2
> CONFIG3_ID 0x02
>
> CONFIG0_ID appears to contain bits which indicate whether the IP
> supports I2S and SPDIF mode. Presumably your IP has bit 4 set for I2S,
> and maybe bit 5 for SPDIF?
>
> CONFIG1_ID bit 0 indicates whether the AHB interface is present, which
> is presumably zero for your IP?
>
> CONFIG3_ID bit 0 indicates whether "generic parallel audio, GPAUD" is
> present.
>
> Could you provide (in addition to the values printed in the message I
> requested in another reply) the values of the CONFIGx_ID registers
> please, and whether any of the bits in there are documented as being
> applicable to audio.
>
> Thanks.
The IP version on rk3288 : dwhdmi-rockchip ff980000.hdmi: Detected HDMI
controller 0x20:0xa:0xa0:0xc1
The CONFIGx_ID register values for the rk3288 soc are:
CONFIG0_ID 0xbf
CONFIG1_ID 0x22
CONFIG2_ID 0xc2
CONFIG3_ID 0x0
After looking at iMX6 DQRM, i found only CONFIG1_ID & CONFIG3_ID are
different.
CONFIG1_ID bit 5 indicates whether the HDMI2.0 is present. Bit 1
indicates whether
configuration interface is APB interface.
CONFIG3_ID bit 3 indicates whether the AHBAUDDMA is present. Bit 1
indicates whether
Generic Parallel Audio is present.
More information about the dri-devel
mailing list