Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn) problems

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Analog Audio PLL control Register (CCM_ANALOG_PLL_AUDIOn) problems

1,250 次查看
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 回复数

1,242 次查看
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 项奖励
回复

1,238 次查看
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 项奖励
回复