Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn) problems

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn) problems

747件の閲覧回数
zee_z
Contributor III

I am wondering about the Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn) register.

It is defined here:

i.MX 6Dual/6Quad Applications Processor Reference Manual, Rev. 6, 05/2020

18.7.8 Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn)

The problem I have is the following:

The first 7 bits are the integer part of the multiplier, and in the description of this bit array it says:

DIV_SELECT - This field controls the PLL loop divider. Valid range for DIV_SELECT divider value: 27~54.

I am able to write in this area value of 6, which is way below the allowed range.

Why it does allow the rate of 6 (with the fraction it is 6.144), and does the following:

To explain more directly: 6 << 27!!!

pll4_bypass_src 0 0 24000000 0 0
    pll4 0 0 147456000 0 0
        pll4_bypass 0 0 147456000 0 0
            pll4_audio 0 0 147456000 0 0

Any logical explanation of this significant problem???

zee_z

_______

 

0 件の賞賛
返信
2 返答(返信)

739件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

Hi Zoran

 

>I am able to write in this area value of 6, which is way below the allowed range.

>Why it does allow the rate of 6..

 

it is responsibility of programmer to write correct value, from hardware there is no control

mechanism. PLL output frequency is described in sect.18.5.1.3.4 Audio PLL (PLL4):

PLL output frequency = Fref * (DIV_SELECT + NUM/DENOM)

i.MX 6Dual/6Quad Applications Processor Reference Manual

 

Best regards
igor

0 件の賞賛
返信

735件の閲覧回数
zee_z
Contributor III

Privet Igor,

This is not a viable/correct solution, I should say. There are two of them, how to properly handle such a situation.

1. By HW. Your HW design team should put the HW exception handling DIV_SELECT. Anything which is out of range [27..54] should produce an internal exception, either as warning, either as fatal exception. I would go with the first proposal, adding a KERN_WARNING message to dmesg.

2. By SW. The CCM driver should inspect the DIV_SELECT range upon filling it, and if out of range [27..54] to announce the proper KERN_WARNING message to dmesg.

Zee

_______

0 件の賞賛
返信