|
@@ -248,87 +248,87 @@ static const struct utmi_clk_param utmi_parameters[] = {
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_c_freq_table[] = {
|
|
|
- { 12000000, 1040000000, 520, 6, 0, 8 },
|
|
|
- { 13000000, 1040000000, 480, 6, 0, 8 },
|
|
|
- { 16800000, 1040000000, 495, 8, 0, 8 }, /* actual: 1039.5 MHz */
|
|
|
- { 19200000, 1040000000, 325, 6, 0, 6 },
|
|
|
- { 26000000, 1040000000, 520, 13, 0, 8 },
|
|
|
- { 12000000, 832000000, 416, 6, 0, 8 },
|
|
|
- { 13000000, 832000000, 832, 13, 0, 8 },
|
|
|
- { 16800000, 832000000, 396, 8, 0, 8 }, /* actual: 831.6 MHz */
|
|
|
- { 19200000, 832000000, 260, 6, 0, 8 },
|
|
|
- { 26000000, 832000000, 416, 13, 0, 8 },
|
|
|
- { 12000000, 624000000, 624, 12, 0, 8 },
|
|
|
- { 13000000, 624000000, 624, 13, 0, 8 },
|
|
|
- { 16800000, 600000000, 520, 14, 0, 8 },
|
|
|
- { 19200000, 624000000, 520, 16, 0, 8 },
|
|
|
- { 26000000, 624000000, 624, 26, 0, 8 },
|
|
|
- { 12000000, 600000000, 600, 12, 0, 8 },
|
|
|
- { 13000000, 600000000, 600, 13, 0, 8 },
|
|
|
- { 16800000, 600000000, 500, 14, 0, 8 },
|
|
|
- { 19200000, 600000000, 375, 12, 0, 6 },
|
|
|
- { 26000000, 600000000, 600, 26, 0, 8 },
|
|
|
- { 12000000, 520000000, 520, 12, 0, 8 },
|
|
|
- { 13000000, 520000000, 520, 13, 0, 8 },
|
|
|
- { 16800000, 520000000, 495, 16, 0, 8 }, /* actual: 519.75 MHz */
|
|
|
- { 19200000, 520000000, 325, 12, 0, 6 },
|
|
|
- { 26000000, 520000000, 520, 26, 0, 8 },
|
|
|
- { 12000000, 416000000, 416, 12, 0, 8 },
|
|
|
- { 13000000, 416000000, 416, 13, 0, 8 },
|
|
|
- { 16800000, 416000000, 396, 16, 0, 8 }, /* actual: 415.8 MHz */
|
|
|
- { 19200000, 416000000, 260, 12, 0, 6 },
|
|
|
- { 26000000, 416000000, 416, 26, 0, 8 },
|
|
|
+ { 12000000, 1040000000, 520, 6, 1, 8 },
|
|
|
+ { 13000000, 1040000000, 480, 6, 1, 8 },
|
|
|
+ { 16800000, 1040000000, 495, 8, 1, 8 }, /* actual: 1039.5 MHz */
|
|
|
+ { 19200000, 1040000000, 325, 6, 1, 6 },
|
|
|
+ { 26000000, 1040000000, 520, 13, 1, 8 },
|
|
|
+ { 12000000, 832000000, 416, 6, 1, 8 },
|
|
|
+ { 13000000, 832000000, 832, 13, 1, 8 },
|
|
|
+ { 16800000, 832000000, 396, 8, 1, 8 }, /* actual: 831.6 MHz */
|
|
|
+ { 19200000, 832000000, 260, 6, 1, 8 },
|
|
|
+ { 26000000, 832000000, 416, 13, 1, 8 },
|
|
|
+ { 12000000, 624000000, 624, 12, 1, 8 },
|
|
|
+ { 13000000, 624000000, 624, 13, 1, 8 },
|
|
|
+ { 16800000, 600000000, 520, 14, 1, 8 },
|
|
|
+ { 19200000, 624000000, 520, 16, 1, 8 },
|
|
|
+ { 26000000, 624000000, 624, 26, 1, 8 },
|
|
|
+ { 12000000, 600000000, 600, 12, 1, 8 },
|
|
|
+ { 13000000, 600000000, 600, 13, 1, 8 },
|
|
|
+ { 16800000, 600000000, 500, 14, 1, 8 },
|
|
|
+ { 19200000, 600000000, 375, 12, 1, 6 },
|
|
|
+ { 26000000, 600000000, 600, 26, 1, 8 },
|
|
|
+ { 12000000, 520000000, 520, 12, 1, 8 },
|
|
|
+ { 13000000, 520000000, 520, 13, 1, 8 },
|
|
|
+ { 16800000, 520000000, 495, 16, 1, 8 }, /* actual: 519.75 MHz */
|
|
|
+ { 19200000, 520000000, 325, 12, 1, 6 },
|
|
|
+ { 26000000, 520000000, 520, 26, 1, 8 },
|
|
|
+ { 12000000, 416000000, 416, 12, 1, 8 },
|
|
|
+ { 13000000, 416000000, 416, 13, 1, 8 },
|
|
|
+ { 16800000, 416000000, 396, 16, 1, 8 }, /* actual: 415.8 MHz */
|
|
|
+ { 19200000, 416000000, 260, 12, 1, 6 },
|
|
|
+ { 26000000, 416000000, 416, 26, 1, 8 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_m_freq_table[] = {
|
|
|
- { 12000000, 666000000, 666, 12, 0, 8 },
|
|
|
- { 13000000, 666000000, 666, 13, 0, 8 },
|
|
|
- { 16800000, 666000000, 555, 14, 0, 8 },
|
|
|
- { 19200000, 666000000, 555, 16, 0, 8 },
|
|
|
- { 26000000, 666000000, 666, 26, 0, 8 },
|
|
|
- { 12000000, 600000000, 600, 12, 0, 8 },
|
|
|
- { 13000000, 600000000, 600, 13, 0, 8 },
|
|
|
- { 16800000, 600000000, 500, 14, 0, 8 },
|
|
|
- { 19200000, 600000000, 375, 12, 0, 6 },
|
|
|
- { 26000000, 600000000, 600, 26, 0, 8 },
|
|
|
+ { 12000000, 666000000, 666, 12, 1, 8 },
|
|
|
+ { 13000000, 666000000, 666, 13, 1, 8 },
|
|
|
+ { 16800000, 666000000, 555, 14, 1, 8 },
|
|
|
+ { 19200000, 666000000, 555, 16, 1, 8 },
|
|
|
+ { 26000000, 666000000, 666, 26, 1, 8 },
|
|
|
+ { 12000000, 600000000, 600, 12, 1, 8 },
|
|
|
+ { 13000000, 600000000, 600, 13, 1, 8 },
|
|
|
+ { 16800000, 600000000, 500, 14, 1, 8 },
|
|
|
+ { 19200000, 600000000, 375, 12, 1, 6 },
|
|
|
+ { 26000000, 600000000, 600, 26, 1, 8 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_p_freq_table[] = {
|
|
|
- { 12000000, 216000000, 432, 12, 1, 8 },
|
|
|
- { 13000000, 216000000, 432, 13, 1, 8 },
|
|
|
- { 16800000, 216000000, 360, 14, 1, 8 },
|
|
|
- { 19200000, 216000000, 360, 16, 1, 8 },
|
|
|
- { 26000000, 216000000, 432, 26, 1, 8 },
|
|
|
+ { 12000000, 216000000, 432, 12, 2, 8 },
|
|
|
+ { 13000000, 216000000, 432, 13, 2, 8 },
|
|
|
+ { 16800000, 216000000, 360, 14, 2, 8 },
|
|
|
+ { 19200000, 216000000, 360, 16, 2, 8 },
|
|
|
+ { 26000000, 216000000, 432, 26, 2, 8 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_a_freq_table[] = {
|
|
|
- { 9600000, 564480000, 294, 5, 0, 4 },
|
|
|
- { 9600000, 552960000, 288, 5, 0, 4 },
|
|
|
- { 9600000, 24000000, 5, 2, 0, 1 },
|
|
|
- { 28800000, 56448000, 49, 25, 0, 1 },
|
|
|
- { 28800000, 73728000, 64, 25, 0, 1 },
|
|
|
- { 28800000, 24000000, 5, 6, 0, 1 },
|
|
|
+ { 9600000, 564480000, 294, 5, 1, 4 },
|
|
|
+ { 9600000, 552960000, 288, 5, 1, 4 },
|
|
|
+ { 9600000, 24000000, 5, 2, 1, 1 },
|
|
|
+ { 28800000, 56448000, 49, 25, 1, 1 },
|
|
|
+ { 28800000, 73728000, 64, 25, 1, 1 },
|
|
|
+ { 28800000, 24000000, 5, 6, 1, 1 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_d_freq_table[] = {
|
|
|
- { 12000000, 216000000, 216, 12, 0, 4 },
|
|
|
- { 13000000, 216000000, 216, 13, 0, 4 },
|
|
|
- { 16800000, 216000000, 180, 14, 0, 4 },
|
|
|
- { 19200000, 216000000, 180, 16, 0, 4 },
|
|
|
- { 26000000, 216000000, 216, 26, 0, 4 },
|
|
|
- { 12000000, 594000000, 594, 12, 0, 8 },
|
|
|
- { 13000000, 594000000, 594, 13, 0, 8 },
|
|
|
- { 16800000, 594000000, 495, 14, 0, 8 },
|
|
|
- { 19200000, 594000000, 495, 16, 0, 8 },
|
|
|
- { 26000000, 594000000, 594, 26, 0, 8 },
|
|
|
- { 12000000, 1000000000, 1000, 12, 0, 12 },
|
|
|
- { 13000000, 1000000000, 1000, 13, 0, 12 },
|
|
|
- { 19200000, 1000000000, 625, 12, 0, 8 },
|
|
|
- { 26000000, 1000000000, 1000, 26, 0, 12 },
|
|
|
+ { 12000000, 216000000, 216, 12, 1, 4 },
|
|
|
+ { 13000000, 216000000, 216, 13, 1, 4 },
|
|
|
+ { 16800000, 216000000, 180, 14, 1, 4 },
|
|
|
+ { 19200000, 216000000, 180, 16, 1, 4 },
|
|
|
+ { 26000000, 216000000, 216, 26, 1, 4 },
|
|
|
+ { 12000000, 594000000, 594, 12, 1, 8 },
|
|
|
+ { 13000000, 594000000, 594, 13, 1, 8 },
|
|
|
+ { 16800000, 594000000, 495, 14, 1, 8 },
|
|
|
+ { 19200000, 594000000, 495, 16, 1, 8 },
|
|
|
+ { 26000000, 594000000, 594, 26, 1, 8 },
|
|
|
+ { 12000000, 1000000000, 1000, 12, 1, 12 },
|
|
|
+ { 13000000, 1000000000, 1000, 13, 1, 12 },
|
|
|
+ { 19200000, 1000000000, 625, 12, 1, 8 },
|
|
|
+ { 26000000, 1000000000, 1000, 26, 1, 12 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
@@ -339,66 +339,72 @@ static const struct pdiv_map pllu_p[] = {
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_u_freq_table[] = {
|
|
|
- { 12000000, 480000000, 960, 12, 0, 12 },
|
|
|
- { 13000000, 480000000, 960, 13, 0, 12 },
|
|
|
- { 16800000, 480000000, 400, 7, 0, 5 },
|
|
|
- { 19200000, 480000000, 200, 4, 0, 3 },
|
|
|
- { 26000000, 480000000, 960, 26, 0, 12 },
|
|
|
+ { 12000000, 480000000, 960, 12, 1, 12 },
|
|
|
+ { 13000000, 480000000, 960, 13, 1, 12 },
|
|
|
+ { 16800000, 480000000, 400, 7, 1, 5 },
|
|
|
+ { 19200000, 480000000, 200, 4, 1, 3 },
|
|
|
+ { 26000000, 480000000, 960, 26, 1, 12 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
static struct tegra_clk_pll_freq_table pll_x_freq_table[] = {
|
|
|
/* 1.7 GHz */
|
|
|
- { 12000000, 1700000000, 850, 6, 0, 8 },
|
|
|
- { 13000000, 1700000000, 915, 7, 0, 8 }, /* actual: 1699.2 MHz */
|
|
|
- { 16800000, 1700000000, 708, 7, 0, 8 }, /* actual: 1699.2 MHz */
|
|
|
- { 19200000, 1700000000, 885, 10, 0, 8 }, /* actual: 1699.2 MHz */
|
|
|
- { 26000000, 1700000000, 850, 13, 0, 8 },
|
|
|
+ { 12000000, 1700000000, 850, 6, 1, 8 },
|
|
|
+ { 13000000, 1700000000, 915, 7, 1, 8 }, /* actual: 1699.2 MHz */
|
|
|
+ { 16800000, 1700000000, 708, 7, 1, 8 }, /* actual: 1699.2 MHz */
|
|
|
+ { 19200000, 1700000000, 885, 10, 1, 8 }, /* actual: 1699.2 MHz */
|
|
|
+ { 26000000, 1700000000, 850, 13, 1, 8 },
|
|
|
/* 1.6 GHz */
|
|
|
- { 12000000, 1600000000, 800, 6, 0, 8 },
|
|
|
- { 13000000, 1600000000, 738, 6, 0, 8 }, /* actual: 1599.0 MHz */
|
|
|
- { 16800000, 1600000000, 857, 9, 0, 8 }, /* actual: 1599.7 MHz */
|
|
|
- { 19200000, 1600000000, 500, 6, 0, 8 },
|
|
|
- { 26000000, 1600000000, 800, 13, 0, 8 },
|
|
|
+ { 12000000, 1600000000, 800, 6, 1, 8 },
|
|
|
+ { 13000000, 1600000000, 738, 6, 1, 8 }, /* actual: 1599.0 MHz */
|
|
|
+ { 16800000, 1600000000, 857, 9, 1, 8 }, /* actual: 1599.7 MHz */
|
|
|
+ { 19200000, 1600000000, 500, 6, 1, 8 },
|
|
|
+ { 26000000, 1600000000, 800, 13, 1, 8 },
|
|
|
/* 1.5 GHz */
|
|
|
- { 12000000, 1500000000, 750, 6, 0, 8 },
|
|
|
- { 13000000, 1500000000, 923, 8, 0, 8 }, /* actual: 1499.8 MHz */
|
|
|
- { 16800000, 1500000000, 625, 7, 0, 8 },
|
|
|
- { 19200000, 1500000000, 625, 8, 0, 8 },
|
|
|
- { 26000000, 1500000000, 750, 13, 0, 8 },
|
|
|
+ { 12000000, 1500000000, 750, 6, 1, 8 },
|
|
|
+ { 13000000, 1500000000, 923, 8, 1, 8 }, /* actual: 1499.8 MHz */
|
|
|
+ { 16800000, 1500000000, 625, 7, 1, 8 },
|
|
|
+ { 19200000, 1500000000, 625, 8, 1, 8 },
|
|
|
+ { 26000000, 1500000000, 750, 13, 1, 8 },
|
|
|
/* 1.4 GHz */
|
|
|
- { 12000000, 1400000000, 700, 6, 0, 8 },
|
|
|
- { 13000000, 1400000000, 969, 9, 0, 8 }, /* actual: 1399.7 MHz */
|
|
|
- { 16800000, 1400000000, 1000, 12, 0, 8 },
|
|
|
- { 19200000, 1400000000, 875, 12, 0, 8 },
|
|
|
- { 26000000, 1400000000, 700, 13, 0, 8 },
|
|
|
+ { 12000000, 1400000000, 700, 6, 1, 8 },
|
|
|
+ { 13000000, 1400000000, 969, 9, 1, 8 }, /* actual: 1399.7 MHz */
|
|
|
+ { 16800000, 1400000000, 1000, 12, 1, 8 },
|
|
|
+ { 19200000, 1400000000, 875, 12, 1, 8 },
|
|
|
+ { 26000000, 1400000000, 700, 13, 1, 8 },
|
|
|
/* 1.3 GHz */
|
|
|
- { 12000000, 1300000000, 975, 9, 0, 8 },
|
|
|
- { 13000000, 1300000000, 1000, 10, 0, 8 },
|
|
|
- { 16800000, 1300000000, 928, 12, 0, 8 }, /* actual: 1299.2 MHz */
|
|
|
- { 19200000, 1300000000, 812, 12, 0, 8 }, /* actual: 1299.2 MHz */
|
|
|
- { 26000000, 1300000000, 650, 13, 0, 8 },
|
|
|
+ { 12000000, 1300000000, 975, 9, 1, 8 },
|
|
|
+ { 13000000, 1300000000, 1000, 10, 1, 8 },
|
|
|
+ { 16800000, 1300000000, 928, 12, 1, 8 }, /* actual: 1299.2 MHz */
|
|
|
+ { 19200000, 1300000000, 812, 12, 1, 8 }, /* actual: 1299.2 MHz */
|
|
|
+ { 26000000, 1300000000, 650, 13, 1, 8 },
|
|
|
/* 1.2 GHz */
|
|
|
- { 12000000, 1200000000, 1000, 10, 0, 8 },
|
|
|
- { 13000000, 1200000000, 923, 10, 0, 8 }, /* actual: 1199.9 MHz */
|
|
|
- { 16800000, 1200000000, 1000, 14, 0, 8 },
|
|
|
- { 19200000, 1200000000, 1000, 16, 0, 8 },
|
|
|
- { 26000000, 1200000000, 600, 13, 0, 8 },
|
|
|
+ { 12000000, 1200000000, 1000, 10, 1, 8 },
|
|
|
+ { 13000000, 1200000000, 923, 10, 1, 8 }, /* actual: 1199.9 MHz */
|
|
|
+ { 16800000, 1200000000, 1000, 14, 1, 8 },
|
|
|
+ { 19200000, 1200000000, 1000, 16, 1, 8 },
|
|
|
+ { 26000000, 1200000000, 600, 13, 1, 8 },
|
|
|
/* 1.1 GHz */
|
|
|
- { 12000000, 1100000000, 825, 9, 0, 8 },
|
|
|
- { 13000000, 1100000000, 846, 10, 0, 8 }, /* actual: 1099.8 MHz */
|
|
|
- { 16800000, 1100000000, 982, 15, 0, 8 }, /* actual: 1099.8 MHz */
|
|
|
- { 19200000, 1100000000, 859, 15, 0, 8 }, /* actual: 1099.5 MHz */
|
|
|
- { 26000000, 1100000000, 550, 13, 0, 8 },
|
|
|
+ { 12000000, 1100000000, 825, 9, 1, 8 },
|
|
|
+ { 13000000, 1100000000, 846, 10, 1, 8 }, /* actual: 1099.8 MHz */
|
|
|
+ { 16800000, 1100000000, 982, 15, 1, 8 }, /* actual: 1099.8 MHz */
|
|
|
+ { 19200000, 1100000000, 859, 15, 1, 8 }, /* actual: 1099.5 MHz */
|
|
|
+ { 26000000, 1100000000, 550, 13, 1, 8 },
|
|
|
/* 1 GHz */
|
|
|
- { 12000000, 1000000000, 1000, 12, 0, 8 },
|
|
|
- { 13000000, 1000000000, 1000, 13, 0, 8 },
|
|
|
- { 16800000, 1000000000, 833, 14, 0, 8 }, /* actual: 999.6 MHz */
|
|
|
- { 19200000, 1000000000, 625, 12, 0, 8 },
|
|
|
- { 26000000, 1000000000, 1000, 26, 0, 8 },
|
|
|
+ { 12000000, 1000000000, 1000, 12, 1, 8 },
|
|
|
+ { 13000000, 1000000000, 1000, 13, 1, 8 },
|
|
|
+ { 16800000, 1000000000, 833, 14, 1, 8 }, /* actual: 999.6 MHz */
|
|
|
+ { 19200000, 1000000000, 625, 12, 1, 8 },
|
|
|
+ { 26000000, 1000000000, 1000, 26, 1, 8 },
|
|
|
{ 0, 0, 0, 0, 0, 0 },
|
|
|
};
|
|
|
|
|
|
+static const struct pdiv_map plle_p[] = {
|
|
|
+ { .pdiv = 18, .hw_val = 18 },
|
|
|
+ { .pdiv = 24, .hw_val = 24 },
|
|
|
+ { .pdiv = 0, .hw_val = 0 },
|
|
|
+};
|
|
|
+
|
|
|
static struct tegra_clk_pll_freq_table pll_e_freq_table[] = {
|
|
|
/* PLLE special case: use cpcon field to store cml divider value */
|
|
|
{ 12000000, 100000000, 150, 1, 18, 11 },
|
|
@@ -573,6 +579,7 @@ static struct tegra_clk_pll_params pll_e_params = {
|
|
|
.lock_mask = PLLE_MISC_LOCK,
|
|
|
.lock_enable_bit_idx = PLLE_MISC_LOCK_ENABLE,
|
|
|
.lock_delay = 300,
|
|
|
+ .pdiv_tohw = plle_p,
|
|
|
.freq_table = pll_e_freq_table,
|
|
|
.flags = TEGRA_PLLE_CONFIGURE | TEGRA_PLL_FIXED |
|
|
|
TEGRA_PLL_HAS_LOCK_ENABLE | TEGRA_PLL_LOCK_MISC,
|