• Chen-Yu Tsai's avatar
    clk: sunxi-ng: a80: Remodel CPU cluster PLLs as N-type multiplier clocks · 25eb035c
    Chen-Yu Tsai authored
    The CPU cluster PLLs on the A80 are NP clocks that are atypical in two ways:
    
      - The P factor is 1 bit wide, and translates to a /1 or /4 divider.
    
      - The P factor should only be used for output frequencies lower than
        288 MHz. The N factor has a lower limit of 12, which likely contributed
        to this extra divider.
    
    According to the user manual, the clocks can only go as low as 200 MHz.
    The vendor BSP kernel does not even define operating points below 360
    MHz for these clocks. The lower end for cpufreq in the vendor kernel is
    even higher. The mainline Linux kernel doesn't support cpufreq for the
    A80 at the moment. This means the lower frequencies are untested, and
    will likely remain unused.
    
    The new sunxi-ng style clocks don't support the quirks listed above.
    Instead of trying to work the quirks in for something of little usage,
    we re-model the clocks into N-type multipler clocks, with P fixed at 1.
    At probe time we check if P is set to 4, and fix it up if needed. This
    is highly unlikely though.
    
    Fixes: b8eb71dc ("clk: sunxi-ng: Add A80 CCU")
    Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
    Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
    25eb035c
ccu-sun9i-a80.c 37 KB