SmartAudio/lichee/linux-4.9/drivers/clk/sunxi/clk-sun50iw8_tbl.c

627 lines
24 KiB
C
Executable File

/*
* Copyright (C) 2016 Allwinnertech
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Adjustable factor-based clock implementation
*/
#include "clk-sun50iw8.h"
/*
* freq table from hardware, need follow rules
* 1) each table named as
* factor_pll1_tbl
* factor_pll2_tbl
* ...
* 2) for each table line
* a) follow the format PLLx(n, k, m, p, d1, d2, freq), and keep the
* factors order
* b) if any factor not used, skip it
* c) the factor is the value to write registers, not means factor + 1
*
* example
* PLL1(9, 0, 0, 2, 60000000) means PLL1(n, k, m, p, freq)
* PLLVIDEO0(3, 0, 96000000) means PLLVIDEO0(n, m, freq)
*
*/
/* PLLCPU(n, m, p, freq) F_N8X8_M0X2_P16x2 */
struct sunxi_clk_factor_freq factor_pllcpu_tbl[] = {
PLLCPU(11, 2, 72000000U),
PLLCPU(13, 2, 84000000U),
PLLCPU(15, 2, 96000000U),
PLLCPU(17, 2, 108000000U),
PLLCPU(19, 2, 120000000U),
PLLCPU(21, 2, 132000000U),
PLLCPU(23, 2, 144000000U),
PLLCPU(25, 2, 156000000U),
PLLCPU(27, 2, 168000000U),
PLLCPU(29, 2, 180000000U),
PLLCPU(31, 2, 192000000U),
PLLCPU(33, 2, 204000000U),
PLLCPU(35, 2, 216000000U),
PLLCPU(37, 2, 228000000U),
PLLCPU(39, 2, 240000000U),
PLLCPU(41, 2, 252000000U),
PLLCPU(43, 2, 264000000U),
PLLCPU(45, 2, 276000000U),
PLLCPU(11, 0, 288000000U),
PLLCPU(24, 1, 300000000U),
PLLCPU(12, 0, 312000000U),
PLLCPU(26, 1, 324000000U),
PLLCPU(13, 0, 336000000U),
PLLCPU(28, 1, 348000000U),
PLLCPU(14, 0, 360000000U),
PLLCPU(30, 1, 372000000U),
PLLCPU(15, 0, 384000000U),
PLLCPU(32, 1, 396000000U),
PLLCPU(16, 0, 408000000U),
PLLCPU(34, 1, 420000000U),
PLLCPU(17, 0, 432000000U),
PLLCPU(36, 1, 444000000U),
PLLCPU(18, 0, 456000000U),
PLLCPU(38, 1, 468000000U),
PLLCPU(19, 0, 480000000U),
PLLCPU(40, 1, 492000000U),
PLLCPU(20, 0, 504000000U),
PLLCPU(42, 1, 516000000U),
PLLCPU(21, 0, 528000000U),
PLLCPU(44, 1, 540000000U),
PLLCPU(22, 0, 552000000U),
PLLCPU(46, 1, 564000000U),
PLLCPU(23, 0, 576000000U),
PLLCPU(48, 1, 588000000U),
PLLCPU(24, 0, 600000000U),
PLLCPU(50, 1, 612000000U),
PLLCPU(25, 0, 624000000U),
PLLCPU(52, 1, 636000000U),
PLLCPU(26, 0, 648000000U),
PLLCPU(54, 1, 660000000U),
PLLCPU(27, 0, 672000000U),
PLLCPU(56, 1, 684000000U),
PLLCPU(28, 0, 696000000U),
PLLCPU(58, 1, 708000000U),
PLLCPU(29, 0, 720000000U),
PLLCPU(60, 1, 732000000U),
PLLCPU(30, 0, 744000000U),
PLLCPU(62, 1, 756000000U),
PLLCPU(31, 0, 768000000U),
PLLCPU(64, 1, 780000000U),
PLLCPU(32, 0, 792000000U),
PLLCPU(66, 1, 804000000U),
PLLCPU(33, 0, 816000000U),
PLLCPU(68, 1, 828000000U),
PLLCPU(34, 0, 840000000U),
PLLCPU(70, 1, 852000000U),
PLLCPU(35, 0, 864000000U),
PLLCPU(72, 1, 876000000U),
PLLCPU(36, 0, 888000000U),
PLLCPU(74, 1, 900000000U),
PLLCPU(37, 0, 912000000U),
PLLCPU(76, 1, 924000000U),
PLLCPU(38, 0, 936000000U),
PLLCPU(78, 1, 948000000U),
PLLCPU(39, 0, 960000000U),
PLLCPU(80, 1, 972000000U),
PLLCPU(40, 0, 984000000U),
PLLCPU(82, 1, 996000000U),
PLLCPU(41, 0, 1008000000U),
PLLCPU(84, 1, 1020000000U),
PLLCPU(42, 0, 1032000000U),
PLLCPU(86, 1, 1044000000U),
PLLCPU(43, 0, 1056000000U),
PLLCPU(88, 1, 1068000000U),
PLLCPU(44, 0, 1080000000U),
PLLCPU(90, 1, 1092000000U),
PLLCPU(45, 0, 1104000000U),
PLLCPU(92, 1, 1116000000U),
PLLCPU(46, 0, 1128000000U),
PLLCPU(94, 1, 1140000000U),
PLLCPU(47, 0, 1152000000U),
PLLCPU(96, 1, 1164000000U),
PLLCPU(48, 0, 1176000000U),
PLLCPU(98, 1, 1188000000U),
PLLCPU(49, 0, 1200000000U),
PLLCPU(100, 1, 1212000000U),
PLLCPU(50, 0, 1224000000U),
PLLCPU(102, 1, 1236000000U),
PLLCPU(104, 1, 1260000000U),
PLLCPU(106, 1, 1284000000U),
PLLCPU(108, 1, 1308000000U),
PLLCPU(110, 1, 1332000000U),
PLLCPU(112, 1, 1356000000U),
PLLCPU(114, 1, 1380000000U),
PLLCPU(116, 1, 1404000000U),
PLLCPU(118, 1, 1428000000U),
PLLCPU(120, 1, 1452000000U),
PLLCPU(122, 1, 1476000000U),
PLLCPU(124, 1, 1500000000U),
PLLCPU(126, 1, 1524000000U),
PLLCPU(128, 1, 1548000000U),
PLLCPU(130, 1, 1572000000U),
PLLCPU(132, 1, 1596000000U),
PLLCPU(134, 1, 1620000000U),
PLLCPU(136, 1, 1644000000U),
PLLCPU(138, 1, 1668000000U),
PLLCPU(140, 1, 1692000000U),
PLLCPU(142, 1, 1716000000U),
PLLCPU(144, 1, 1740000000U),
PLLCPU(146, 1, 1764000000U),
PLLCPU(148, 1, 1788000000U),
PLLCPU(150, 1, 1812000000U),
PLLCPU(152, 1, 1836000000U),
PLLCPU(154, 1, 1860000000U),
PLLCPU(156, 1, 1884000000U),
PLLCPU(158, 1, 1908000000U),
PLLCPU(160, 1, 1932000000U),
PLLCPU(162, 1, 1956000000U),
PLLCPU(164, 1, 1980000000U),
PLLCPU(166, 1, 2004000000U),
PLLCPU(168, 1, 2028000000U),
PLLCPU(170, 1, 2052000000U),
PLLCPU(172, 1, 2076000000U),
PLLCPU(174, 1, 2100000000U),
PLLCPU(176, 1, 2124000000U),
PLLCPU(178, 1, 2148000000U),
PLLCPU(180, 1, 2172000000U),
PLLCPU(182, 1, 2196000000U),
PLLCPU(184, 1, 2220000000U),
PLLCPU(186, 1, 2244000000U),
PLLCPU(188, 1, 2268000000U),
PLLCPU(190, 1, 2292000000U),
PLLCPU(192, 1, 2316000000U),
PLLCPU(194, 1, 2340000000U),
PLLCPU(196, 1, 2364000000U),
PLLCPU(198, 1, 2388000000U),
PLLCPU(200, 1, 2412000000U),
PLLCPU(202, 1, 2436000000U),
PLLCPU(204, 1, 2460000000U),
PLLCPU(206, 1, 2484000000U),
PLLCPU(208, 1, 2508000000U),
PLLCPU(210, 1, 2532000000U),
PLLCPU(212, 1, 2556000000U),
PLLCPU(106, 0, 2568000000U),
};
/*n m1 m0 freq */
/* PLLDDR(n, d1, d2, freq) F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllddr_tbl[] = {
PLLDDR(23, 0, 1, 288000000U),
PLLDDR(48, 1, 1, 294000000U),
PLLDDR(24, 0, 1, 300000000U),
PLLDDR(50, 1, 1, 306000000U),
PLLDDR(25, 0, 1, 312000000U),
PLLDDR(52, 1, 1, 318000000U),
PLLDDR(26, 0, 1, 324000000U),
PLLDDR(54, 1, 1, 330000000U),
PLLDDR(27, 0, 1, 336000000U),
PLLDDR(56, 1, 1, 342000000U),
PLLDDR(28, 0, 1, 348000000U),
PLLDDR(58, 1, 1, 354000000U),
PLLDDR(29, 0, 1, 360000000U),
PLLDDR(60, 1, 1, 366000000U),
PLLDDR(30, 0, 1, 372000000U),
PLLDDR(62, 1, 1, 378000000U),
PLLDDR(15, 0, 0, 384000000U),
PLLDDR(64, 1, 1, 390000000U),
PLLDDR(32, 0, 1, 396000000U),
PLLDDR(66, 1, 1, 402000000U),
PLLDDR(16, 0, 0, 408000000U),
PLLDDR(68, 1, 1, 414000000U),
PLLDDR(34, 0, 1, 420000000U),
PLLDDR(70, 1, 1, 426000000U),
PLLDDR(17, 0, 0, 432000000U),
PLLDDR(72, 1, 1, 438000000U),
PLLDDR(36, 0, 1, 444000000U),
PLLDDR(74, 1, 1, 450000000U),
PLLDDR(18, 0, 0, 456000000U),
PLLDDR(76, 1, 1, 462000000U),
PLLDDR(38, 0, 1, 468000000U),
PLLDDR(78, 1, 1, 474000000U),
PLLDDR(19, 0, 0, 480000000U),
PLLDDR(80, 1, 1, 486000000U),
PLLDDR(40, 0, 1, 492000000U),
PLLDDR(82, 1, 1, 498000000U),
PLLDDR(20, 0, 0, 504000000U),
PLLDDR(84, 1, 1, 510000000U),
PLLDDR(42, 0, 1, 516000000U),
PLLDDR(86, 1, 1, 522000000U),
PLLDDR(21, 0, 0, 528000000U),
PLLDDR(88, 1, 1, 534000000U),
PLLDDR(44, 0, 1, 540000000U),
PLLDDR(90, 1, 1, 546000000U),
PLLDDR(22, 0, 0, 552000000U),
PLLDDR(92, 1, 1, 558000000U),
PLLDDR(46, 0, 1, 564000000U),
PLLDDR(94, 1, 1, 570000000U),
PLLDDR(23, 0, 0, 576000000U),
PLLDDR(96, 1, 1, 582000000U),
PLLDDR(48, 0, 1, 588000000U),
PLLDDR(98, 1, 1, 594000000U),
PLLDDR(24, 0, 0, 600000000U),
PLLDDR(100, 1, 1, 606000000U),
PLLDDR(50, 0, 1, 612000000U),
PLLDDR(102, 1, 1, 618000000U),
PLLDDR(25, 0, 0, 624000000U),
PLLDDR(104, 1, 1, 630000000U),
PLLDDR(52, 0, 1, 636000000U),
PLLDDR(106, 1, 1, 642000000U),
PLLDDR(26, 0, 0, 648000000U),
PLLDDR(108, 1, 1, 654000000U),
PLLDDR(54, 0, 1, 660000000U),
PLLDDR(110, 1, 1, 666000000U),
PLLDDR(27, 0, 0, 672000000U),
PLLDDR(112, 1, 1, 678000000U),
PLLDDR(56, 0, 1, 684000000U),
PLLDDR(114, 1, 1, 690000000U),
PLLDDR(28, 0, 0, 696000000U),
PLLDDR(116, 1, 1, 702000000U),
PLLDDR(58, 0, 1, 708000000U),
PLLDDR(118, 1, 1, 714000000U),
PLLDDR(29, 0, 0, 720000000U),
PLLDDR(120, 1, 1, 726000000U),
PLLDDR(60, 0, 1, 732000000U),
PLLDDR(122, 1, 1, 738000000U),
PLLDDR(30, 0, 0, 744000000U),
PLLDDR(124, 1, 1, 750000000U),
PLLDDR(62, 0, 1, 756000000U),
PLLDDR(126, 1, 1, 762000000U),
PLLDDR(31, 0, 0, 768000000U),
PLLDDR(128, 1, 1, 774000000U),
PLLDDR(64, 0, 1, 780000000U),
PLLDDR(130, 1, 1, 786000000U),
PLLDDR(32, 0, 0, 792000000U),
PLLDDR(132, 1, 1, 798000000U),
PLLDDR(66, 0, 1, 804000000U),
PLLDDR(134, 1, 1, 810000000U),
PLLDDR(33, 0, 0, 816000000U),
PLLDDR(136, 1, 1, 822000000U),
PLLDDR(68, 0, 1, 828000000U),
PLLDDR(138, 1, 1, 834000000U),
PLLDDR(34, 0, 0, 840000000U),
PLLDDR(140, 1, 1, 846000000U),
PLLDDR(70, 0, 1, 852000000U),
PLLDDR(142, 1, 1, 858000000U),
PLLDDR(35, 0, 0, 864000000U),
PLLDDR(144, 1, 1, 870000000U),
PLLDDR(72, 0, 1, 876000000U),
PLLDDR(146, 1, 1, 882000000U),
PLLDDR(36, 0, 0, 888000000U),
PLLDDR(148, 1, 1, 894000000U),
PLLDDR(74, 0, 1, 900000000U),
PLLDDR(150, 1, 1, 906000000U),
PLLDDR(37, 0, 0, 912000000U),
PLLDDR(152, 1, 1, 918000000U),
PLLDDR(76, 0, 1, 924000000U),
PLLDDR(154, 1, 1, 930000000U),
PLLDDR(38, 0, 0, 936000000U),
PLLDDR(156, 1, 1, 942000000U),
PLLDDR(78, 0, 1, 948000000U),
PLLDDR(158, 1, 1, 954000000U),
PLLDDR(39, 0, 0, 960000000U),
PLLDDR(160, 1, 1, 966000000U),
PLLDDR(80, 0, 1, 972000000U),
PLLDDR(162, 1, 1, 978000000U),
PLLDDR(40, 0, 0, 984000000U),
PLLDDR(164, 1, 1, 990000000U),
PLLDDR(82, 0, 1, 996000000U),
PLLDDR(166, 1, 1, 1002000000U),
PLLDDR(41, 0, 0, 1008000000U),
PLLDDR(168, 1, 1, 1014000000U),
PLLDDR(84, 0, 1, 1020000000U),
PLLDDR(170, 1, 1, 1026000000U),
PLLDDR(42, 0, 0, 1032000000U),
PLLDDR(172, 1, 1, 1038000000U),
PLLDDR(86, 0, 1, 1044000000U),
PLLDDR(174, 1, 1, 1050000000U),
PLLDDR(43, 0, 0, 1056000000U),
PLLDDR(176, 1, 1, 1062000000U),
PLLDDR(88, 0, 1, 1068000000U),
PLLDDR(178, 1, 1, 1074000000U),
PLLDDR(44, 0, 0, 1080000000U),
PLLDDR(180, 1, 1, 1086000000U),
PLLDDR(90, 0, 1, 1092000000U),
PLLDDR(182, 1, 1, 1098000000U),
PLLDDR(45, 0, 0, 1104000000U),
PLLDDR(184, 1, 1, 1110000000U),
PLLDDR(92, 0, 1, 1116000000U),
PLLDDR(186, 1, 1, 1122000000U),
PLLDDR(46, 0, 0, 1128000000U),
PLLDDR(188, 1, 1, 1134000000U),
PLLDDR(94, 0, 1, 1140000000U),
PLLDDR(190, 1, 1, 1146000000U),
PLLDDR(47, 0, 0, 1152000000U),
PLLDDR(192, 1, 1, 1158000000U),
PLLDDR(96, 0, 1, 1164000000U),
PLLDDR(194, 1, 1, 1170000000U),
PLLDDR(48, 0, 0, 1176000000U),
PLLDDR(196, 1, 1, 1182000000U),
PLLDDR(98, 0, 1, 1188000000U),
PLLDDR(198, 1, 1, 1194000000U),
PLLDDR(49, 0, 0, 1200000000U),
PLLDDR(100, 1, 0, 1212000000U),
PLLDDR(50, 0, 0, 1224000000U),
PLLDDR(102, 1, 0, 1236000000U),
PLLDDR(51, 0, 0, 1248000000U),
PLLDDR(104, 1, 0, 1260000000U),
PLLDDR(52, 0, 0, 1272000000U),
PLLDDR(106, 1, 0, 1284000000U),
PLLDDR(53, 0, 0, 1296000000U),
PLLDDR(108, 1, 0, 1308000000U),
PLLDDR(54, 0, 0, 1320000000U),
PLLDDR(110, 1, 0, 1332000000U),
PLLDDR(55, 0, 0, 1344000000U),
PLLDDR(112, 1, 0, 1356000000U),
PLLDDR(56, 0, 0, 1368000000U),
PLLDDR(114, 1, 0, 1380000000U),
PLLDDR(57, 0, 0, 1392000000U),
PLLDDR(116, 1, 0, 1404000000U),
PLLDDR(58, 0, 0, 1416000000U),
PLLDDR(118, 1, 0, 1428000000U),
PLLDDR(59, 0, 0, 1440000000U),
PLLDDR(120, 1, 0, 1452000000U),
PLLDDR(60, 0, 0, 1464000000U),
PLLDDR(122, 1, 0, 1476000000U),
PLLDDR(61, 0, 0, 1488000000U),
PLLDDR(124, 1, 0, 1500000000U),
PLLDDR(62, 0, 0, 1512000000U),
PLLDDR(126, 1, 0, 1524000000U),
PLLDDR(63, 0, 0, 1536000000U),
PLLDDR(128, 1, 0, 1548000000U),
PLLDDR(64, 0, 0, 1560000000U),
PLLDDR(130, 1, 0, 1572000000U),
PLLDDR(65, 0, 0, 1584000000U),
PLLDDR(132, 1, 0, 1596000000U),
PLLDDR(66, 0, 0, 1608000000U),
PLLDDR(134, 1, 0, 1620000000U),
PLLDDR(67, 0, 0, 1632000000U),
PLLDDR(136, 1, 0, 1644000000U),
PLLDDR(68, 0, 0, 1656000000U),
PLLDDR(138, 1, 0, 1668000000U),
PLLDDR(69, 0, 0, 1680000000U),
PLLDDR(140, 1, 0, 1692000000U),
PLLDDR(70, 0, 0, 1704000000U),
PLLDDR(142, 1, 0, 1716000000U),
PLLDDR(71, 0, 0, 1728000000U),
PLLDDR(144, 1, 0, 1740000000U),
PLLDDR(72, 0, 0, 1752000000U),
PLLDDR(146, 1, 0, 1764000000U),
PLLDDR(73, 0, 0, 1776000000U),
PLLDDR(148, 1, 0, 1788000000U),
PLLDDR(74, 0, 0, 1800000000U),
PLLDDR(150, 1, 0, 1812000000U),
PLLDDR(75, 0, 0, 1824000000U),
PLLDDR(152, 1, 0, 1836000000U),
PLLDDR(76, 0, 0, 1848000000U),
PLLDDR(154, 1, 0, 1860000000U),
PLLDDR(77, 0, 0, 1872000000U),
PLLDDR(156, 1, 0, 1884000000U),
PLLDDR(78, 0, 0, 1896000000U),
PLLDDR(158, 1, 0, 1908000000U),
PLLDDR(79, 0, 0, 1920000000U),
PLLDDR(160, 1, 0, 1932000000U),
PLLDDR(80, 0, 0, 1944000000U),
PLLDDR(162, 1, 0, 1956000000U),
PLLDDR(81, 0, 0, 1968000000U),
PLLDDR(164, 1, 0, 1980000000U),
PLLDDR(82, 0, 0, 1992000000U),
PLLDDR(166, 1, 0, 2004000000U),
PLLDDR(83, 0, 0, 2016000000U),
PLLDDR(168, 1, 0, 2028000000U),
PLLDDR(84, 0, 0, 2040000000U),
PLLDDR(170, 1, 0, 2052000000U),
PLLDDR(85, 0, 0, 2064000000U),
PLLDDR(172, 1, 0, 2076000000U),
PLLDDR(86, 0, 0, 2088000000U),
PLLDDR(174, 1, 0, 2100000000U),
PLLDDR(87, 0, 0, 2112000000U),
PLLDDR(176, 1, 0, 2124000000U),
PLLDDR(88, 0, 0, 2136000000U),
PLLDDR(178, 1, 0, 2148000000U),
PLLDDR(89, 0, 0, 2160000000U),
};
/* PLLPERIPH0(n, d1, d2, freq) F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllperiph0_tbl[] = {
PLLPERIPH0(49, 1, 1, 300000000U),
PLLPERIPH0(50, 1, 1, 306000000U),
PLLPERIPH0(25, 0, 1, 312000000U),
PLLPERIPH0(52, 1, 1, 318000000U),
PLLPERIPH0(26, 0, 1, 324000000U),
PLLPERIPH0(54, 1, 1, 330000000U),
PLLPERIPH0(27, 0, 1, 336000000U),
PLLPERIPH0(56, 1, 1, 342000000U),
PLLPERIPH0(28, 0, 1, 348000000U),
PLLPERIPH0(58, 1, 1, 354000000U),
PLLPERIPH0(29, 0, 1, 360000000U),
PLLPERIPH0(60, 1, 1, 366000000U),
PLLPERIPH0(30, 0, 1, 372000000U),
PLLPERIPH0(62, 1, 1, 378000000U),
PLLPERIPH0(31, 0, 1, 384000000U),
PLLPERIPH0(64, 1, 1, 390000000U),
PLLPERIPH0(32, 0, 1, 396000000U),
PLLPERIPH0(66, 1, 1, 402000000U),
PLLPERIPH0(16, 0, 0, 408000000U),
PLLPERIPH0(68, 1, 1, 414000000U),
PLLPERIPH0(34, 0, 1, 420000000U),
PLLPERIPH0(70, 1, 1, 426000000U),
PLLPERIPH0(17, 0, 0, 432000000U),
PLLPERIPH0(72, 1, 1, 438000000U),
PLLPERIPH0(36, 0, 1, 444000000U),
PLLPERIPH0(74, 1, 1, 450000000U),
PLLPERIPH0(18, 0, 0, 456000000U),
PLLPERIPH0(76, 1, 1, 462000000U),
PLLPERIPH0(38, 0, 1, 468000000U),
PLLPERIPH0(78, 1, 1, 474000000U),
PLLPERIPH0(19, 0, 0, 480000000U),
PLLPERIPH0(80, 1, 1, 486000000U),
PLLPERIPH0(40, 0, 1, 492000000U),
PLLPERIPH0(82, 1, 1, 498000000U),
PLLPERIPH0(20, 0, 0, 504000000U),
PLLPERIPH0(84, 1, 1, 510000000U),
PLLPERIPH0(42, 0, 1, 516000000U),
PLLPERIPH0(86, 1, 1, 522000000U),
PLLPERIPH0(21, 0, 0, 528000000U),
PLLPERIPH0(88, 1, 1, 534000000U),
PLLPERIPH0(44, 0, 1, 540000000U),
PLLPERIPH0(90, 1, 1, 546000000U),
PLLPERIPH0(22, 0, 0, 552000000U),
PLLPERIPH0(92, 1, 1, 558000000U),
PLLPERIPH0(46, 0, 1, 564000000U),
PLLPERIPH0(94, 1, 1, 570000000U),
PLLPERIPH0(23, 0, 0, 576000000U),
PLLPERIPH0(96, 1, 1, 582000000U),
PLLPERIPH0(48, 0, 1, 588000000U),
PLLPERIPH0(98, 1, 1, 594000000U),
PLLPERIPH0(24, 0, 0, 600000000U),
PLLPERIPH0(100, 1, 1, 606000000U),
PLLPERIPH0(50, 0, 1, 612000000U),
PLLPERIPH0(102, 1, 1, 618000000U),
PLLPERIPH0(25, 0, 0, 624000000U),
PLLPERIPH0(104, 1, 1, 630000000U),
PLLPERIPH0(52, 0, 1, 636000000U),
};
/* PLLPERIPH1(n, d1, d2, freq) F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllperiph1_tbl[] = {
PLLPERIPH1(49, 1, 1, 300000000U),
PLLPERIPH1(50, 1, 1, 306000000U),
PLLPERIPH1(25, 0, 1, 312000000U),
PLLPERIPH1(52, 1, 1, 318000000U),
PLLPERIPH1(26, 0, 1, 324000000U),
PLLPERIPH1(54, 1, 1, 330000000U),
PLLPERIPH1(27, 0, 1, 336000000U),
PLLPERIPH1(56, 1, 1, 342000000U),
PLLPERIPH1(28, 0, 1, 348000000U),
PLLPERIPH1(58, 1, 1, 354000000U),
PLLPERIPH1(29, 0, 1, 360000000U),
PLLPERIPH1(60, 1, 1, 366000000U),
PLLPERIPH1(30, 0, 1, 372000000U),
PLLPERIPH1(62, 1, 1, 378000000U),
PLLPERIPH1(31, 0, 1, 384000000U),
PLLPERIPH1(64, 1, 1, 390000000U),
PLLPERIPH1(32, 0, 1, 396000000U),
PLLPERIPH1(66, 1, 1, 402000000U),
PLLPERIPH1(16, 0, 0, 408000000U),
PLLPERIPH1(68, 1, 1, 414000000U),
PLLPERIPH1(34, 0, 1, 420000000U),
PLLPERIPH1(70, 1, 1, 426000000U),
PLLPERIPH1(17, 0, 0, 432000000U),
PLLPERIPH1(72, 1, 1, 438000000U),
PLLPERIPH1(36, 0, 1, 444000000U),
PLLPERIPH1(74, 1, 1, 450000000U),
PLLPERIPH1(18, 0, 0, 456000000U),
PLLPERIPH1(76, 1, 1, 462000000U),
PLLPERIPH1(38, 0, 1, 468000000U),
PLLPERIPH1(78, 1, 1, 474000000U),
PLLPERIPH1(19, 0, 0, 480000000U),
PLLPERIPH1(80, 1, 1, 486000000U),
PLLPERIPH1(40, 0, 1, 492000000U),
PLLPERIPH1(82, 1, 1, 498000000U),
PLLPERIPH1(20, 0, 0, 504000000U),
PLLPERIPH1(84, 1, 1, 510000000U),
PLLPERIPH1(42, 0, 1, 516000000U),
PLLPERIPH1(86, 1, 1, 522000000U),
PLLPERIPH1(21, 0, 0, 528000000U),
PLLPERIPH1(88, 1, 1, 534000000U),
PLLPERIPH1(44, 0, 1, 540000000U),
PLLPERIPH1(90, 1, 1, 546000000U),
PLLPERIPH1(22, 0, 0, 552000000U),
PLLPERIPH1(92, 1, 1, 558000000U),
PLLPERIPH1(46, 0, 1, 564000000U),
PLLPERIPH1(94, 1, 1, 570000000U),
PLLPERIPH1(23, 0, 0, 576000000U),
PLLPERIPH1(96, 1, 1, 582000000U),
PLLPERIPH1(48, 0, 1, 588000000U),
PLLPERIPH1(98, 1, 1, 594000000U),
PLLPERIPH1(24, 0, 0, 600000000U),
PLLPERIPH1(100, 1, 1, 606000000U),
PLLPERIPH1(50, 0, 1, 612000000U),
PLLPERIPH1(102, 1, 1, 618000000U),
PLLPERIPH1(25, 0, 0, 624000000U),
PLLPERIPH1(104, 1, 1, 630000000U),
PLLPERIPH1(52, 0, 1, 636000000U),
};
/* PLLVIDEO0(n, d1, freq) F_N8X8_D1V1X1 */
struct sunxi_clk_factor_freq factor_pllvideo0_tbl[] = {
PLLVIDEO0(23, 1, 288000000U),
PLLVIDEO0(24, 1, 300000000U),
PLLVIDEO0(25, 1, 312000000U),
PLLVIDEO0(26, 1, 324000000U),
PLLVIDEO0(13, 0, 336000000U),
PLLVIDEO0(28, 1, 348000000U),
PLLVIDEO0(14, 0, 360000000U),
PLLVIDEO0(30, 1, 372000000U),
PLLVIDEO0(15, 0, 384000000U),
PLLVIDEO0(32, 1, 396000000U),
PLLVIDEO0(16, 0, 408000000U),
PLLVIDEO0(34, 1, 420000000U),
PLLVIDEO0(17, 0, 432000000U),
PLLVIDEO0(36, 1, 444000000U),
PLLVIDEO0(18, 0, 456000000U),
PLLVIDEO0(38, 1, 468000000U),
PLLVIDEO0(19, 0, 480000000U),
PLLVIDEO0(40, 1, 492000000U),
PLLVIDEO0(20, 0, 504000000U),
PLLVIDEO0(42, 1, 516000000U),
PLLVIDEO0(21, 0, 528000000U),
PLLVIDEO0(44, 1, 540000000U),
PLLVIDEO0(22, 0, 552000000U),
PLLVIDEO0(46, 1, 564000000U),
PLLVIDEO0(23, 0, 576000000U),
PLLVIDEO0(48, 1, 588000000U),
PLLVIDEO0(24, 0, 600000000U),
PLLVIDEO0(50, 1, 612000000U),
PLLVIDEO0(25, 0, 624000000U),
PLLVIDEO0(52, 1, 636000000U),
PLLVIDEO0(26, 0, 648000000U),
PLLVIDEO0(54, 1, 660000000U),
PLLVIDEO0(27, 0, 672000000U),
PLLVIDEO0(56, 1, 684000000U),
PLLVIDEO0(28, 0, 696000000U),
PLLVIDEO0(58, 1, 708000000U),
PLLVIDEO0(29, 0, 720000000U),
PLLVIDEO0(60, 1, 732000000U),
PLLVIDEO0(30, 0, 744000000U),
PLLVIDEO0(62, 1, 756000000U),
PLLVIDEO0(31, 0, 768000000U),
PLLVIDEO0(64, 1, 780000000U),
PLLVIDEO0(32, 0, 792000000U),
PLLVIDEO0(66, 1, 804000000U),
PLLVIDEO0(33, 0, 816000000U),
PLLVIDEO0(68, 1, 828000000U),
PLLVIDEO0(34, 0, 840000000U),
PLLVIDEO0(70, 1, 852000000U),
PLLVIDEO0(35, 0, 864000000U),
PLLVIDEO0(72, 1, 876000000U),
PLLVIDEO0(36, 0, 888000000U),
PLLVIDEO0(74, 1, 900000000U),
PLLVIDEO0(37, 0, 912000000U),
PLLVIDEO0(76, 1, 924000000U),
PLLVIDEO0(38, 0, 936000000U),
PLLVIDEO0(78, 1, 948000000U),
PLLVIDEO0(39, 0, 960000000U),
PLLVIDEO0(80, 1, 972000000U),
PLLVIDEO0(40, 0, 984000000U),
PLLVIDEO0(82, 1, 996000000U),
PLLVIDEO0(41, 0, 1008000000U),
};
static unsigned int pllcpu_max, pllddr_max, pllperiph0_max,
pllperiph1_max, pllvideo0_max;
#define PLL_MAX_ASSIGN(name) (pll##name##_max = \
factor_pll##name##_tbl[ARRAY_SIZE(factor_pll##name##_tbl)-1].freq)
void sunxi_clk_factor_initlimits(void)
{
PLL_MAX_ASSIGN(cpu);
PLL_MAX_ASSIGN(ddr);
PLL_MAX_ASSIGN(periph0);
PLL_MAX_ASSIGN(periph1);
PLL_MAX_ASSIGN(video0);
}