/* * Copyright (C) 2013 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "clk-sun8iw11.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,k,m,p,freq) F_N8X5_K4X2_M0X2_P16x2 */ struct sunxi_clk_factor_freq factor_pllcpu_tbl[] = { PLLCPU(9, 0, 0, 2, 60000000U), PLLCPU(10, 0, 0, 2, 66000000U), PLLCPU(11, 0, 0, 2, 72000000U), PLLCPU(12, 0, 0, 2, 78000000U), PLLCPU(13, 0, 0, 2, 84000000U), PLLCPU(14, 0, 0, 2, 90000000U), PLLCPU(15, 0, 0, 2, 96000000U), PLLCPU(16, 0, 0, 2, 102000000U), PLLCPU(17, 0, 0, 2, 108000000U), PLLCPU(18, 0, 0, 2, 114000000U), PLLCPU(9, 0, 0, 1, 120000000U), PLLCPU(10, 0, 0, 1, 132000000U), PLLCPU(11, 0, 0, 1, 144000000U), PLLCPU(12, 0, 0, 1, 156000000U), PLLCPU(13, 0, 0, 1, 168000000U), PLLCPU(14, 0, 0, 1, 180000000U), PLLCPU(15, 0, 0, 1, 192000000U), PLLCPU(16, 0, 0, 1, 204000000U), PLLCPU(17, 0, 0, 1, 216000000U), PLLCPU(18, 0, 0, 1, 228000000U), PLLCPU(9, 0, 0, 0, 240000000U), PLLCPU(10, 0, 0, 0, 264000000U), PLLCPU(11, 0, 0, 0, 288000000U), PLLCPU(12, 0, 0, 0, 312000000U), PLLCPU(13, 0, 0, 0, 336000000U), PLLCPU(14, 0, 0, 0, 360000000U), PLLCPU(15, 0, 0, 0, 384000000U), PLLCPU(16, 0, 0, 0, 408000000U), PLLCPU(17, 0, 0, 0, 432000000U), PLLCPU(18, 0, 0, 0, 456000000U), PLLCPU(19, 0, 0, 0, 480000000U), PLLCPU(20, 0, 0, 0, 504000000U), PLLCPU(21, 0, 0, 0, 528000000U), PLLCPU(22, 0, 0, 0, 552000000U), PLLCPU(23, 0, 0, 0, 576000000U), PLLCPU(24, 0, 0, 0, 600000000U), PLLCPU(25, 0, 0, 0, 624000000U), PLLCPU(26, 0, 0, 0, 648000000U), PLLCPU(27, 0, 0, 0, 672000000U), PLLCPU(28, 0, 0, 0, 696000000U), PLLCPU(29, 0, 0, 0, 720000000U), PLLCPU(15, 1, 0, 0, 768000000U), PLLCPU(10, 2, 0, 0, 792000000U), PLLCPU(16, 1, 0, 0, 816000000U), PLLCPU(11, 2, 0, 0, 864000000U), PLLCPU(18, 1, 0, 0, 912000000U), PLLCPU(12, 2, 0, 0, 936000000U), PLLCPU(19, 1, 0, 0, 960000000U), PLLCPU(20, 1, 0, 0, 1008000000U), PLLCPU(21, 1, 0, 0, 1056000000U), PLLCPU(14, 2, 0, 0, 1080000000U), PLLCPU(22, 1, 0, 0, 1104000000U), PLLCPU(23, 1, 0, 0, 1152000000U), PLLCPU(24, 1, 0, 0, 1200000000U), PLLCPU(16, 2, 0, 0, 1224000000U), PLLCPU(25, 1, 0, 0, 1248000000U), PLLCPU(26, 1, 0, 0, 1296000000U), PLLCPU(27, 1, 0, 0, 1344000000U), PLLCPU(18, 2, 0, 0, 1368000000U), PLLCPU(19, 2, 0, 0, 1440000000U), PLLCPU(20, 2, 0, 0, 1512000000U), PLLCPU(15, 3, 0, 0, 1536000000U), PLLCPU(21, 2, 0, 0, 1584000000U), PLLCPU(16, 3, 0, 0, 1632000000U), PLLCPU(22, 2, 0, 0, 1656000000U), PLLCPU(23, 2, 0, 0, 1728000000U), PLLCPU(24, 2, 0, 0, 1800000000U), PLLCPU(25, 2, 0, 0, 1872000000U), }; /* * PLLVIDEO0(n,m,freq) F_N8X7_M0X4 */ struct sunxi_clk_factor_freq factor_pllvideo0_tbl[] = { PLLVIDEO0(6, 0, 168000000U), PLLVIDEO0(14, 1, 180000000U), PLLVIDEO0(22, 2, 184000000U), PLLVIDEO0(31, 3, 192000000U), PLLVIDEO0(24, 2, 200000000U), PLLVIDEO0(16, 1, 204000000U), PLLVIDEO0(25, 2, 208000000U), PLLVIDEO0(8, 0, 216000000U), PLLVIDEO0(36, 3, 222000000U), PLLVIDEO0(27, 2, 224000000U), PLLVIDEO0(74, 7, 225000000U), PLLVIDEO0(18, 1, 228000000U), PLLVIDEO0(28, 2, 232000000U), PLLVIDEO0(38, 3, 234000000U), PLLVIDEO0(39, 3, 240000000U), PLLVIDEO0(80, 7, 243000000U), PLLVIDEO0(40, 3, 246000000U), PLLVIDEO0(30, 2, 248000000U), PLLVIDEO0(20, 1, 252000000U), PLLVIDEO0(84, 7, 255000000U), PLLVIDEO0(31, 2, 256000000U), PLLVIDEO0(42, 3, 258000000U), PLLVIDEO0(86, 7, 261000000U), PLLVIDEO0(10, 0, 264000000U), PLLVIDEO0(88, 7, 267000000U), PLLVIDEO0(44, 3, 270000000U), PLLVIDEO0(90, 7, 273000000U), PLLVIDEO0(45, 3, 276000000U), PLLVIDEO0(92, 7, 279000000U), PLLVIDEO0(34, 2, 280000000U), PLLVIDEO0(46, 3, 282000000U), PLLVIDEO0(94, 7, 285000000U), PLLVIDEO0(11, 0, 288000000U), PLLVIDEO0(96, 7, 291000000U), PLLVIDEO0(48, 3, 294000000U), PLLVIDEO0(36, 2, 296000000U), PLLVIDEO0(98, 7, 297000000U), PLLVIDEO0(24, 1, 300000000U), PLLVIDEO0(100, 7, 303000000U), PLLVIDEO0(37, 2, 304000000U), PLLVIDEO0(101, 7, 306000000U), PLLVIDEO0(102, 7, 309000000U), PLLVIDEO0(12, 0, 312000000U), PLLVIDEO0(104, 7, 315000000U), PLLVIDEO0(52, 3, 318000000U), PLLVIDEO0(39, 2, 320000000U), PLLVIDEO0(106, 7, 321000000U), PLLVIDEO0(26, 1, 324000000U), PLLVIDEO0(108, 7, 327000000U), PLLVIDEO0(40, 2, 328000000U), PLLVIDEO0(109, 7, 330000000U), PLLVIDEO0(110, 7, 333000000U), PLLVIDEO0(27, 1, 336000000U), PLLVIDEO0(112, 7, 339000000U), PLLVIDEO0(56, 3, 342000000U), PLLVIDEO0(114, 7, 345000000U), PLLVIDEO0(28, 1, 348000000U), PLLVIDEO0(116, 7, 351000000U), PLLVIDEO0(58, 3, 354000000U), PLLVIDEO0(118, 7, 357000000U), PLLVIDEO0(29, 1, 360000000U), PLLVIDEO0(120, 7, 363000000U), PLLVIDEO0(121, 7, 366000000U), PLLVIDEO0(122, 7, 369000000U), PLLVIDEO0(61, 3, 372000000U), PLLVIDEO0(124, 7, 375000000U), PLLVIDEO0(125, 7, 378000000U), PLLVIDEO0(126, 7, 381000000U), PLLVIDEO0(15, 0, 384000000U), PLLVIDEO0(64, 3, 390000000U), PLLVIDEO0(32, 1, 396000000U), PLLVIDEO0(66, 3, 402000000U), PLLVIDEO0(16, 0, 408000000U), PLLVIDEO0(68, 3, 414000000U), PLLVIDEO0(69, 3, 420000000U), PLLVIDEO0(70, 3, 426000000U), PLLVIDEO0(71, 3, 432000000U), PLLVIDEO0(72, 3, 438000000U), PLLVIDEO0(36, 1, 444000000U), PLLVIDEO0(74, 3, 450000000U), PLLVIDEO0(18, 0, 456000000U), PLLVIDEO0(76, 3, 462000000U), PLLVIDEO0(38, 1, 468000000U), PLLVIDEO0(78, 3, 474000000U), PLLVIDEO0(79, 3, 480000000U), PLLVIDEO0(80, 3, 486000000U), PLLVIDEO0(81, 3, 492000000U), PLLVIDEO0(82, 3, 498000000U), PLLVIDEO0(20, 0, 504000000U), PLLVIDEO0(84, 3, 510000000U), PLLVIDEO0(85, 3, 516000000U), PLLVIDEO0(86, 3, 522000000U), PLLVIDEO0(21, 0, 528000000U), PLLVIDEO0(88, 3, 534000000U), PLLVIDEO0(89, 3, 540000000U), PLLVIDEO0(90, 3, 546000000U), PLLVIDEO0(91, 3, 552000000U), PLLVIDEO0(92, 3, 558000000U), PLLVIDEO0(93, 3, 564000000U), PLLVIDEO0(94, 3, 570000000U), PLLVIDEO0(95, 3, 576000000U), PLLVIDEO0(96, 3, 582000000U), PLLVIDEO0(97, 3, 588000000U), PLLVIDEO0(98, 3, 594000000U), PLLVIDEO0(99, 3, 600000000U), PLLVIDEO0(100, 3, 606000000U), PLLVIDEO0(101, 3, 612000000U), PLLVIDEO0(102, 3, 618000000U), PLLVIDEO0(103, 3, 624000000U), PLLVIDEO0(104, 3, 630000000U), PLLVIDEO0(105, 3, 636000000U), PLLVIDEO0(106, 3, 642000000U), PLLVIDEO0(107, 3, 648000000U), PLLVIDEO0(108, 3, 654000000U), PLLVIDEO0(109, 3, 660000000U), PLLVIDEO0(110, 3, 666000000U), PLLVIDEO0(27, 0, 672000000U), PLLVIDEO0(112, 3, 678000000U), PLLVIDEO0(113, 3, 684000000U), PLLVIDEO0(114, 3, 690000000U), PLLVIDEO0(28, 0, 696000000U), PLLVIDEO0(116, 3, 702000000U), PLLVIDEO0(117, 3, 708000000U), PLLVIDEO0(118, 3, 714000000U), PLLVIDEO0(119, 3, 720000000U), PLLVIDEO0(120, 3, 726000000U), PLLVIDEO0(121, 3, 732000000U), PLLVIDEO0(122, 3, 738000000U), PLLVIDEO0(123, 3, 744000000U), PLLVIDEO0(124, 3, 750000000U), PLLVIDEO0(125, 3, 756000000U), PLLVIDEO0(126, 3, 762000000U), PLLVIDEO0(127, 3, 768000000U), PLLVIDEO0(32, 0, 792000000U), PLLVIDEO0(33, 0, 816000000U), PLLVIDEO0(34, 0, 840000000U), PLLVIDEO0(35, 0, 864000000U), PLLVIDEO0(36, 0, 888000000U), PLLVIDEO0(37, 0, 912000000U), PLLVIDEO0(38, 0, 936000000U), PLLVIDEO0(39, 0, 960000000U), PLLVIDEO0(40, 0, 984000000U), PLLVIDEO0(41, 0, 1008000000U), }; /* * PLLVE(n,m,freq) F_N8X7_M0X4 */ struct sunxi_clk_factor_freq factor_pllve_tbl[] = { PLLVE(11, 1, 144000000U), PLLVE(18, 2, 152000000U), PLLVE(12, 1, 156000000U), PLLVE(19, 2, 160000000U), PLLVE(26, 3, 162000000U), PLLVE(6, 0, 168000000U), PLLVE(28, 3, 174000000U), PLLVE(21, 2, 176000000U), PLLVE(14, 1, 180000000U), PLLVE(22, 2, 184000000U), PLLVE(30, 3, 186000000U), PLLVE(62, 7, 189000000U), PLLVE(7, 0, 192000000U), PLLVE(32, 3, 198000000U), PLLVE(24, 2, 200000000U), PLLVE(66, 7, 201000000U), PLLVE(16, 1, 204000000U), PLLVE(68, 7, 207000000U), PLLVE(25, 2, 208000000U), PLLVE(34, 3, 210000000U), PLLVE(70, 7, 213000000U), PLLVE(8, 0, 216000000U), PLLVE(72, 7, 219000000U), PLLVE(36, 3, 222000000U), PLLVE(27, 2, 224000000U), PLLVE(74, 7, 225000000U), PLLVE(18, 1, 228000000U), PLLVE(76, 7, 231000000U), PLLVE(28, 2, 232000000U), PLLVE(38, 3, 234000000U), PLLVE(78, 7, 237000000U), PLLVE(9, 0, 240000000U), PLLVE(80, 7, 243000000U), PLLVE(81, 7, 246000000U), PLLVE(30, 2, 248000000U), PLLVE(82, 7, 249000000U), PLLVE(20, 1, 252000000U), PLLVE(84, 7, 255000000U), PLLVE(31, 2, 256000000U), PLLVE(85, 7, 258000000U), PLLVE(86, 7, 261000000U), PLLVE(10, 0, 264000000U), PLLVE(88, 7, 267000000U), PLLVE(89, 7, 270000000U), PLLVE(33, 2, 272000000U), PLLVE(90, 7, 273000000U), PLLVE(45, 3, 276000000U), PLLVE(92, 7, 279000000U), PLLVE(34, 2, 280000000U), PLLVE(46, 3, 282000000U), PLLVE(94, 7, 285000000U), PLLVE(11, 0, 288000000U), PLLVE(96, 7, 291000000U), PLLVE(48, 3, 294000000U), PLLVE(36, 2, 296000000U), PLLVE(98, 7, 297000000U), PLLVE(24, 1, 300000000U), PLLVE(100, 7, 303000000U), PLLVE(37, 2, 304000000U), PLLVE(50, 3, 306000000U), PLLVE(102, 7, 309000000U), PLLVE(12, 0, 312000000U), PLLVE(104, 7, 315000000U), PLLVE(105, 7, 318000000U), PLLVE(39, 2, 320000000U), PLLVE(106, 7, 321000000U), PLLVE(53, 3, 324000000U), PLLVE(108, 7, 327000000U), PLLVE(40, 2, 328000000U), PLLVE(54, 3, 330000000U), PLLVE(110, 7, 333000000U), PLLVE(27, 1, 336000000U), PLLVE(112, 7, 339000000U), PLLVE(113, 7, 342000000U), PLLVE(114, 7, 345000000U), PLLVE(28, 1, 348000000U), PLLVE(116, 7, 351000000U), PLLVE(117, 7, 354000000U), PLLVE(118, 7, 357000000U), PLLVE(14, 0, 360000000U), PLLVE(120, 7, 363000000U), PLLVE(121, 7, 366000000U), PLLVE(122, 7, 369000000U), PLLVE(30, 1, 372000000U), PLLVE(124, 7, 375000000U), PLLVE(125, 7, 378000000U), PLLVE(126, 7, 381000000U), PLLVE(31, 1, 384000000U), PLLVE(64, 3, 390000000U), PLLVE(65, 3, 396000000U), PLLVE(66, 3, 402000000U), PLLVE(67, 3, 408000000U), PLLVE(68, 3, 414000000U), PLLVE(69, 3, 420000000U), PLLVE(70, 3, 426000000U), PLLVE(71, 3, 432000000U), PLLVE(72, 3, 438000000U), PLLVE(36, 1, 444000000U), PLLVE(74, 3, 450000000U), PLLVE(18, 0, 456000000U), PLLVE(76, 3, 462000000U), PLLVE(38, 1, 468000000U), PLLVE(78, 3, 474000000U), PLLVE(79, 3, 480000000U), PLLVE(80, 3, 486000000U), PLLVE(81, 3, 492000000U), PLLVE(82, 3, 498000000U), PLLVE(20, 0, 504000000U), PLLVE(84, 3, 510000000U), PLLVE(85, 3, 516000000U), PLLVE(86, 3, 522000000U), PLLVE(87, 3, 528000000U), PLLVE(88, 3, 534000000U), PLLVE(89, 3, 540000000U), PLLVE(90, 3, 546000000U), PLLVE(91, 3, 552000000U), PLLVE(92, 3, 558000000U), PLLVE(93, 3, 564000000U), PLLVE(94, 3, 570000000U), PLLVE(23, 0, 576000000U), PLLVE(96, 3, 582000000U), PLLVE(97, 3, 588000000U), PLLVE(98, 3, 594000000U), PLLVE(24, 0, 600000000U), PLLVE(100, 3, 606000000U), PLLVE(101, 3, 612000000U), PLLVE(102, 3, 618000000U), PLLVE(25, 0, 624000000U), PLLVE(104, 3, 630000000U), PLLVE(105, 3, 636000000U), PLLVE(106, 3, 642000000U), PLLVE(107, 3, 648000000U), PLLVE(108, 3, 654000000U), PLLVE(109, 3, 660000000U), PLLVE(110, 3, 666000000U), PLLVE(111, 3, 672000000U), PLLVE(112, 3, 678000000U), PLLVE(113, 3, 684000000U), PLLVE(114, 3, 690000000U), PLLVE(28, 0, 696000000U), PLLVE(116, 3, 702000000U), PLLVE(117, 3, 708000000U), PLLVE(118, 3, 714000000U), PLLVE(29, 0, 720000000U), PLLVE(120, 3, 726000000U), PLLVE(121, 3, 732000000U), PLLVE(122, 3, 738000000U), PLLVE(123, 3, 744000000U), PLLVE(124, 3, 750000000U), PLLVE(125, 3, 756000000U), PLLVE(126, 3, 762000000U), PLLVE(127, 3, 768000000U), PLLVE(32, 0, 792000000U), PLLVE(33, 0, 816000000U), PLLVE(34, 0, 840000000U), PLLVE(35, 0, 864000000U), PLLVE(36, 0, 888000000U), PLLVE(37, 0, 912000000U), PLLVE(38, 0, 936000000U), PLLVE(39, 0, 960000000U), PLLVE(40, 0, 984000000U), PLLVE(41, 0, 1008000000U), }; /* * PLLDDR0(n,k,m,freq) F_N8X5_K4X2_M0X2 */ struct sunxi_clk_factor_freq factor_pllddr0_tbl[] = { PLLDDR0(3, 1, 4, 60000000U), PLLDDR0(2, 3, 1, 64000000U), PLLDDR0(3, 0, 10, 66000000U), PLLDDR0(3, 2, 3, 72000000U), PLLDDR0(3, 0, 12, 78000000U), PLLDDR0(2, 0, 9, 80000000U), PLLDDR0(3, 1, 6, 84000000U), PLLDDR0(2, 0, 10, 88000000U), PLLDDR0(3, 0, 14, 90000000U), PLLDDR0(3, 1, 7, 96000000U), PLLDDR0(1, 3, 1, 96000000U), PLLDDR0(3, 0, 16, 102000000U), PLLDDR0(2, 0, 12, 104000000U), PLLDDR0(3, 1, 8, 108000000U), PLLDDR0(2, 1, 6, 112000000U), PLLDDR0(3, 0, 18, 114000000U), PLLDDR0(3, 3, 4, 120000000U), PLLDDR0(3, 0, 20, 126000000U), PLLDDR0(2, 0, 15, 128000000U), PLLDDR0(3, 1, 10, 132000000U), PLLDDR0(2, 0, 16, 136000000U), PLLDDR0(3, 0, 22, 138000000U), PLLDDR0(3, 0, 23, 144000000U), PLLDDR0(3, 0, 24, 150000000U), PLLDDR0(2, 0, 18, 152000000U), PLLDDR0(3, 1, 12, 156000000U), PLLDDR0(2, 1, 9, 160000000U), PLLDDR0(3, 0, 26, 162000000U), PLLDDR0(3, 0, 27, 168000000U), PLLDDR0(3, 0, 28, 174000000U), PLLDDR0(2, 1, 10, 176000000U), PLLDDR0(3, 2, 9, 180000000U), PLLDDR0(2, 0, 22, 184000000U), PLLDDR0(3, 0, 30, 186000000U), PLLDDR0(3, 0, 31, 192000000U), PLLDDR0(3, 2, 10, 198000000U), PLLDDR0(2, 0, 24, 200000000U), PLLDDR0(3, 1, 16, 204000000U), PLLDDR0(2, 0, 25, 208000000U), PLLDDR0(2, 2, 8, 216000000U), PLLDDR0(2, 1, 13, 224000000U), PLLDDR0(3, 1, 18, 228000000U), PLLDDR0(2, 0, 28, 232000000U), PLLDDR0(3, 2, 12, 234000000U), PLLDDR0(3, 3, 9, 240000000U), PLLDDR0(2, 0, 30, 248000000U), PLLDDR0(3, 2, 13, 252000000U), PLLDDR0(2, 0, 31, 256000000U), PLLDDR0(2, 2, 10, 264000000U), PLLDDR0(3, 2, 14, 270000000U), PLLDDR0(2, 1, 16, 272000000U), PLLDDR0(3, 1, 22, 276000000U), PLLDDR0(3, 3, 11, 288000000U), PLLDDR0(3, 1, 24, 300000000U), PLLDDR0(2, 1, 18, 304000000U), PLLDDR0(3, 2, 16, 306000000U), PLLDDR0(2, 2, 12, 312000000U), PLLDDR0(2, 3, 9, 320000000U), PLLDDR0(3, 2, 17, 324000000U), PLLDDR0(2, 2, 13, 336000000U), PLLDDR0(3, 2, 18, 342000000U), PLLDDR0(3, 1, 28, 348000000U), PLLDDR0(2, 1, 21, 352000000U), PLLDDR0(2, 2, 14, 360000000U), PLLDDR0(2, 1, 22, 368000000U), PLLDDR0(3, 1, 30, 372000000U), PLLDDR0(3, 2, 20, 378000000U), PLLDDR0(3, 3, 15, 384000000U), PLLDDR0(3, 2, 21, 396000000U), PLLDDR0(2, 1, 24, 400000000U), PLLDDR0(2, 2, 16, 408000000U), PLLDDR0(3, 2, 22, 414000000U), PLLDDR0(2, 1, 25, 416000000U), PLLDDR0(2, 1, 26, 432000000U), PLLDDR0(2, 3, 13, 448000000U), PLLDDR0(3, 2, 24, 450000000U), PLLDDR0(2, 2, 18, 456000000U), PLLDDR0(2, 1, 28, 464000000U), PLLDDR0(1, 2, 12, 468000000U), PLLDDR0(2, 2, 19, 480000000U), PLLDDR0(3, 2, 26, 486000000U), PLLDDR0(2, 1, 30, 496000000U), PLLDDR0(3, 3, 20, 504000000U), PLLDDR0(2, 3, 15, 512000000U), PLLDDR0(3, 2, 28, 522000000U), PLLDDR0(0, 1, 10, 528000000U), PLLDDR0(3, 2, 29, 540000000U), PLLDDR0(2, 3, 16, 544000000U), PLLDDR0(1, 1, 22, 552000000U), PLLDDR0(3, 2, 30, 558000000U), PLLDDR0(2, 3, 17, 576000000U), PLLDDR0(2, 2, 24, 600000000U), PLLDDR0(2, 3, 18, 608000000U), PLLDDR0(1, 2, 16, 612000000U), PLLDDR0(1, 3, 12, 624000000U), PLLDDR0(2, 3, 19, 640000000U), PLLDDR0(0, 0, 26, 648000000U), PLLDDR0(2, 2, 27, 672000000U), PLLDDR0(1, 2, 18, 684000000U), PLLDDR0(0, 0, 28, 696000000U), PLLDDR0(2, 3, 21, 704000000U), PLLDDR0(2, 2, 29, 720000000U), PLLDDR0(2, 3, 22, 736000000U), PLLDDR0(0, 0, 30, 744000000U), PLLDDR0(1, 2, 20, 756000000U), PLLDDR0(0, 0, 31, 768000000U), PLLDDR0(0, 2, 10, 792000000U), PLLDDR0(0, 1, 16, 816000000U), PLLDDR0(1, 2, 22, 828000000U), PLLDDR0(0, 1, 17, 864000000U), PLLDDR0(1, 2, 24, 900000000U), PLLDDR0(1, 3, 18, 912000000U), PLLDDR0(0, 2, 12, 936000000U), PLLDDR0(0, 3, 9, 960000000U), PLLDDR0(1, 2, 26, 972000000U), PLLDDR0(1, 2, 27, 1008000000U), PLLDDR0(1, 2, 28, 1044000000U), PLLDDR0(1, 3, 21, 1056000000U), PLLDDR0(0, 2, 14, 1080000000U), PLLDDR0(0, 1, 22, 1104000000U), PLLDDR0(1, 2, 30, 1116000000U), PLLDDR0(0, 3, 11, 1152000000U), PLLDDR0(0, 1, 24, 1200000000U), PLLDDR0(0, 2, 16, 1224000000U), PLLDDR0(0, 1, 25, 1248000000U), PLLDDR0(0, 2, 17, 1296000000U), PLLDDR0(0, 3, 13, 1344000000U), PLLDDR0(0, 2, 18, 1368000000U), PLLDDR0(0, 1, 28, 1392000000U), PLLDDR0(0, 1, 29, 1440000000U), PLLDDR0(0, 1, 30, 1488000000U), PLLDDR0(0, 2, 20, 1512000000U), PLLDDR0(0, 1, 31, 1536000000U), PLLDDR0(0, 2, 21, 1584000000U), PLLDDR0(0, 3, 16, 1632000000U), PLLDDR0(0, 2, 22, 1656000000U), PLLDDR0(0, 3, 17, 1728000000U), PLLDDR0(0, 2, 24, 1800000000U), PLLDDR0(0, 3, 18, 1824000000U), PLLDDR0(0, 2, 25, 1872000000U), PLLDDR0(0, 3, 19, 1920000000U), PLLDDR0(0, 2, 26, 1944000000U), PLLDDR0(0, 3, 20, 2016000000U), PLLDDR0(0, 2, 28, 2088000000U), PLLDDR0(0, 3, 21, 2112000000U), PLLDDR0(0, 2, 29, 2160000000U), }; /* * PLLPERIPH0(n,k,m,freq) F_N8X5_K4X2 */ struct sunxi_clk_factor_freq factor_pllperiph0_tbl[] = { PLLPERIPH0(0, 18, 0, 456000000U), PLLPERIPH0(0, 24, 0, 600000000U), PLLPERIPH0(0, 25, 0, 624000000U), PLLPERIPH0(0, 26, 0, 648000000U), PLLPERIPH0(0, 28, 0, 696000000U), PLLPERIPH0(0, 29, 0, 720000000U), PLLPERIPH0(0, 30, 0, 744000000U), PLLPERIPH0(2, 10, 0, 792000000U), PLLPERIPH0(1, 16, 0, 816000000U), PLLPERIPH0(2, 11, 0, 864000000U), PLLPERIPH0(1, 18, 0, 912000000U), PLLPERIPH0(2, 12, 0, 936000000U), PLLPERIPH0(1, 19, 0, 960000000U), PLLPERIPH0(1, 20, 0, 1008000000U), PLLPERIPH0(3, 10, 0, 1056000000U), PLLPERIPH0(2, 14, 0, 1080000000U), PLLPERIPH0(1, 22, 0, 1104000000U), PLLPERIPH0(2, 15, 0, 1152000000U), PLLPERIPH0(1, 24, 0, 1200000000U), PLLPERIPH0(2, 16, 0, 1224000000U), PLLPERIPH0(1, 25, 0, 1248000000U), PLLPERIPH0(1, 26, 0, 1296000000U), PLLPERIPH0(1, 27, 0, 1344000000U), PLLPERIPH0(2, 18, 0, 1368000000U), PLLPERIPH0(1, 28, 0, 1392000000U), PLLPERIPH0(2, 19, 0, 1440000000U), PLLPERIPH0(1, 30, 0, 1488000000U), PLLPERIPH0(2, 20, 0, 1512000000U), PLLPERIPH0(1, 31, 0, 1536000000U), PLLPERIPH0(2, 21, 0, 1584000000U), PLLPERIPH0(3, 16, 0, 1632000000U), PLLPERIPH0(2, 22, 0, 1656000000U), PLLPERIPH0(2, 23, 0, 1728000000U), PLLPERIPH0(2, 24, 0, 1800000000U), PLLPERIPH0(3, 18, 0, 1824000000U), PLLPERIPH0(2, 25, 0, 1872000000U), PLLPERIPH0(3, 19, 0, 1920000000U), PLLPERIPH0(2, 26, 0, 1944000000U), PLLPERIPH0(2, 27, 0, 2016000000U), PLLPERIPH0(2, 28, 0, 2088000000U), PLLPERIPH0(3, 21, 0, 2112000000U), PLLPERIPH0(2, 29, 0, 2160000000U), }; /* * PLLPERIPH1(n,k,m,freq) F_N8X5_K4X2 */ struct sunxi_clk_factor_freq factor_pllperiph1_tbl[] = { PLLPERIPH1(0, 6, 0, 168000000U), PLLPERIPH1(1, 3, 0, 192000000U), PLLPERIPH1(2, 2, 0, 216000000U), PLLPERIPH1(1, 4, 0, 240000000U), PLLPERIPH1(0, 10, 0, 264000000U), PLLPERIPH1(2, 3, 0, 288000000U), PLLPERIPH1(0, 12, 0, 312000000U), PLLPERIPH1(0, 13, 0, 336000000U), PLLPERIPH1(0, 14, 0, 360000000U), PLLPERIPH1(1, 7, 0, 384000000U), PLLPERIPH1(0, 16, 0, 408000000U), PLLPERIPH1(1, 8, 0, 432000000U), PLLPERIPH1(0, 18, 0, 456000000U), PLLPERIPH1(3, 4, 0, 480000000U), PLLPERIPH1(2, 6, 0, 504000000U), PLLPERIPH1(1, 10, 0, 528000000U), PLLPERIPH1(0, 22, 0, 552000000U), PLLPERIPH1(1, 11, 0, 576000000U), PLLPERIPH1(0, 24, 0, 600000000U), PLLPERIPH1(0, 25, 0, 624000000U), PLLPERIPH1(0, 26, 0, 648000000U), PLLPERIPH1(0, 27, 0, 672000000U), PLLPERIPH1(0, 28, 0, 696000000U), PLLPERIPH1(2, 9, 0, 720000000U), PLLPERIPH1(0, 30, 0, 744000000U), PLLPERIPH1(1, 15, 0, 768000000U), PLLPERIPH1(2, 10, 0, 792000000U), PLLPERIPH1(1, 16, 0, 816000000U), PLLPERIPH1(3, 8, 0, 864000000U), PLLPERIPH1(1, 18, 0, 912000000U), PLLPERIPH1(2, 12, 0, 936000000U), PLLPERIPH1(1, 19, 0, 960000000U), PLLPERIPH1(2, 13, 0, 1008000000U), PLLPERIPH1(3, 10, 0, 1056000000U), PLLPERIPH1(1, 21, 0, 1056000000U), PLLPERIPH1(2, 14, 0, 1080000000U), PLLPERIPH1(1, 22, 0, 1104000000U), PLLPERIPH1(1, 23, 0, 1152000000U), PLLPERIPH1(1, 24, 0, 1200000000U), PLLPERIPH1(2, 16, 0, 1224000000U), PLLPERIPH1(3, 12, 0, 1248000000U), PLLPERIPH1(1, 26, 0, 1296000000U), PLLPERIPH1(3, 13, 0, 1344000000U), PLLPERIPH1(2, 18, 0, 1368000000U), PLLPERIPH1(1, 28, 0, 1392000000U), PLLPERIPH1(2, 19, 0, 1440000000U), PLLPERIPH1(1, 30, 0, 1488000000U), PLLPERIPH1(2, 20, 0, 1512000000U), PLLPERIPH1(1, 31, 0, 1536000000U), PLLPERIPH1(2, 21, 0, 1584000000U), PLLPERIPH1(3, 16, 0, 1632000000U), PLLPERIPH1(2, 22, 0, 1656000000U), PLLPERIPH1(3, 17, 0, 1728000000U), PLLPERIPH1(2, 24, 0, 1800000000U), PLLPERIPH1(3, 18, 0, 1824000000U), PLLPERIPH1(2, 25, 0, 1872000000U), PLLPERIPH1(3, 19, 0, 1920000000U), PLLPERIPH1(2, 26, 0, 1944000000U), PLLPERIPH1(2, 27, 0, 2016000000U), PLLPERIPH1(2, 28, 0, 2088000000U), }; /* * PLLVIDEO1(n,m,freq) F_N8X7_M0X4 */ struct sunxi_clk_factor_freq factor_pllvideo1_tbl[] = { PLLVIDEO1(11, 1, 144000000U), PLLVIDEO1(49, 7, 150000000U), PLLVIDEO1(18, 2, 152000000U), PLLVIDEO1(50, 7, 153000000U), PLLVIDEO1(12, 1, 156000000U), PLLVIDEO1(52, 7, 159000000U), PLLVIDEO1(19, 2, 160000000U), PLLVIDEO1(26, 3, 162000000U), PLLVIDEO1(13, 1, 168000000U), PLLVIDEO1(56, 7, 171000000U), PLLVIDEO1(57, 7, 174000000U), PLLVIDEO1(21, 2, 176000000U), PLLVIDEO1(29, 3, 180000000U), PLLVIDEO1(60, 7, 183000000U), PLLVIDEO1(22, 2, 184000000U), PLLVIDEO1(30, 3, 186000000U), PLLVIDEO1(62, 7, 189000000U), PLLVIDEO1(31, 3, 192000000U), PLLVIDEO1(64, 7, 195000000U), PLLVIDEO1(32, 3, 198000000U), PLLVIDEO1(65, 7, 198000000U), PLLVIDEO1(24, 2, 200000000U), PLLVIDEO1(66, 7, 201000000U), PLLVIDEO1(33, 3, 204000000U), PLLVIDEO1(68, 7, 207000000U), PLLVIDEO1(25, 2, 208000000U), PLLVIDEO1(34, 3, 210000000U), PLLVIDEO1(70, 7, 213000000U), PLLVIDEO1(8, 0, 216000000U), PLLVIDEO1(72, 7, 219000000U), PLLVIDEO1(36, 3, 222000000U), PLLVIDEO1(27, 2, 224000000U), PLLVIDEO1(74, 7, 225000000U), PLLVIDEO1(37, 3, 228000000U), PLLVIDEO1(76, 7, 231000000U), PLLVIDEO1(28, 2, 232000000U), PLLVIDEO1(38, 3, 234000000U), PLLVIDEO1(78, 7, 237000000U), PLLVIDEO1(29, 2, 240000000U), PLLVIDEO1(80, 7, 243000000U), PLLVIDEO1(40, 3, 246000000U), PLLVIDEO1(30, 2, 248000000U), PLLVIDEO1(82, 7, 249000000U), PLLVIDEO1(20, 1, 252000000U), PLLVIDEO1(84, 7, 255000000U), PLLVIDEO1(31, 2, 256000000U), PLLVIDEO1(42, 3, 258000000U), PLLVIDEO1(86, 7, 261000000U), PLLVIDEO1(10, 0, 264000000U), PLLVIDEO1(88, 7, 267000000U), PLLVIDEO1(44, 3, 270000000U), PLLVIDEO1(33, 2, 272000000U), PLLVIDEO1(90, 7, 273000000U), PLLVIDEO1(91, 7, 276000000U), PLLVIDEO1(92, 7, 279000000U), PLLVIDEO1(34, 2, 280000000U), PLLVIDEO1(46, 3, 282000000U), PLLVIDEO1(94, 7, 285000000U), PLLVIDEO1(11, 0, 288000000U), PLLVIDEO1(96, 7, 291000000U), PLLVIDEO1(48, 3, 294000000U), PLLVIDEO1(36, 2, 296000000U), PLLVIDEO1(98, 7, 297000000U), PLLVIDEO1(24, 1, 300000000U), PLLVIDEO1(100, 7, 303000000U), PLLVIDEO1(37, 2, 304000000U), PLLVIDEO1(101, 7, 306000000U), PLLVIDEO1(102, 7, 309000000U), PLLVIDEO1(38, 2, 312000000U), PLLVIDEO1(104, 7, 315000000U), PLLVIDEO1(52, 3, 318000000U), PLLVIDEO1(105, 7, 318000000U), PLLVIDEO1(39, 2, 320000000U), PLLVIDEO1(106, 7, 321000000U), PLLVIDEO1(26, 1, 324000000U), PLLVIDEO1(108, 7, 327000000U), PLLVIDEO1(40, 2, 328000000U), PLLVIDEO1(109, 7, 330000000U), PLLVIDEO1(110, 7, 333000000U), PLLVIDEO1(13, 0, 336000000U), PLLVIDEO1(112, 7, 339000000U), PLLVIDEO1(56, 3, 342000000U), PLLVIDEO1(114, 7, 345000000U), PLLVIDEO1(28, 1, 348000000U), PLLVIDEO1(116, 7, 351000000U), PLLVIDEO1(117, 7, 354000000U), PLLVIDEO1(118, 7, 357000000U), PLLVIDEO1(29, 1, 360000000U), PLLVIDEO1(120, 7, 363000000U), PLLVIDEO1(60, 3, 366000000U), PLLVIDEO1(122, 7, 369000000U), PLLVIDEO1(61, 3, 372000000U), PLLVIDEO1(124, 7, 375000000U), PLLVIDEO1(125, 7, 378000000U), PLLVIDEO1(126, 7, 381000000U), PLLVIDEO1(31, 1, 384000000U), PLLVIDEO1(64, 3, 390000000U), PLLVIDEO1(32, 1, 396000000U), PLLVIDEO1(66, 3, 402000000U), PLLVIDEO1(67, 3, 408000000U), PLLVIDEO1(68, 3, 414000000U), PLLVIDEO1(34, 1, 420000000U), PLLVIDEO1(70, 3, 426000000U), PLLVIDEO1(17, 0, 432000000U), PLLVIDEO1(72, 3, 438000000U), PLLVIDEO1(73, 3, 444000000U), PLLVIDEO1(74, 3, 450000000U), PLLVIDEO1(18, 0, 456000000U), PLLVIDEO1(76, 3, 462000000U), PLLVIDEO1(77, 3, 468000000U), PLLVIDEO1(78, 3, 474000000U), PLLVIDEO1(39, 1, 480000000U), PLLVIDEO1(80, 3, 486000000U), PLLVIDEO1(40, 1, 492000000U), PLLVIDEO1(82, 3, 498000000U), PLLVIDEO1(41, 1, 504000000U), PLLVIDEO1(84, 3, 510000000U), PLLVIDEO1(85, 3, 516000000U), PLLVIDEO1(86, 3, 522000000U), PLLVIDEO1(21, 0, 528000000U), PLLVIDEO1(88, 3, 534000000U), PLLVIDEO1(89, 3, 540000000U), PLLVIDEO1(90, 3, 546000000U), PLLVIDEO1(22, 0, 552000000U), PLLVIDEO1(92, 3, 558000000U), PLLVIDEO1(93, 3, 564000000U), PLLVIDEO1(94, 3, 570000000U), PLLVIDEO1(23, 0, 576000000U), PLLVIDEO1(96, 3, 582000000U), PLLVIDEO1(97, 3, 588000000U), PLLVIDEO1(98, 3, 594000000U), PLLVIDEO1(24, 0, 600000000U), PLLVIDEO1(100, 3, 606000000U), PLLVIDEO1(101, 3, 612000000U), PLLVIDEO1(102, 3, 618000000U), PLLVIDEO1(103, 3, 624000000U), PLLVIDEO1(104, 3, 630000000U), PLLVIDEO1(105, 3, 636000000U), PLLVIDEO1(106, 3, 642000000U), PLLVIDEO1(107, 3, 648000000U), PLLVIDEO1(108, 3, 654000000U), PLLVIDEO1(109, 3, 660000000U), PLLVIDEO1(110, 3, 666000000U), PLLVIDEO1(111, 3, 672000000U), PLLVIDEO1(112, 3, 678000000U), PLLVIDEO1(113, 3, 684000000U), PLLVIDEO1(114, 3, 690000000U), PLLVIDEO1(28, 0, 696000000U), PLLVIDEO1(116, 3, 702000000U), PLLVIDEO1(117, 3, 708000000U), PLLVIDEO1(118, 3, 714000000U), PLLVIDEO1(29, 0, 720000000U), PLLVIDEO1(120, 3, 726000000U), PLLVIDEO1(121, 3, 732000000U), PLLVIDEO1(122, 3, 738000000U), PLLVIDEO1(123, 3, 744000000U), PLLVIDEO1(124, 3, 750000000U), PLLVIDEO1(125, 3, 756000000U), PLLVIDEO1(126, 3, 762000000U), PLLVIDEO1(127, 3, 768000000U), PLLVIDEO1(32, 0, 792000000U), PLLVIDEO1(33, 0, 816000000U), PLLVIDEO1(34, 0, 840000000U), PLLVIDEO1(35, 0, 864000000U), PLLVIDEO1(36, 0, 888000000U), PLLVIDEO1(37, 0, 912000000U), PLLVIDEO1(38, 0, 936000000U), PLLVIDEO1(39, 0, 960000000U), PLLVIDEO1(40, 0, 984000000U), PLLVIDEO1(41, 0, 1008000000U), }; /* * PLLGPU(n,m,freq) F_N8X7_M0X4 */ struct sunxi_clk_factor_freq factor_pllgpu_tbl[] = { PLLGPU(11, 1, 144000000U), PLLGPU(48, 7, 147000000U), PLLGPU(24, 3, 150000000U), PLLGPU(18, 2, 152000000U), PLLGPU(50, 7, 153000000U), PLLGPU(12, 1, 156000000U), PLLGPU(52, 7, 159000000U), PLLGPU(19, 2, 160000000U), PLLGPU(26, 3, 162000000U), PLLGPU(13, 1, 168000000U), PLLGPU(56, 7, 171000000U), PLLGPU(28, 3, 174000000U), PLLGPU(21, 2, 176000000U), PLLGPU(58, 7, 177000000U), PLLGPU(14, 1, 180000000U), PLLGPU(60, 7, 183000000U), PLLGPU(22, 2, 184000000U), PLLGPU(30, 3, 186000000U), PLLGPU(62, 7, 189000000U), PLLGPU(15, 1, 192000000U), PLLGPU(64, 7, 195000000U), PLLGPU(32, 3, 198000000U), PLLGPU(24, 2, 200000000U), PLLGPU(66, 7, 201000000U), PLLGPU(16, 1, 204000000U), PLLGPU(68, 7, 207000000U), PLLGPU(25, 2, 208000000U), PLLGPU(34, 3, 210000000U), PLLGPU(70, 7, 213000000U), PLLGPU(8, 0, 216000000U), PLLGPU(72, 7, 219000000U), PLLGPU(36, 3, 222000000U), PLLGPU(27, 2, 224000000U), PLLGPU(74, 7, 225000000U), PLLGPU(37, 3, 228000000U), PLLGPU(76, 7, 231000000U), PLLGPU(28, 2, 232000000U), PLLGPU(38, 3, 234000000U), PLLGPU(78, 7, 237000000U), PLLGPU(9, 0, 240000000U), PLLGPU(80, 7, 243000000U), PLLGPU(40, 3, 246000000U), PLLGPU(30, 2, 248000000U), PLLGPU(82, 7, 249000000U), PLLGPU(20, 1, 252000000U), PLLGPU(84, 7, 255000000U), PLLGPU(31, 2, 256000000U), PLLGPU(42, 3, 258000000U), PLLGPU(86, 7, 261000000U), PLLGPU(10, 0, 264000000U), PLLGPU(88, 7, 267000000U), PLLGPU(44, 3, 270000000U), PLLGPU(33, 2, 272000000U), PLLGPU(90, 7, 273000000U), PLLGPU(91, 7, 276000000U), PLLGPU(92, 7, 279000000U), PLLGPU(34, 2, 280000000U), PLLGPU(93, 7, 282000000U), PLLGPU(94, 7, 285000000U), PLLGPU(11, 0, 288000000U), PLLGPU(96, 7, 291000000U), PLLGPU(48, 3, 294000000U), PLLGPU(36, 2, 296000000U), PLLGPU(98, 7, 297000000U), PLLGPU(49, 3, 300000000U), PLLGPU(100, 7, 303000000U), PLLGPU(37, 2, 304000000U), PLLGPU(50, 3, 306000000U), PLLGPU(102, 7, 309000000U), PLLGPU(25, 1, 312000000U), PLLGPU(104, 7, 315000000U), PLLGPU(105, 7, 318000000U), PLLGPU(39, 2, 320000000U), PLLGPU(106, 7, 321000000U), PLLGPU(26, 1, 324000000U), PLLGPU(108, 7, 327000000U), PLLGPU(40, 2, 328000000U), PLLGPU(54, 3, 330000000U), PLLGPU(110, 7, 333000000U), PLLGPU(27, 1, 336000000U), PLLGPU(112, 7, 339000000U), PLLGPU(56, 3, 342000000U), PLLGPU(114, 7, 345000000U), PLLGPU(28, 1, 348000000U), PLLGPU(116, 7, 351000000U), PLLGPU(117, 7, 354000000U), PLLGPU(118, 7, 357000000U), PLLGPU(14, 0, 360000000U), PLLGPU(120, 7, 363000000U), PLLGPU(60, 3, 366000000U), PLLGPU(122, 7, 369000000U), PLLGPU(123, 7, 372000000U), PLLGPU(124, 7, 375000000U), PLLGPU(62, 3, 378000000U), PLLGPU(126, 7, 381000000U), PLLGPU(63, 3, 384000000U), PLLGPU(64, 3, 390000000U), PLLGPU(32, 1, 396000000U), PLLGPU(66, 3, 402000000U), PLLGPU(16, 0, 408000000U), PLLGPU(68, 3, 414000000U), PLLGPU(69, 3, 420000000U), PLLGPU(70, 3, 426000000U), PLLGPU(35, 1, 432000000U), PLLGPU(72, 3, 438000000U), PLLGPU(73, 3, 444000000U), PLLGPU(74, 3, 450000000U), PLLGPU(37, 1, 456000000U), PLLGPU(76, 3, 462000000U), PLLGPU(38, 1, 468000000U), PLLGPU(78, 3, 474000000U), PLLGPU(19, 0, 480000000U), PLLGPU(80, 3, 486000000U), PLLGPU(81, 3, 492000000U), PLLGPU(82, 3, 498000000U), PLLGPU(41, 1, 504000000U), PLLGPU(84, 3, 510000000U), PLLGPU(85, 3, 516000000U), PLLGPU(86, 3, 522000000U), PLLGPU(87, 3, 528000000U), PLLGPU(88, 3, 534000000U), PLLGPU(89, 3, 540000000U), PLLGPU(90, 3, 546000000U), PLLGPU(91, 3, 552000000U), PLLGPU(92, 3, 558000000U), PLLGPU(93, 3, 564000000U), PLLGPU(94, 3, 570000000U), PLLGPU(23, 0, 576000000U), PLLGPU(96, 3, 582000000U), PLLGPU(97, 3, 588000000U), PLLGPU(98, 3, 594000000U), PLLGPU(99, 3, 600000000U), PLLGPU(100, 3, 606000000U), PLLGPU(101, 3, 612000000U), PLLGPU(102, 3, 618000000U), PLLGPU(103, 3, 624000000U), PLLGPU(104, 3, 630000000U), PLLGPU(105, 3, 636000000U), PLLGPU(106, 3, 642000000U), PLLGPU(26, 0, 648000000U), PLLGPU(108, 3, 654000000U), PLLGPU(109, 3, 660000000U), PLLGPU(110, 3, 666000000U), PLLGPU(27, 0, 672000000U), PLLGPU(112, 3, 678000000U), PLLGPU(113, 3, 684000000U), PLLGPU(114, 3, 690000000U), PLLGPU(28, 0, 696000000U), PLLGPU(116, 3, 702000000U), PLLGPU(117, 3, 708000000U), PLLGPU(118, 3, 714000000U), PLLGPU(119, 3, 720000000U), PLLGPU(120, 3, 726000000U), PLLGPU(121, 3, 732000000U), PLLGPU(122, 3, 738000000U), PLLGPU(30, 0, 744000000U), PLLGPU(124, 3, 750000000U), PLLGPU(125, 3, 756000000U), PLLGPU(126, 3, 762000000U), PLLGPU(127, 3, 768000000U), PLLGPU(32, 0, 792000000U), PLLGPU(33, 0, 816000000U), PLLGPU(34, 0, 840000000U), PLLGPU(35, 0, 864000000U), PLLGPU(36, 0, 888000000U), PLLGPU(37, 0, 912000000U), PLLGPU(38, 0, 936000000U), PLLGPU(39, 0, 960000000U), PLLGPU(40, 0, 984000000U), PLLGPU(41, 0, 1008000000U), }; /* * PLLSATA(n,k,m,freq) F_N8X7_K4x2_M0X4 */ struct sunxi_clk_factor_freq factor_pllsata_tbl[] = { PLLSATA(24, 1, 1, 100000000U), }; /* * PLLDE(n,m,freq) F_N8X7_M0X4 */ struct sunxi_clk_factor_freq factor_pllde_tbl[] = { PLLDE(4, 0, 120000000U), PLLDE(15, 2, 128000000U), PLLDE(10, 1, 132000000U), PLLDE(44, 7, 135000000U), PLLDE(16, 2, 136000000U), PLLDE(22, 3, 138000000U), PLLDE(17, 2, 144000000U), PLLDE(24, 3, 150000000U), PLLDE(18, 2, 152000000U), PLLDE(12, 1, 156000000U), PLLDE(19, 2, 160000000U), PLLDE(26, 3, 162000000U), PLLDE(54, 7, 165000000U), PLLDE(27, 3, 168000000U), PLLDE(56, 7, 171000000U), PLLDE(28, 3, 174000000U), PLLDE(21, 2, 176000000U), PLLDE(29, 3, 180000000U), PLLDE(60, 7, 183000000U), PLLDE(22, 2, 184000000U), PLLDE(30, 3, 186000000U), PLLDE(62, 7, 189000000U), PLLDE(15, 1, 192000000U), PLLDE(64, 7, 195000000U), PLLDE(32, 3, 198000000U), PLLDE(24, 2, 200000000U), PLLDE(66, 7, 201000000U), PLLDE(16, 1, 204000000U), PLLDE(68, 7, 207000000U), PLLDE(25, 2, 208000000U), PLLDE(34, 3, 210000000U), PLLDE(70, 7, 213000000U), PLLDE(17, 1, 216000000U), PLLDE(72, 7, 219000000U), PLLDE(36, 3, 222000000U), PLLDE(27, 2, 224000000U), PLLDE(74, 7, 225000000U), PLLDE(18, 1, 228000000U), PLLDE(76, 7, 231000000U), PLLDE(28, 2, 232000000U), PLLDE(38, 3, 234000000U), PLLDE(78, 7, 237000000U), PLLDE(19, 1, 240000000U), PLLDE(80, 7, 243000000U), PLLDE(40, 3, 246000000U), PLLDE(30, 2, 248000000U), PLLDE(82, 7, 249000000U), PLLDE(20, 1, 252000000U), PLLDE(84, 7, 255000000U), PLLDE(31, 2, 256000000U), PLLDE(85, 7, 258000000U), PLLDE(86, 7, 261000000U), PLLDE(32, 2, 264000000U), PLLDE(88, 7, 267000000U), PLLDE(44, 3, 270000000U), PLLDE(33, 2, 272000000U), PLLDE(90, 7, 273000000U), PLLDE(22, 1, 276000000U), PLLDE(92, 7, 279000000U), PLLDE(34, 2, 280000000U), PLLDE(46, 3, 282000000U), PLLDE(94, 7, 285000000U), PLLDE(23, 1, 288000000U), PLLDE(96, 7, 291000000U), PLLDE(48, 3, 294000000U), PLLDE(36, 2, 296000000U), PLLDE(98, 7, 297000000U), PLLDE(49, 3, 300000000U), PLLDE(100, 7, 303000000U), PLLDE(37, 2, 304000000U), PLLDE(50, 3, 306000000U), PLLDE(102, 7, 309000000U), PLLDE(25, 1, 312000000U), PLLDE(104, 7, 315000000U), PLLDE(52, 3, 318000000U), PLLDE(39, 2, 320000000U), PLLDE(106, 7, 321000000U), PLLDE(53, 3, 324000000U), PLLDE(108, 7, 327000000U), PLLDE(40, 2, 328000000U), PLLDE(54, 3, 330000000U), PLLDE(110, 7, 333000000U), PLLDE(13, 0, 336000000U), PLLDE(112, 7, 339000000U), PLLDE(56, 3, 342000000U), PLLDE(114, 7, 345000000U), PLLDE(57, 3, 348000000U), PLLDE(116, 7, 351000000U), PLLDE(58, 3, 354000000U), PLLDE(118, 7, 357000000U), PLLDE(14, 0, 360000000U), PLLDE(120, 7, 363000000U), PLLDE(121, 7, 366000000U), PLLDE(122, 7, 369000000U), PLLDE(61, 3, 372000000U), PLLDE(124, 7, 375000000U), PLLDE(125, 7, 378000000U), PLLDE(126, 7, 381000000U), PLLDE(63, 3, 384000000U), PLLDE(64, 3, 390000000U), PLLDE(32, 1, 396000000U), PLLDE(66, 3, 402000000U), PLLDE(67, 3, 408000000U), PLLDE(68, 3, 414000000U), PLLDE(69, 3, 420000000U), PLLDE(70, 3, 426000000U), PLLDE(35, 1, 432000000U), PLLDE(72, 3, 438000000U), PLLDE(36, 1, 444000000U), PLLDE(74, 3, 450000000U), PLLDE(37, 1, 456000000U), PLLDE(76, 3, 462000000U), PLLDE(38, 1, 468000000U), PLLDE(78, 3, 474000000U), PLLDE(79, 3, 480000000U), PLLDE(80, 3, 486000000U), PLLDE(40, 1, 492000000U), PLLDE(82, 3, 498000000U), PLLDE(20, 0, 504000000U), PLLDE(84, 3, 510000000U), PLLDE(85, 3, 516000000U), PLLDE(86, 3, 522000000U), PLLDE(87, 3, 528000000U), PLLDE(88, 3, 534000000U), PLLDE(89, 3, 540000000U), PLLDE(90, 3, 546000000U), PLLDE(22, 0, 552000000U), PLLDE(92, 3, 558000000U), PLLDE(93, 3, 564000000U), PLLDE(94, 3, 570000000U), PLLDE(23, 0, 576000000U), PLLDE(96, 3, 582000000U), PLLDE(97, 3, 588000000U), PLLDE(98, 3, 594000000U), PLLDE(99, 3, 600000000U), PLLDE(100, 3, 606000000U), PLLDE(101, 3, 612000000U), PLLDE(102, 3, 618000000U), PLLDE(103, 3, 624000000U), PLLDE(104, 3, 630000000U), PLLDE(105, 3, 636000000U), PLLDE(106, 3, 642000000U), PLLDE(26, 0, 648000000U), PLLDE(108, 3, 654000000U), PLLDE(109, 3, 660000000U), PLLDE(110, 3, 666000000U), PLLDE(27, 0, 672000000U), PLLDE(112, 3, 678000000U), PLLDE(113, 3, 684000000U), PLLDE(114, 3, 690000000U), PLLDE(115, 3, 696000000U), PLLDE(116, 3, 702000000U), PLLDE(117, 3, 708000000U), PLLDE(118, 3, 714000000U), PLLDE(119, 3, 720000000U), PLLDE(120, 3, 726000000U), PLLDE(121, 3, 732000000U), PLLDE(122, 3, 738000000U), PLLDE(30, 0, 744000000U), PLLDE(124, 3, 750000000U), PLLDE(125, 3, 756000000U), PLLDE(126, 3, 762000000U), PLLDE(31, 0, 768000000U), PLLDE(32, 0, 792000000U), PLLDE(33, 0, 816000000U), PLLDE(34, 0, 840000000U), PLLDE(35, 0, 864000000U), PLLDE(36, 0, 888000000U), PLLDE(37, 0, 912000000U), PLLDE(38, 0, 936000000U), PLLDE(39, 0, 960000000U), PLLDE(40, 0, 984000000U), PLLDE(41, 0, 1008000000U), }; /* * PLLDDR1(n,m,freq) F_N8X7_M0X2 */ struct sunxi_clk_factor_freq factor_pllddr1_tbl[] = { PLLDDR1(10, 3, 66000000U), PLLDDR1(11, 3, 72000000U), PLLDDR1(12, 3, 78000000U), PLLDDR1(9, 2, 80000000U), PLLDDR1(13, 3, 84000000U), PLLDDR1(10, 2, 88000000U), PLLDDR1(14, 3, 90000000U), PLLDDR1(15, 3, 96000000U), PLLDDR1(16, 3, 102000000U), PLLDDR1(12, 2, 104000000U), PLLDDR1(17, 3, 108000000U), PLLDDR1(13, 2, 112000000U), PLLDDR1(18, 3, 114000000U), PLLDDR1(19, 3, 120000000U), PLLDDR1(20, 3, 126000000U), PLLDDR1(15, 2, 128000000U), PLLDDR1(21, 3, 132000000U), PLLDDR1(16, 2, 136000000U), PLLDDR1(22, 3, 138000000U), PLLDDR1(23, 3, 144000000U), PLLDDR1(24, 3, 150000000U), PLLDDR1(18, 2, 152000000U), PLLDDR1(25, 3, 156000000U), PLLDDR1(12, 1, 156000000U), PLLDDR1(19, 2, 160000000U), PLLDDR1(26, 3, 162000000U), PLLDDR1(27, 3, 168000000U), PLLDDR1(28, 3, 174000000U), PLLDDR1(21, 2, 176000000U), PLLDDR1(29, 3, 180000000U), PLLDDR1(22, 2, 184000000U), PLLDDR1(30, 3, 186000000U), PLLDDR1(31, 3, 192000000U), PLLDDR1(32, 3, 198000000U), PLLDDR1(24, 2, 200000000U), PLLDDR1(33, 3, 204000000U), PLLDDR1(25, 2, 208000000U), PLLDDR1(34, 3, 210000000U), PLLDDR1(35, 3, 216000000U), PLLDDR1(36, 3, 222000000U), PLLDDR1(27, 2, 224000000U), PLLDDR1(37, 3, 228000000U), PLLDDR1(28, 2, 232000000U), PLLDDR1(38, 3, 234000000U), PLLDDR1(39, 3, 240000000U), PLLDDR1(40, 3, 246000000U), PLLDDR1(30, 2, 248000000U), PLLDDR1(41, 3, 252000000U), PLLDDR1(31, 2, 256000000U), PLLDDR1(42, 3, 258000000U), PLLDDR1(32, 2, 264000000U), PLLDDR1(44, 3, 270000000U), PLLDDR1(33, 2, 272000000U), PLLDDR1(45, 3, 276000000U), PLLDDR1(34, 2, 280000000U), PLLDDR1(46, 3, 282000000U), PLLDDR1(47, 3, 288000000U), PLLDDR1(48, 3, 294000000U), PLLDDR1(36, 2, 296000000U), PLLDDR1(24, 1, 300000000U), PLLDDR1(37, 2, 304000000U), PLLDDR1(50, 3, 306000000U), PLLDDR1(51, 3, 312000000U), PLLDDR1(52, 3, 318000000U), PLLDDR1(39, 2, 320000000U), PLLDDR1(26, 1, 324000000U), PLLDDR1(40, 2, 328000000U), PLLDDR1(54, 3, 330000000U), PLLDDR1(55, 3, 336000000U), PLLDDR1(56, 3, 342000000U), PLLDDR1(42, 2, 344000000U), PLLDDR1(28, 1, 348000000U), PLLDDR1(57, 3, 348000000U), PLLDDR1(43, 2, 352000000U), PLLDDR1(58, 3, 354000000U), PLLDDR1(59, 3, 360000000U), PLLDDR1(60, 3, 366000000U), PLLDDR1(45, 2, 368000000U), PLLDDR1(30, 1, 372000000U), PLLDDR1(46, 2, 376000000U), PLLDDR1(62, 3, 378000000U), PLLDDR1(31, 1, 384000000U), PLLDDR1(64, 3, 390000000U), PLLDDR1(48, 2, 392000000U), PLLDDR1(65, 3, 396000000U), PLLDDR1(49, 2, 400000000U), PLLDDR1(66, 3, 402000000U), PLLDDR1(67, 3, 408000000U), PLLDDR1(68, 3, 414000000U), PLLDDR1(51, 2, 416000000U), PLLDDR1(34, 1, 420000000U), PLLDDR1(52, 2, 424000000U), PLLDDR1(70, 3, 426000000U), PLLDDR1(53, 2, 432000000U), PLLDDR1(71, 3, 432000000U), PLLDDR1(72, 3, 438000000U), PLLDDR1(54, 2, 440000000U), PLLDDR1(73, 3, 444000000U), PLLDDR1(55, 2, 448000000U), PLLDDR1(74, 3, 450000000U), PLLDDR1(37, 1, 456000000U), PLLDDR1(76, 3, 462000000U), PLLDDR1(57, 2, 464000000U), PLLDDR1(77, 3, 468000000U), PLLDDR1(58, 2, 472000000U), PLLDDR1(78, 3, 474000000U), PLLDDR1(39, 1, 480000000U), PLLDDR1(80, 3, 486000000U), PLLDDR1(60, 2, 488000000U), PLLDDR1(81, 3, 492000000U), PLLDDR1(61, 2, 496000000U), PLLDDR1(82, 3, 498000000U), PLLDDR1(83, 3, 504000000U), PLLDDR1(84, 3, 510000000U), PLLDDR1(63, 2, 512000000U), PLLDDR1(85, 3, 516000000U), PLLDDR1(64, 2, 520000000U), PLLDDR1(86, 3, 522000000U), PLLDDR1(87, 3, 528000000U), PLLDDR1(88, 3, 534000000U), PLLDDR1(66, 2, 536000000U), PLLDDR1(89, 3, 540000000U), PLLDDR1(67, 2, 544000000U), PLLDDR1(90, 3, 546000000U), PLLDDR1(91, 3, 552000000U), PLLDDR1(92, 3, 558000000U), PLLDDR1(69, 2, 560000000U), PLLDDR1(46, 1, 564000000U), PLLDDR1(70, 2, 568000000U), PLLDDR1(94, 3, 570000000U), PLLDDR1(71, 2, 576000000U), PLLDDR1(96, 3, 582000000U), PLLDDR1(72, 2, 584000000U), PLLDDR1(97, 3, 588000000U), PLLDDR1(73, 2, 592000000U), PLLDDR1(98, 3, 594000000U), PLLDDR1(49, 1, 600000000U), PLLDDR1(100, 3, 606000000U), PLLDDR1(75, 2, 608000000U), PLLDDR1(50, 1, 612000000U), PLLDDR1(76, 2, 616000000U), PLLDDR1(102, 3, 618000000U), PLLDDR1(103, 3, 624000000U), PLLDDR1(104, 3, 630000000U), PLLDDR1(78, 2, 632000000U), PLLDDR1(105, 3, 636000000U), PLLDDR1(79, 2, 640000000U), PLLDDR1(106, 3, 642000000U), PLLDDR1(53, 1, 648000000U), PLLDDR1(108, 3, 654000000U), PLLDDR1(81, 2, 656000000U), PLLDDR1(109, 3, 660000000U), PLLDDR1(82, 2, 664000000U), PLLDDR1(110, 3, 666000000U), PLLDDR1(55, 1, 672000000U), PLLDDR1(112, 3, 678000000U), PLLDDR1(84, 2, 680000000U), PLLDDR1(56, 1, 684000000U), PLLDDR1(85, 2, 688000000U), PLLDDR1(114, 3, 690000000U), PLLDDR1(86, 2, 696000000U), PLLDDR1(116, 3, 702000000U), PLLDDR1(87, 2, 704000000U), PLLDDR1(58, 1, 708000000U), PLLDDR1(88, 2, 712000000U), PLLDDR1(118, 3, 714000000U), PLLDDR1(119, 3, 720000000U), PLLDDR1(120, 3, 726000000U), PLLDDR1(90, 2, 728000000U), PLLDDR1(121, 3, 732000000U), PLLDDR1(91, 2, 736000000U), PLLDDR1(122, 3, 738000000U), PLLDDR1(123, 3, 744000000U), PLLDDR1(124, 3, 750000000U), PLLDDR1(93, 2, 752000000U), PLLDDR1(62, 1, 756000000U), PLLDDR1(94, 2, 760000000U), PLLDDR1(126, 3, 762000000U), PLLDDR1(95, 2, 768000000U), PLLDDR1(96, 2, 776000000U), PLLDDR1(64, 1, 780000000U), PLLDDR1(97, 2, 784000000U), PLLDDR1(32, 0, 792000000U), PLLDDR1(99, 2, 800000000U), PLLDDR1(66, 1, 804000000U), PLLDDR1(100, 2, 808000000U), PLLDDR1(67, 1, 816000000U), PLLDDR1(102, 2, 824000000U), PLLDDR1(68, 1, 828000000U), PLLDDR1(103, 2, 832000000U), PLLDDR1(69, 1, 840000000U), PLLDDR1(105, 2, 848000000U), PLLDDR1(70, 1, 852000000U), PLLDDR1(106, 2, 856000000U), PLLDDR1(35, 0, 864000000U), PLLDDR1(108, 2, 872000000U), PLLDDR1(72, 1, 876000000U), PLLDDR1(109, 2, 880000000U), PLLDDR1(110, 2, 888000000U), PLLDDR1(111, 2, 896000000U), PLLDDR1(74, 1, 900000000U), PLLDDR1(112, 2, 904000000U), PLLDDR1(113, 2, 912000000U), PLLDDR1(114, 2, 920000000U), PLLDDR1(76, 1, 924000000U), PLLDDR1(115, 2, 928000000U), PLLDDR1(116, 2, 936000000U), PLLDDR1(117, 2, 944000000U), PLLDDR1(78, 1, 948000000U), PLLDDR1(118, 2, 952000000U), PLLDDR1(39, 0, 960000000U), PLLDDR1(120, 2, 968000000U), PLLDDR1(80, 1, 972000000U), PLLDDR1(121, 2, 976000000U), PLLDDR1(122, 2, 984000000U), PLLDDR1(123, 2, 992000000U), PLLDDR1(82, 1, 996000000U), PLLDDR1(124, 2, 1000000000U), PLLDDR1(125, 2, 1008000000U), PLLDDR1(126, 2, 1016000000U), PLLDDR1(84, 1, 1020000000U), PLLDDR1(127, 2, 1024000000U), PLLDDR1(42, 0, 1032000000U), PLLDDR1(86, 1, 1044000000U), PLLDDR1(87, 1, 1056000000U), PLLDDR1(43, 0, 1056000000U), PLLDDR1(88, 1, 1068000000U), PLLDDR1(44, 0, 1080000000U), PLLDDR1(90, 1, 1092000000U), PLLDDR1(91, 1, 1104000000U), PLLDDR1(92, 1, 1116000000U), PLLDDR1(46, 0, 1128000000U), PLLDDR1(94, 1, 1140000000U), PLLDDR1(95, 1, 1152000000U), PLLDDR1(96, 1, 1164000000U), PLLDDR1(97, 1, 1176000000U), PLLDDR1(98, 1, 1188000000U), PLLDDR1(99, 1, 1200000000U), PLLDDR1(100, 1, 1212000000U), PLLDDR1(101, 1, 1224000000U), PLLDDR1(102, 1, 1236000000U), PLLDDR1(51, 0, 1248000000U), PLLDDR1(104, 1, 1260000000U), PLLDDR1(105, 1, 1272000000U), PLLDDR1(106, 1, 1284000000U), PLLDDR1(53, 0, 1296000000U), PLLDDR1(108, 1, 1308000000U), PLLDDR1(109, 1, 1320000000U), PLLDDR1(110, 1, 1332000000U), PLLDDR1(111, 1, 1344000000U), PLLDDR1(112, 1, 1356000000U), PLLDDR1(113, 1, 1368000000U), PLLDDR1(114, 1, 1380000000U), PLLDDR1(57, 0, 1392000000U), PLLDDR1(116, 1, 1404000000U), PLLDDR1(58, 0, 1416000000U), PLLDDR1(118, 1, 1428000000U), PLLDDR1(119, 1, 1440000000U), PLLDDR1(120, 1, 1452000000U), PLLDDR1(60, 0, 1464000000U), PLLDDR1(122, 1, 1476000000U), PLLDDR1(123, 1, 1488000000U), PLLDDR1(124, 1, 1500000000U), PLLDDR1(125, 1, 1512000000U), PLLDDR1(126, 1, 1524000000U), PLLDDR1(127, 1, 1536000000U), PLLDDR1(64, 0, 1560000000U), PLLDDR1(65, 0, 1584000000U), PLLDDR1(66, 0, 1608000000U), PLLDDR1(67, 0, 1632000000U), PLLDDR1(68, 0, 1656000000U), PLLDDR1(69, 0, 1680000000U), PLLDDR1(70, 0, 1704000000U), PLLDDR1(71, 0, 1728000000U), PLLDDR1(72, 0, 1752000000U), PLLDDR1(73, 0, 1776000000U), PLLDDR1(74, 0, 1800000000U), PLLDDR1(75, 0, 1824000000U), PLLDDR1(76, 0, 1848000000U), PLLDDR1(77, 0, 1872000000U), PLLDDR1(78, 0, 1896000000U), PLLDDR1(79, 0, 1920000000U), PLLDDR1(80, 0, 1944000000U), PLLDDR1(81, 0, 1968000000U), PLLDDR1(82, 0, 1992000000U), PLLDDR1(83, 0, 2016000000U), PLLDDR1(84, 0, 2040000000U), PLLDDR1(85, 0, 2064000000U), PLLDDR1(86, 0, 2088000000U), PLLDDR1(87, 0, 2112000000U), PLLDDR1(88, 0, 2136000000U), PLLDDR1(89, 0, 2160000000U), PLLDDR1(90, 0, 2184000000U), PLLDDR1(91, 0, 2208000000U), PLLDDR1(92, 0, 2232000000U), PLLDDR1(93, 0, 2256000000U), PLLDDR1(94, 0, 2280000000U), PLLDDR1(95, 0, 2304000000U), PLLDDR1(96, 0, 2328000000U), PLLDDR1(97, 0, 2352000000U), PLLDDR1(98, 0, 2376000000U), PLLDDR1(99, 0, 2400000000U), PLLDDR1(100, 0, 2424000000U), PLLDDR1(101, 0, 2448000000U), PLLDDR1(102, 0, 2472000000U), PLLDDR1(103, 0, 2496000000U), PLLDDR1(104, 0, 2520000000U), PLLDDR1(105, 0, 2544000000U), PLLDDR1(106, 0, 2568000000U), PLLDDR1(107, 0, 2592000000U), PLLDDR1(108, 0, 2616000000U), PLLDDR1(109, 0, 2640000000U), PLLDDR1(110, 0, 2664000000U), PLLDDR1(111, 0, 2688000000U), PLLDDR1(112, 0, 2712000000U), PLLDDR1(113, 0, 2736000000U), PLLDDR1(114, 0, 2760000000U), PLLDDR1(115, 0, 2784000000U), PLLDDR1(116, 0, 2808000000U), PLLDDR1(117, 0, 2832000000U), PLLDDR1(118, 0, 2856000000U), PLLDDR1(119, 0, 2880000000U), PLLDDR1(120, 0, 2904000000U), PLLDDR1(121, 0, 2928000000U), PLLDDR1(122, 0, 2952000000U), PLLDDR1(123, 0, 2976000000U), PLLDDR1(124, 0, 3000000000U), PLLDDR1(125, 0, 3024000000U), PLLDDR1(126, 0, 3048000000U), PLLDDR1(127, 0, 3072000000U), }; static unsigned int pllcpu_max, pllvideo0_max, pllve_max, pllddr0_max, pllperiph0_max, pllperiph1_max, pllvideo1_max, pllgpu_max, pllsata_max, pllde_max, pllddr1_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(video0); PLL_MAX_ASSIGN(ve); PLL_MAX_ASSIGN(ddr0); PLL_MAX_ASSIGN(periph0); PLL_MAX_ASSIGN(periph1); PLL_MAX_ASSIGN(video1); PLL_MAX_ASSIGN(gpu); PLL_MAX_ASSIGN(sata); PLL_MAX_ASSIGN(de); PLL_MAX_ASSIGN(ddr1); }