aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter De Schrijver <pdeschrijver@nvidia.com>2013-10-09 07:47:57 -0400
committerPeter De Schrijver <pdeschrijver@nvidia.com>2013-11-26 11:46:24 -0500
commit73d37e4c7c4b9db26c9e4e1479e00996caa8e3f2 (patch)
tree959eb811facfe4763b6d7c162386b1b108de8b62
parentb8700d506ac4050fd96ce9305df04df811365326 (diff)
clk: tegra: add clkdev registration infra
Add a common infra for registering clkdev. This allows decoupling clk registration from clkdev registration. Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
-rw-r--r--drivers/clk/tegra/clk-tegra114.c322
-rw-r--r--drivers/clk/tegra/clk.c9
-rw-r--r--drivers/clk/tegra/clk.h7
3 files changed, 179 insertions, 159 deletions
diff --git a/drivers/clk/tegra/clk-tegra114.c b/drivers/clk/tegra/clk-tegra114.c
index 8f2ab376c53d..48d4381357bb 100644
--- a/drivers/clk/tegra/clk-tegra114.c
+++ b/drivers/clk/tegra/clk-tegra114.c
@@ -733,69 +733,69 @@ static unsigned long tegra114_input_freq[] = {
733 733
734#define MASK(x) (BIT(x) - 1) 734#define MASK(x) (BIT(x) - 1)
735 735
736#define TEGRA_INIT_DATA_MUX(_name, _con_id, _dev_id, _parents, _offset, \ 736#define TEGRA_INIT_DATA_MUX(_name, _parents, _offset, \
737 _clk_num, _gate_flags, _clk_id) \ 737 _clk_num, _gate_flags, _clk_id) \
738 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 738 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
739 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP, \ 739 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP, \
740 _clk_num, _gate_flags, _clk_id, _parents##_idx, 0) 740 _clk_num, _gate_flags, _clk_id, _parents##_idx, 0)
741 741
742#define TEGRA_INIT_DATA_MUX_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\ 742#define TEGRA_INIT_DATA_MUX_FLAGS(_name, _parents, _offset,\
743 _clk_num, _gate_flags, _clk_id, flags)\ 743 _clk_num, _gate_flags, _clk_id, flags)\
744 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 744 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
745 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\ 745 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\
746 _clk_num, _gate_flags, _clk_id, _parents##_idx, flags) 746 _clk_num, _gate_flags, _clk_id, _parents##_idx, flags)
747 747
748#define TEGRA_INIT_DATA_MUX8(_name, _con_id, _dev_id, _parents, _offset, \ 748#define TEGRA_INIT_DATA_MUX8(_name, _parents, _offset, \
749 _clk_num, _gate_flags, _clk_id) \ 749 _clk_num, _gate_flags, _clk_id) \
750 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 750 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
751 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\ 751 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\
752 _clk_num, _gate_flags, _clk_id, _parents##_idx, 0) 752 _clk_num, _gate_flags, _clk_id, _parents##_idx, 0)
753 753
754#define TEGRA_INIT_DATA_INT_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\ 754#define TEGRA_INIT_DATA_INT_FLAGS(_name, _parents, _offset,\
755 _clk_num, _gate_flags, _clk_id, flags)\ 755 _clk_num, _gate_flags, _clk_id, flags)\
756 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 756 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
757 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \ 757 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
758 TEGRA_DIVIDER_ROUND_UP, _clk_num, \ 758 TEGRA_DIVIDER_ROUND_UP, _clk_num, \
759 _gate_flags, _clk_id, _parents##_idx, flags) 759 _gate_flags, _clk_id, _parents##_idx, flags)
760 760
761#define TEGRA_INIT_DATA_INT8(_name, _con_id, _dev_id, _parents, _offset,\ 761#define TEGRA_INIT_DATA_INT8(_name, _parents, _offset,\
762 _clk_num, _gate_flags, _clk_id) \ 762 _clk_num, _gate_flags, _clk_id) \
763 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 763 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
764 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \ 764 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
765 TEGRA_DIVIDER_ROUND_UP, _clk_num, \ 765 TEGRA_DIVIDER_ROUND_UP, _clk_num, \
766 _gate_flags, _clk_id, _parents##_idx, 0) 766 _gate_flags, _clk_id, _parents##_idx, 0)
767 767
768#define TEGRA_INIT_DATA_UART(_name, _con_id, _dev_id, _parents, _offset,\ 768#define TEGRA_INIT_DATA_UART(_name, _parents, _offset,\
769 _clk_num, _clk_id) \ 769 _clk_num, _clk_id) \
770 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 770 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
771 30, MASK(2), 0, 0, 16, 1, TEGRA_DIVIDER_UART | \ 771 30, MASK(2), 0, 0, 16, 1, TEGRA_DIVIDER_UART | \
772 TEGRA_DIVIDER_ROUND_UP, _clk_num, \ 772 TEGRA_DIVIDER_ROUND_UP, _clk_num, \
773 0, _clk_id, _parents##_idx, 0) 773 0, _clk_id, _parents##_idx, 0)
774 774
775#define TEGRA_INIT_DATA_I2C(_name, _con_id, _dev_id, _parents, _offset,\ 775#define TEGRA_INIT_DATA_I2C(_name, _parents, _offset,\
776 _clk_num, _clk_id) \ 776 _clk_num, _clk_id) \
777 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 777 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
778 30, MASK(2), 0, 0, 16, 0, TEGRA_DIVIDER_ROUND_UP,\ 778 30, MASK(2), 0, 0, 16, 0, TEGRA_DIVIDER_ROUND_UP,\
779 _clk_num, 0, _clk_id, _parents##_idx, 0) 779 _clk_num, 0, _clk_id, _parents##_idx, 0)
780 780
781#define TEGRA_INIT_DATA_NODIV(_name, _con_id, _dev_id, _parents, _offset, \ 781#define TEGRA_INIT_DATA_NODIV(_name, _parents, _offset, \
782 _mux_shift, _mux_mask, _clk_num, \ 782 _mux_shift, _mux_mask, _clk_num, \
783 _gate_flags, _clk_id) \ 783 _gate_flags, _clk_id) \
784 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 784 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset,\
785 _mux_shift, _mux_mask, 0, 0, 0, 0, 0,\ 785 _mux_shift, _mux_mask, 0, 0, 0, 0, 0,\
786 _clk_num, _gate_flags, \ 786 _clk_num, _gate_flags, \
787 _clk_id, _parents##_idx, 0) 787 _clk_id, _parents##_idx, 0)
788 788
789#define TEGRA_INIT_DATA_XUSB(_name, _con_id, _dev_id, _parents, _offset, \ 789#define TEGRA_INIT_DATA_XUSB(_name, _parents, _offset, \
790 _clk_num, _gate_flags, _clk_id) \ 790 _clk_num, _gate_flags, _clk_id) \
791 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset, \ 791 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, _parents, _offset, \
792 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \ 792 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
793 TEGRA_DIVIDER_ROUND_UP, _clk_num, \ 793 TEGRA_DIVIDER_ROUND_UP, _clk_num, \
794 _gate_flags, _clk_id, _parents##_idx, 0) 794 _gate_flags, _clk_id, _parents##_idx, 0)
795 795
796#define TEGRA_INIT_DATA_AUDIO(_name, _con_id, _dev_id, _offset, _clk_num,\ 796#define TEGRA_INIT_DATA_AUDIO(_name, _offset, _clk_num,\
797 _gate_flags, _clk_id) \ 797 _gate_flags, _clk_id) \
798 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, mux_d_audio_clk, \ 798 TEGRA_INIT_DATA_TABLE(_name, NULL, NULL, mux_d_audio_clk, \
799 _offset, 16, 0xE01F, 0, 0, 8, 1, \ 799 _offset, 16, 0xE01F, 0, 0, 8, 1, \
800 TEGRA_DIVIDER_ROUND_UP, _clk_num, \ 800 TEGRA_DIVIDER_ROUND_UP, _clk_num, \
801 _gate_flags , _clk_id, mux_d_audio_clk_idx, 0) 801 _gate_flags , _clk_id, mux_d_audio_clk_idx, 0)
@@ -963,6 +963,71 @@ static const struct clk_div_table pll_re_div_table[] = {
963 { .val = 0, .div = 0 }, 963 { .val = 0, .div = 0 },
964}; 964};
965 965
966static struct tegra_devclk devclks[] __initdata = {
967 { .con_id = "clk_m", .dt_id = TEGRA114_CLK_CLK_M },
968 { .con_id = "pll_ref", .dt_id = TEGRA114_CLK_PLL_REF },
969 { .con_id = "clk_32k", .dt_id = TEGRA114_CLK_CLK_32K },
970 { .con_id = "clk_m_div2", .dt_id = TEGRA114_CLK_CLK_M_DIV2 },
971 { .con_id = "clk_m_div4", .dt_id = TEGRA114_CLK_CLK_M_DIV4 },
972 { .con_id = "pll_c", .dt_id = TEGRA114_CLK_PLL_C },
973 { .con_id = "pll_c_out1", .dt_id = TEGRA114_CLK_PLL_C_OUT1 },
974 { .con_id = "pll_c2", .dt_id = TEGRA114_CLK_PLL_C2 },
975 { .con_id = "pll_c3", .dt_id = TEGRA114_CLK_PLL_C3 },
976 { .con_id = "pll_p", .dt_id = TEGRA114_CLK_PLL_P },
977 { .con_id = "pll_p_out1", .dt_id = TEGRA114_CLK_PLL_P_OUT1 },
978 { .con_id = "pll_p_out2", .dt_id = TEGRA114_CLK_PLL_P_OUT2 },
979 { .con_id = "pll_p_out3", .dt_id = TEGRA114_CLK_PLL_P_OUT3 },
980 { .con_id = "pll_p_out4", .dt_id = TEGRA114_CLK_PLL_P_OUT4 },
981 { .con_id = "pll_m", .dt_id = TEGRA114_CLK_PLL_M },
982 { .con_id = "pll_m_out1", .dt_id = TEGRA114_CLK_PLL_M_OUT1 },
983 { .con_id = "pll_x", .dt_id = TEGRA114_CLK_PLL_X },
984 { .con_id = "pll_x_out0", .dt_id = TEGRA114_CLK_PLL_X_OUT0 },
985 { .con_id = "pll_u", .dt_id = TEGRA114_CLK_PLL_U },
986 { .con_id = "pll_u_480M", .dt_id = TEGRA114_CLK_PLL_U_480M },
987 { .con_id = "pll_u_60M", .dt_id = TEGRA114_CLK_PLL_U_60M },
988 { .con_id = "pll_u_48M", .dt_id = TEGRA114_CLK_PLL_U_48M },
989 { .con_id = "pll_u_12M", .dt_id = TEGRA114_CLK_PLL_U_12M },
990 { .con_id = "pll_d", .dt_id = TEGRA114_CLK_PLL_D },
991 { .con_id = "pll_d_out0", .dt_id = TEGRA114_CLK_PLL_D_OUT0 },
992 { .con_id = "pll_d2", .dt_id = TEGRA114_CLK_PLL_D2 },
993 { .con_id = "pll_d2_out0", .dt_id = TEGRA114_CLK_PLL_D2_OUT0 },
994 { .con_id = "pll_a", .dt_id = TEGRA114_CLK_PLL_A },
995 { .con_id = "pll_a_out0", .dt_id = TEGRA114_CLK_PLL_A_OUT0 },
996 { .con_id = "pll_re_vco", .dt_id = TEGRA114_CLK_PLL_RE_VCO },
997 { .con_id = "pll_re_out", .dt_id = TEGRA114_CLK_PLL_RE_OUT },
998 { .con_id = "pll_e_out0", .dt_id = TEGRA114_CLK_PLL_E_OUT0 },
999 { .con_id = "spdif_in_sync", .dt_id = TEGRA114_CLK_SPDIF_IN_SYNC },
1000 { .con_id = "i2s0_sync", .dt_id = TEGRA114_CLK_I2S0_SYNC },
1001 { .con_id = "i2s1_sync", .dt_id = TEGRA114_CLK_I2S1_SYNC },
1002 { .con_id = "i2s2_sync", .dt_id = TEGRA114_CLK_I2S2_SYNC },
1003 { .con_id = "i2s3_sync", .dt_id = TEGRA114_CLK_I2S3_SYNC },
1004 { .con_id = "i2s4_sync", .dt_id = TEGRA114_CLK_I2S4_SYNC },
1005 { .con_id = "vimclk_sync", .dt_id = TEGRA114_CLK_VIMCLK_SYNC },
1006 { .con_id = "audio0", .dt_id = TEGRA114_CLK_AUDIO0 },
1007 { .con_id = "audio1", .dt_id = TEGRA114_CLK_AUDIO1 },
1008 { .con_id = "audio2", .dt_id = TEGRA114_CLK_AUDIO2 },
1009 { .con_id = "audio3", .dt_id = TEGRA114_CLK_AUDIO3 },
1010 { .con_id = "audio4", .dt_id = TEGRA114_CLK_AUDIO4 },
1011 { .con_id = "spdif", .dt_id = TEGRA114_CLK_SPDIF },
1012 { .con_id = "audio0_2x", .dt_id = TEGRA114_CLK_AUDIO0_2X },
1013 { .con_id = "audio1_2x", .dt_id = TEGRA114_CLK_AUDIO1_2X },
1014 { .con_id = "audio2_2x", .dt_id = TEGRA114_CLK_AUDIO2_2X },
1015 { .con_id = "audio3_2x", .dt_id = TEGRA114_CLK_AUDIO3_2X },
1016 { .con_id = "audio4_2x", .dt_id = TEGRA114_CLK_AUDIO4_2X },
1017 { .con_id = "spdif_2x", .dt_id = TEGRA114_CLK_SPDIF_2X },
1018 { .con_id = "extern1", .dev_id = "clk_out_1", .dt_id = TEGRA114_CLK_EXTERN1 },
1019 { .con_id = "extern2", .dev_id = "clk_out_2", .dt_id = TEGRA114_CLK_EXTERN2 },
1020 { .con_id = "extern3", .dev_id = "clk_out_3", .dt_id = TEGRA114_CLK_EXTERN3 },
1021 { .con_id = "blink", .dt_id = TEGRA114_CLK_BLINK },
1022 { .con_id = "cclk_g", .dt_id = TEGRA114_CLK_CCLK_G },
1023 { .con_id = "cclk_lp", .dt_id = TEGRA114_CLK_CCLK_LP },
1024 { .con_id = "sclk", .dt_id = TEGRA114_CLK_SCLK },
1025 { .con_id = "hclk", .dt_id = TEGRA114_CLK_HCLK },
1026 { .con_id = "pclk", .dt_id = TEGRA114_CLK_PCLK },
1027 { .dev_id = "rtc-tegra", .dt_id = TEGRA114_CLK_RTC },
1028 { .dev_id = "timer", .dt_id = TEGRA114_CLK_TIMER },
1029};
1030
966static struct clk **clks; 1031static struct clk **clks;
967 1032
968static unsigned long osc_freq; 1033static unsigned long osc_freq;
@@ -984,7 +1049,6 @@ static int __init tegra114_osc_clk_init(void __iomem *clk_base)
984 /* clk_m */ 1049 /* clk_m */
985 clk = clk_register_fixed_rate(NULL, "clk_m", NULL, CLK_IS_ROOT, 1050 clk = clk_register_fixed_rate(NULL, "clk_m", NULL, CLK_IS_ROOT,
986 osc_freq); 1051 osc_freq);
987 clk_register_clkdev(clk, "clk_m", NULL);
988 clks[TEGRA114_CLK_CLK_M] = clk; 1052 clks[TEGRA114_CLK_CLK_M] = clk;
989 1053
990 /* pll_ref */ 1054 /* pll_ref */
@@ -992,7 +1056,6 @@ static int __init tegra114_osc_clk_init(void __iomem *clk_base)
992 pll_ref_div = 1 << val; 1056 pll_ref_div = 1 << val;
993 clk = clk_register_fixed_factor(NULL, "pll_ref", "clk_m", 1057 clk = clk_register_fixed_factor(NULL, "pll_ref", "clk_m",
994 CLK_SET_RATE_PARENT, 1, pll_ref_div); 1058 CLK_SET_RATE_PARENT, 1, pll_ref_div);
995 clk_register_clkdev(clk, "pll_ref", NULL);
996 clks[TEGRA114_CLK_PLL_REF] = clk; 1059 clks[TEGRA114_CLK_PLL_REF] = clk;
997 1060
998 pll_ref_freq = osc_freq / pll_ref_div; 1061 pll_ref_freq = osc_freq / pll_ref_div;
@@ -1007,19 +1070,16 @@ static void __init tegra114_fixed_clk_init(void __iomem *clk_base)
1007 /* clk_32k */ 1070 /* clk_32k */
1008 clk = clk_register_fixed_rate(NULL, "clk_32k", NULL, CLK_IS_ROOT, 1071 clk = clk_register_fixed_rate(NULL, "clk_32k", NULL, CLK_IS_ROOT,
1009 32768); 1072 32768);
1010 clk_register_clkdev(clk, "clk_32k", NULL);
1011 clks[TEGRA114_CLK_CLK_32K] = clk; 1073 clks[TEGRA114_CLK_CLK_32K] = clk;
1012 1074
1013 /* clk_m_div2 */ 1075 /* clk_m_div2 */
1014 clk = clk_register_fixed_factor(NULL, "clk_m_div2", "clk_m", 1076 clk = clk_register_fixed_factor(NULL, "clk_m_div2", "clk_m",
1015 CLK_SET_RATE_PARENT, 1, 2); 1077 CLK_SET_RATE_PARENT, 1, 2);
1016 clk_register_clkdev(clk, "clk_m_div2", NULL);
1017 clks[TEGRA114_CLK_CLK_M_DIV2] = clk; 1078 clks[TEGRA114_CLK_CLK_M_DIV2] = clk;
1018 1079
1019 /* clk_m_div4 */ 1080 /* clk_m_div4 */
1020 clk = clk_register_fixed_factor(NULL, "clk_m_div4", "clk_m", 1081 clk = clk_register_fixed_factor(NULL, "clk_m_div4", "clk_m",
1021 CLK_SET_RATE_PARENT, 1, 4); 1082 CLK_SET_RATE_PARENT, 1, 4);
1022 clk_register_clkdev(clk, "clk_m_div4", NULL);
1023 clks[TEGRA114_CLK_CLK_M_DIV4] = clk; 1083 clks[TEGRA114_CLK_CLK_M_DIV4] = clk;
1024 1084
1025} 1085}
@@ -1115,7 +1175,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1115 /* PLLC */ 1175 /* PLLC */
1116 clk = tegra_clk_register_pllxc("pll_c", "pll_ref", clk_base, 1176 clk = tegra_clk_register_pllxc("pll_c", "pll_ref", clk_base,
1117 pmc, 0, &pll_c_params, NULL); 1177 pmc, 0, &pll_c_params, NULL);
1118 clk_register_clkdev(clk, "pll_c", NULL);
1119 clks[TEGRA114_CLK_PLL_C] = clk; 1178 clks[TEGRA114_CLK_PLL_C] = clk;
1120 1179
1121 /* PLLC_OUT1 */ 1180 /* PLLC_OUT1 */
@@ -1125,25 +1184,21 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1125 clk = tegra_clk_register_pll_out("pll_c_out1", "pll_c_out1_div", 1184 clk = tegra_clk_register_pll_out("pll_c_out1", "pll_c_out1_div",
1126 clk_base + PLLC_OUT, 1, 0, 1185 clk_base + PLLC_OUT, 1, 0,
1127 CLK_SET_RATE_PARENT, 0, NULL); 1186 CLK_SET_RATE_PARENT, 0, NULL);
1128 clk_register_clkdev(clk, "pll_c_out1", NULL);
1129 clks[TEGRA114_CLK_PLL_C_OUT1] = clk; 1187 clks[TEGRA114_CLK_PLL_C_OUT1] = clk;
1130 1188
1131 /* PLLC2 */ 1189 /* PLLC2 */
1132 clk = tegra_clk_register_pllc("pll_c2", "pll_ref", clk_base, pmc, 0, 1190 clk = tegra_clk_register_pllc("pll_c2", "pll_ref", clk_base, pmc, 0,
1133 &pll_c2_params, NULL); 1191 &pll_c2_params, NULL);
1134 clk_register_clkdev(clk, "pll_c2", NULL);
1135 clks[TEGRA114_CLK_PLL_C2] = clk; 1192 clks[TEGRA114_CLK_PLL_C2] = clk;
1136 1193
1137 /* PLLC3 */ 1194 /* PLLC3 */
1138 clk = tegra_clk_register_pllc("pll_c3", "pll_ref", clk_base, pmc, 0, 1195 clk = tegra_clk_register_pllc("pll_c3", "pll_ref", clk_base, pmc, 0,
1139 &pll_c3_params, NULL); 1196 &pll_c3_params, NULL);
1140 clk_register_clkdev(clk, "pll_c3", NULL);
1141 clks[TEGRA114_CLK_PLL_C3] = clk; 1197 clks[TEGRA114_CLK_PLL_C3] = clk;
1142 1198
1143 /* PLLP */ 1199 /* PLLP */
1144 clk = tegra_clk_register_pll("pll_p", "pll_ref", clk_base, pmc, 0, 1200 clk = tegra_clk_register_pll("pll_p", "pll_ref", clk_base, pmc, 0,
1145 &pll_p_params, NULL); 1201 &pll_p_params, NULL);
1146 clk_register_clkdev(clk, "pll_p", NULL);
1147 clks[TEGRA114_CLK_PLL_P] = clk; 1202 clks[TEGRA114_CLK_PLL_P] = clk;
1148 1203
1149 /* PLLP_OUT1 */ 1204 /* PLLP_OUT1 */
@@ -1154,7 +1209,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1154 clk_base + PLLP_OUTA, 1, 0, 1209 clk_base + PLLP_OUTA, 1, 0,
1155 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0, 1210 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0,
1156 &pll_div_lock); 1211 &pll_div_lock);
1157 clk_register_clkdev(clk, "pll_p_out1", NULL);
1158 clks[TEGRA114_CLK_PLL_P_OUT1] = clk; 1212 clks[TEGRA114_CLK_PLL_P_OUT1] = clk;
1159 1213
1160 /* PLLP_OUT2 */ 1214 /* PLLP_OUT2 */
@@ -1166,7 +1220,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1166 clk_base + PLLP_OUTA, 17, 16, 1220 clk_base + PLLP_OUTA, 17, 16,
1167 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0, 1221 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0,
1168 &pll_div_lock); 1222 &pll_div_lock);
1169 clk_register_clkdev(clk, "pll_p_out2", NULL);
1170 clks[TEGRA114_CLK_PLL_P_OUT2] = clk; 1223 clks[TEGRA114_CLK_PLL_P_OUT2] = clk;
1171 1224
1172 /* PLLP_OUT3 */ 1225 /* PLLP_OUT3 */
@@ -1177,7 +1230,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1177 clk_base + PLLP_OUTB, 1, 0, 1230 clk_base + PLLP_OUTB, 1, 0,
1178 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0, 1231 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0,
1179 &pll_div_lock); 1232 &pll_div_lock);
1180 clk_register_clkdev(clk, "pll_p_out3", NULL);
1181 clks[TEGRA114_CLK_PLL_P_OUT3] = clk; 1233 clks[TEGRA114_CLK_PLL_P_OUT3] = clk;
1182 1234
1183 /* PLLP_OUT4 */ 1235 /* PLLP_OUT4 */
@@ -1189,14 +1241,12 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1189 clk_base + PLLP_OUTB, 17, 16, 1241 clk_base + PLLP_OUTB, 17, 16,
1190 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0, 1242 CLK_IGNORE_UNUSED | CLK_SET_RATE_PARENT, 0,
1191 &pll_div_lock); 1243 &pll_div_lock);
1192 clk_register_clkdev(clk, "pll_p_out4", NULL);
1193 clks[TEGRA114_CLK_PLL_P_OUT4] = clk; 1244 clks[TEGRA114_CLK_PLL_P_OUT4] = clk;
1194 1245
1195 /* PLLM */ 1246 /* PLLM */
1196 clk = tegra_clk_register_pllm("pll_m", "pll_ref", clk_base, pmc, 1247 clk = tegra_clk_register_pllm("pll_m", "pll_ref", clk_base, pmc,
1197 CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE, 1248 CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE,
1198 &pll_m_params, NULL); 1249 &pll_m_params, NULL);
1199 clk_register_clkdev(clk, "pll_m", NULL);
1200 clks[TEGRA114_CLK_PLL_M] = clk; 1250 clks[TEGRA114_CLK_PLL_M] = clk;
1201 1251
1202 /* PLLM_OUT1 */ 1252 /* PLLM_OUT1 */
@@ -1206,7 +1256,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1206 clk = tegra_clk_register_pll_out("pll_m_out1", "pll_m_out1_div", 1256 clk = tegra_clk_register_pll_out("pll_m_out1", "pll_m_out1_div",
1207 clk_base + PLLM_OUT, 1, 0, CLK_IGNORE_UNUSED | 1257 clk_base + PLLM_OUT, 1, 0, CLK_IGNORE_UNUSED |
1208 CLK_SET_RATE_PARENT, 0, NULL); 1258 CLK_SET_RATE_PARENT, 0, NULL);
1209 clk_register_clkdev(clk, "pll_m_out1", NULL);
1210 clks[TEGRA114_CLK_PLL_M_OUT1] = clk; 1259 clks[TEGRA114_CLK_PLL_M_OUT1] = clk;
1211 1260
1212 /* PLLM_UD */ 1261 /* PLLM_UD */
@@ -1216,13 +1265,11 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1216 /* PLLX */ 1265 /* PLLX */
1217 clk = tegra_clk_register_pllxc("pll_x", "pll_ref", clk_base, 1266 clk = tegra_clk_register_pllxc("pll_x", "pll_ref", clk_base,
1218 pmc, CLK_IGNORE_UNUSED, &pll_x_params, NULL); 1267 pmc, CLK_IGNORE_UNUSED, &pll_x_params, NULL);
1219 clk_register_clkdev(clk, "pll_x", NULL);
1220 clks[TEGRA114_CLK_PLL_X] = clk; 1268 clks[TEGRA114_CLK_PLL_X] = clk;
1221 1269
1222 /* PLLX_OUT0 */ 1270 /* PLLX_OUT0 */
1223 clk = clk_register_fixed_factor(NULL, "pll_x_out0", "pll_x", 1271 clk = clk_register_fixed_factor(NULL, "pll_x_out0", "pll_x",
1224 CLK_SET_RATE_PARENT, 1, 2); 1272 CLK_SET_RATE_PARENT, 1, 2);
1225 clk_register_clkdev(clk, "pll_x_out0", NULL);
1226 clks[TEGRA114_CLK_PLL_X_OUT0] = clk; 1273 clks[TEGRA114_CLK_PLL_X_OUT0] = clk;
1227 1274
1228 /* PLLU */ 1275 /* PLLU */
@@ -1232,7 +1279,6 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1232 1279
1233 clk = tegra_clk_register_pll("pll_u", "pll_ref", clk_base, pmc, 0, 1280 clk = tegra_clk_register_pll("pll_u", "pll_ref", clk_base, pmc, 0,
1234 &pll_u_params, &pll_u_lock); 1281 &pll_u_params, &pll_u_lock);
1235 clk_register_clkdev(clk, "pll_u", NULL);
1236 clks[TEGRA114_CLK_PLL_U] = clk; 1282 clks[TEGRA114_CLK_PLL_U] = clk;
1237 1283
1238 tegra114_utmi_param_configure(clk_base); 1284 tegra114_utmi_param_configure(clk_base);
@@ -1241,55 +1287,46 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1241 clk = clk_register_gate(NULL, "pll_u_480M", "pll_u", 1287 clk = clk_register_gate(NULL, "pll_u_480M", "pll_u",
1242 CLK_SET_RATE_PARENT, clk_base + PLLU_BASE, 1288 CLK_SET_RATE_PARENT, clk_base + PLLU_BASE,
1243 22, 0, &pll_u_lock); 1289 22, 0, &pll_u_lock);
1244 clk_register_clkdev(clk, "pll_u_480M", NULL);
1245 clks[TEGRA114_CLK_PLL_U_480M] = clk; 1290 clks[TEGRA114_CLK_PLL_U_480M] = clk;
1246 1291
1247 /* PLLU_60M */ 1292 /* PLLU_60M */
1248 clk = clk_register_fixed_factor(NULL, "pll_u_60M", "pll_u", 1293 clk = clk_register_fixed_factor(NULL, "pll_u_60M", "pll_u",
1249 CLK_SET_RATE_PARENT, 1, 8); 1294 CLK_SET_RATE_PARENT, 1, 8);
1250 clk_register_clkdev(clk, "pll_u_60M", NULL);
1251 clks[TEGRA114_CLK_PLL_U_60M] = clk; 1295 clks[TEGRA114_CLK_PLL_U_60M] = clk;
1252 1296
1253 /* PLLU_48M */ 1297 /* PLLU_48M */
1254 clk = clk_register_fixed_factor(NULL, "pll_u_48M", "pll_u", 1298 clk = clk_register_fixed_factor(NULL, "pll_u_48M", "pll_u",
1255 CLK_SET_RATE_PARENT, 1, 10); 1299 CLK_SET_RATE_PARENT, 1, 10);
1256 clk_register_clkdev(clk, "pll_u_48M", NULL);
1257 clks[TEGRA114_CLK_PLL_U_48M] = clk; 1300 clks[TEGRA114_CLK_PLL_U_48M] = clk;
1258 1301
1259 /* PLLU_12M */ 1302 /* PLLU_12M */
1260 clk = clk_register_fixed_factor(NULL, "pll_u_12M", "pll_u", 1303 clk = clk_register_fixed_factor(NULL, "pll_u_12M", "pll_u",
1261 CLK_SET_RATE_PARENT, 1, 40); 1304 CLK_SET_RATE_PARENT, 1, 40);
1262 clk_register_clkdev(clk, "pll_u_12M", NULL);
1263 clks[TEGRA114_CLK_PLL_U_12M] = clk; 1305 clks[TEGRA114_CLK_PLL_U_12M] = clk;
1264 1306
1265 /* PLLD */ 1307 /* PLLD */
1266 clk = tegra_clk_register_pll("pll_d", "pll_ref", clk_base, pmc, 0, 1308 clk = tegra_clk_register_pll("pll_d", "pll_ref", clk_base, pmc, 0,
1267 &pll_d_params, &pll_d_lock); 1309 &pll_d_params, &pll_d_lock);
1268 clk_register_clkdev(clk, "pll_d", NULL);
1269 clks[TEGRA114_CLK_PLL_D] = clk; 1310 clks[TEGRA114_CLK_PLL_D] = clk;
1270 1311
1271 /* PLLD_OUT0 */ 1312 /* PLLD_OUT0 */
1272 clk = clk_register_fixed_factor(NULL, "pll_d_out0", "pll_d", 1313 clk = clk_register_fixed_factor(NULL, "pll_d_out0", "pll_d",
1273 CLK_SET_RATE_PARENT, 1, 2); 1314 CLK_SET_RATE_PARENT, 1, 2);
1274 clk_register_clkdev(clk, "pll_d_out0", NULL);
1275 clks[TEGRA114_CLK_PLL_D_OUT0] = clk; 1315 clks[TEGRA114_CLK_PLL_D_OUT0] = clk;
1276 1316
1277 /* PLLD2 */ 1317 /* PLLD2 */
1278 clk = tegra_clk_register_pll("pll_d2", "pll_ref", clk_base, pmc, 0, 1318 clk = tegra_clk_register_pll("pll_d2", "pll_ref", clk_base, pmc, 0,
1279 &pll_d2_params, &pll_d2_lock); 1319 &pll_d2_params, &pll_d2_lock);
1280 clk_register_clkdev(clk, "pll_d2", NULL);
1281 clks[TEGRA114_CLK_PLL_D2] = clk; 1320 clks[TEGRA114_CLK_PLL_D2] = clk;
1282 1321
1283 /* PLLD2_OUT0 */ 1322 /* PLLD2_OUT0 */
1284 clk = clk_register_fixed_factor(NULL, "pll_d2_out0", "pll_d2", 1323 clk = clk_register_fixed_factor(NULL, "pll_d2_out0", "pll_d2",
1285 CLK_SET_RATE_PARENT, 1, 2); 1324 CLK_SET_RATE_PARENT, 1, 2);
1286 clk_register_clkdev(clk, "pll_d2_out0", NULL);
1287 clks[TEGRA114_CLK_PLL_D2_OUT0] = clk; 1325 clks[TEGRA114_CLK_PLL_D2_OUT0] = clk;
1288 1326
1289 /* PLLA */ 1327 /* PLLA */
1290 clk = tegra_clk_register_pll("pll_a", "pll_p_out1", clk_base, pmc, 0, 1328 clk = tegra_clk_register_pll("pll_a", "pll_p_out1", clk_base, pmc, 0,
1291 &pll_a_params, NULL); 1329 &pll_a_params, NULL);
1292 clk_register_clkdev(clk, "pll_a", NULL);
1293 clks[TEGRA114_CLK_PLL_A] = clk; 1330 clks[TEGRA114_CLK_PLL_A] = clk;
1294 1331
1295 /* PLLA_OUT0 */ 1332 /* PLLA_OUT0 */
@@ -1299,25 +1336,21 @@ static void __init tegra114_pll_init(void __iomem *clk_base,
1299 clk = tegra_clk_register_pll_out("pll_a_out0", "pll_a_out0_div", 1336 clk = tegra_clk_register_pll_out("pll_a_out0", "pll_a_out0_div",
1300 clk_base + PLLA_OUT, 1, 0, CLK_IGNORE_UNUSED | 1337 clk_base + PLLA_OUT, 1, 0, CLK_IGNORE_UNUSED |
1301 CLK_SET_RATE_PARENT, 0, NULL); 1338 CLK_SET_RATE_PARENT, 0, NULL);
1302 clk_register_clkdev(clk, "pll_a_out0", NULL);
1303 clks[TEGRA114_CLK_PLL_A_OUT0] = clk; 1339 clks[TEGRA114_CLK_PLL_A_OUT0] = clk;
1304 1340
1305 /* PLLRE */ 1341 /* PLLRE */
1306 clk = tegra_clk_register_pllre("pll_re_vco", "pll_ref", clk_base, pmc, 1342 clk = tegra_clk_register_pllre("pll_re_vco", "pll_ref", clk_base, pmc,
1307 0, &pll_re_vco_params, &pll_re_lock, pll_ref_freq); 1343 0, &pll_re_vco_params, &pll_re_lock, pll_ref_freq);
1308 clk_register_clkdev(clk, "pll_re_vco", NULL);
1309 clks[TEGRA114_CLK_PLL_RE_VCO] = clk; 1344 clks[TEGRA114_CLK_PLL_RE_VCO] = clk;
1310 1345
1311 clk = clk_register_divider_table(NULL, "pll_re_out", "pll_re_vco", 0, 1346 clk = clk_register_divider_table(NULL, "pll_re_out", "pll_re_vco", 0,
1312 clk_base + PLLRE_BASE, 16, 4, 0, 1347 clk_base + PLLRE_BASE, 16, 4, 0,
1313 pll_re_div_table, &pll_re_lock); 1348 pll_re_div_table, &pll_re_lock);
1314 clk_register_clkdev(clk, "pll_re_out", NULL);
1315 clks[TEGRA114_CLK_PLL_RE_OUT] = clk; 1349 clks[TEGRA114_CLK_PLL_RE_OUT] = clk;
1316 1350
1317 /* PLLE */ 1351 /* PLLE */
1318 clk = tegra_clk_register_plle_tegra114("pll_e_out0", "pll_ref", 1352 clk = tegra_clk_register_plle_tegra114("pll_e_out0", "pll_ref",
1319 clk_base, 0, &pll_e_params, NULL); 1353 clk_base, 0, &pll_e_params, NULL);
1320 clk_register_clkdev(clk, "pll_e_out0", NULL);
1321 clks[TEGRA114_CLK_PLL_E_OUT0] = clk; 1354 clks[TEGRA114_CLK_PLL_E_OUT0] = clk;
1322} 1355}
1323 1356
@@ -1344,37 +1377,30 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1344 /* spdif_in_sync */ 1377 /* spdif_in_sync */
1345 clk = tegra_clk_register_sync_source("spdif_in_sync", 24000000, 1378 clk = tegra_clk_register_sync_source("spdif_in_sync", 24000000,
1346 24000000); 1379 24000000);
1347 clk_register_clkdev(clk, "spdif_in_sync", NULL);
1348 clks[TEGRA114_CLK_SPDIF_IN_SYNC] = clk; 1380 clks[TEGRA114_CLK_SPDIF_IN_SYNC] = clk;
1349 1381
1350 /* i2s0_sync */ 1382 /* i2s0_sync */
1351 clk = tegra_clk_register_sync_source("i2s0_sync", 24000000, 24000000); 1383 clk = tegra_clk_register_sync_source("i2s0_sync", 24000000, 24000000);
1352 clk_register_clkdev(clk, "i2s0_sync", NULL);
1353 clks[TEGRA114_CLK_I2S0_SYNC] = clk; 1384 clks[TEGRA114_CLK_I2S0_SYNC] = clk;
1354 1385
1355 /* i2s1_sync */ 1386 /* i2s1_sync */
1356 clk = tegra_clk_register_sync_source("i2s1_sync", 24000000, 24000000); 1387 clk = tegra_clk_register_sync_source("i2s1_sync", 24000000, 24000000);
1357 clk_register_clkdev(clk, "i2s1_sync", NULL);
1358 clks[TEGRA114_CLK_I2S1_SYNC] = clk; 1388 clks[TEGRA114_CLK_I2S1_SYNC] = clk;
1359 1389
1360 /* i2s2_sync */ 1390 /* i2s2_sync */
1361 clk = tegra_clk_register_sync_source("i2s2_sync", 24000000, 24000000); 1391 clk = tegra_clk_register_sync_source("i2s2_sync", 24000000, 24000000);
1362 clk_register_clkdev(clk, "i2s2_sync", NULL);
1363 clks[TEGRA114_CLK_I2S2_SYNC] = clk; 1392 clks[TEGRA114_CLK_I2S2_SYNC] = clk;
1364 1393
1365 /* i2s3_sync */ 1394 /* i2s3_sync */
1366 clk = tegra_clk_register_sync_source("i2s3_sync", 24000000, 24000000); 1395 clk = tegra_clk_register_sync_source("i2s3_sync", 24000000, 24000000);
1367 clk_register_clkdev(clk, "i2s3_sync", NULL);
1368 clks[TEGRA114_CLK_I2S3_SYNC] = clk; 1396 clks[TEGRA114_CLK_I2S3_SYNC] = clk;
1369 1397
1370 /* i2s4_sync */ 1398 /* i2s4_sync */
1371 clk = tegra_clk_register_sync_source("i2s4_sync", 24000000, 24000000); 1399 clk = tegra_clk_register_sync_source("i2s4_sync", 24000000, 24000000);
1372 clk_register_clkdev(clk, "i2s4_sync", NULL);
1373 clks[TEGRA114_CLK_I2S4_SYNC] = clk; 1400 clks[TEGRA114_CLK_I2S4_SYNC] = clk;
1374 1401
1375 /* vimclk_sync */ 1402 /* vimclk_sync */
1376 clk = tegra_clk_register_sync_source("vimclk_sync", 24000000, 24000000); 1403 clk = tegra_clk_register_sync_source("vimclk_sync", 24000000, 24000000);
1377 clk_register_clkdev(clk, "vimclk_sync", NULL);
1378 clks[TEGRA114_CLK_VIMCLK_SYNC] = clk; 1404 clks[TEGRA114_CLK_VIMCLK_SYNC] = clk;
1379 1405
1380 /* audio0 */ 1406 /* audio0 */
@@ -1387,7 +1413,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1387 clk = clk_register_gate(NULL, "audio0", "audio0_mux", 0, 1413 clk = clk_register_gate(NULL, "audio0", "audio0_mux", 0,
1388 clk_base + AUDIO_SYNC_CLK_I2S0, 4, 1414 clk_base + AUDIO_SYNC_CLK_I2S0, 4,
1389 CLK_GATE_SET_TO_DISABLE, NULL); 1415 CLK_GATE_SET_TO_DISABLE, NULL);
1390 clk_register_clkdev(clk, "audio0", NULL);
1391 clks[TEGRA114_CLK_AUDIO0] = clk; 1416 clks[TEGRA114_CLK_AUDIO0] = clk;
1392 1417
1393 /* audio1 */ 1418 /* audio1 */
@@ -1400,7 +1425,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1400 clk = clk_register_gate(NULL, "audio1", "audio1_mux", 0, 1425 clk = clk_register_gate(NULL, "audio1", "audio1_mux", 0,
1401 clk_base + AUDIO_SYNC_CLK_I2S1, 4, 1426 clk_base + AUDIO_SYNC_CLK_I2S1, 4,
1402 CLK_GATE_SET_TO_DISABLE, NULL); 1427 CLK_GATE_SET_TO_DISABLE, NULL);
1403 clk_register_clkdev(clk, "audio1", NULL);
1404 clks[TEGRA114_CLK_AUDIO1] = clk; 1428 clks[TEGRA114_CLK_AUDIO1] = clk;
1405 1429
1406 /* audio2 */ 1430 /* audio2 */
@@ -1413,7 +1437,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1413 clk = clk_register_gate(NULL, "audio2", "audio2_mux", 0, 1437 clk = clk_register_gate(NULL, "audio2", "audio2_mux", 0,
1414 clk_base + AUDIO_SYNC_CLK_I2S2, 4, 1438 clk_base + AUDIO_SYNC_CLK_I2S2, 4,
1415 CLK_GATE_SET_TO_DISABLE, NULL); 1439 CLK_GATE_SET_TO_DISABLE, NULL);
1416 clk_register_clkdev(clk, "audio2", NULL);
1417 clks[TEGRA114_CLK_AUDIO2] = clk; 1440 clks[TEGRA114_CLK_AUDIO2] = clk;
1418 1441
1419 /* audio3 */ 1442 /* audio3 */
@@ -1426,7 +1449,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1426 clk = clk_register_gate(NULL, "audio3", "audio3_mux", 0, 1449 clk = clk_register_gate(NULL, "audio3", "audio3_mux", 0,
1427 clk_base + AUDIO_SYNC_CLK_I2S3, 4, 1450 clk_base + AUDIO_SYNC_CLK_I2S3, 4,
1428 CLK_GATE_SET_TO_DISABLE, NULL); 1451 CLK_GATE_SET_TO_DISABLE, NULL);
1429 clk_register_clkdev(clk, "audio3", NULL);
1430 clks[TEGRA114_CLK_AUDIO3] = clk; 1452 clks[TEGRA114_CLK_AUDIO3] = clk;
1431 1453
1432 /* audio4 */ 1454 /* audio4 */
@@ -1439,7 +1461,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1439 clk = clk_register_gate(NULL, "audio4", "audio4_mux", 0, 1461 clk = clk_register_gate(NULL, "audio4", "audio4_mux", 0,
1440 clk_base + AUDIO_SYNC_CLK_I2S4, 4, 1462 clk_base + AUDIO_SYNC_CLK_I2S4, 4,
1441 CLK_GATE_SET_TO_DISABLE, NULL); 1463 CLK_GATE_SET_TO_DISABLE, NULL);
1442 clk_register_clkdev(clk, "audio4", NULL);
1443 clks[TEGRA114_CLK_AUDIO4] = clk; 1464 clks[TEGRA114_CLK_AUDIO4] = clk;
1444 1465
1445 /* spdif */ 1466 /* spdif */
@@ -1452,7 +1473,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1452 clk = clk_register_gate(NULL, "spdif", "spdif_mux", 0, 1473 clk = clk_register_gate(NULL, "spdif", "spdif_mux", 0,
1453 clk_base + AUDIO_SYNC_CLK_SPDIF, 4, 1474 clk_base + AUDIO_SYNC_CLK_SPDIF, 4,
1454 CLK_GATE_SET_TO_DISABLE, NULL); 1475 CLK_GATE_SET_TO_DISABLE, NULL);
1455 clk_register_clkdev(clk, "spdif", NULL);
1456 clks[TEGRA114_CLK_SPDIF] = clk; 1476 clks[TEGRA114_CLK_SPDIF] = clk;
1457 1477
1458 /* audio0_2x */ 1478 /* audio0_2x */
@@ -1465,7 +1485,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1465 TEGRA_PERIPH_NO_RESET, clk_base, 1485 TEGRA_PERIPH_NO_RESET, clk_base,
1466 CLK_SET_RATE_PARENT, 113, 1486 CLK_SET_RATE_PARENT, 113,
1467 periph_clk_enb_refcnt); 1487 periph_clk_enb_refcnt);
1468 clk_register_clkdev(clk, "audio0_2x", NULL);
1469 clks[TEGRA114_CLK_AUDIO0_2X] = clk; 1488 clks[TEGRA114_CLK_AUDIO0_2X] = clk;
1470 1489
1471 /* audio1_2x */ 1490 /* audio1_2x */
@@ -1478,7 +1497,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1478 TEGRA_PERIPH_NO_RESET, clk_base, 1497 TEGRA_PERIPH_NO_RESET, clk_base,
1479 CLK_SET_RATE_PARENT, 114, 1498 CLK_SET_RATE_PARENT, 114,
1480 periph_clk_enb_refcnt); 1499 periph_clk_enb_refcnt);
1481 clk_register_clkdev(clk, "audio1_2x", NULL);
1482 clks[TEGRA114_CLK_AUDIO1_2X] = clk; 1500 clks[TEGRA114_CLK_AUDIO1_2X] = clk;
1483 1501
1484 /* audio2_2x */ 1502 /* audio2_2x */
@@ -1491,7 +1509,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1491 TEGRA_PERIPH_NO_RESET, clk_base, 1509 TEGRA_PERIPH_NO_RESET, clk_base,
1492 CLK_SET_RATE_PARENT, 115, 1510 CLK_SET_RATE_PARENT, 115,
1493 periph_clk_enb_refcnt); 1511 periph_clk_enb_refcnt);
1494 clk_register_clkdev(clk, "audio2_2x", NULL);
1495 clks[TEGRA114_CLK_AUDIO2_2X] = clk; 1512 clks[TEGRA114_CLK_AUDIO2_2X] = clk;
1496 1513
1497 /* audio3_2x */ 1514 /* audio3_2x */
@@ -1504,7 +1521,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1504 TEGRA_PERIPH_NO_RESET, clk_base, 1521 TEGRA_PERIPH_NO_RESET, clk_base,
1505 CLK_SET_RATE_PARENT, 116, 1522 CLK_SET_RATE_PARENT, 116,
1506 periph_clk_enb_refcnt); 1523 periph_clk_enb_refcnt);
1507 clk_register_clkdev(clk, "audio3_2x", NULL);
1508 clks[TEGRA114_CLK_AUDIO3_2X] = clk; 1524 clks[TEGRA114_CLK_AUDIO3_2X] = clk;
1509 1525
1510 /* audio4_2x */ 1526 /* audio4_2x */
@@ -1517,7 +1533,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1517 TEGRA_PERIPH_NO_RESET, clk_base, 1533 TEGRA_PERIPH_NO_RESET, clk_base,
1518 CLK_SET_RATE_PARENT, 117, 1534 CLK_SET_RATE_PARENT, 117,
1519 periph_clk_enb_refcnt); 1535 periph_clk_enb_refcnt);
1520 clk_register_clkdev(clk, "audio4_2x", NULL);
1521 clks[TEGRA114_CLK_AUDIO4_2X] = clk; 1536 clks[TEGRA114_CLK_AUDIO4_2X] = clk;
1522 1537
1523 /* spdif_2x */ 1538 /* spdif_2x */
@@ -1530,7 +1545,6 @@ static void __init tegra114_audio_clk_init(void __iomem *clk_base)
1530 TEGRA_PERIPH_NO_RESET, clk_base, 1545 TEGRA_PERIPH_NO_RESET, clk_base,
1531 CLK_SET_RATE_PARENT, 118, 1546 CLK_SET_RATE_PARENT, 118,
1532 periph_clk_enb_refcnt); 1547 periph_clk_enb_refcnt);
1533 clk_register_clkdev(clk, "spdif_2x", NULL);
1534 clks[TEGRA114_CLK_SPDIF_2X] = clk; 1548 clks[TEGRA114_CLK_SPDIF_2X] = clk;
1535} 1549}
1536 1550
@@ -1548,7 +1562,6 @@ static void __init tegra114_pmc_clk_init(void __iomem *pmc_base)
1548 clk = clk_register_gate(NULL, "clk_out_1", "clk_out_1_mux", 0, 1562 clk = clk_register_gate(NULL, "clk_out_1", "clk_out_1_mux", 0,
1549 pmc_base + PMC_CLK_OUT_CNTRL, 2, 0, 1563 pmc_base + PMC_CLK_OUT_CNTRL, 2, 0,
1550 &clk_out_lock); 1564 &clk_out_lock);
1551 clk_register_clkdev(clk, "extern1", "clk_out_1");
1552 clks[TEGRA114_CLK_CLK_OUT_1] = clk; 1565 clks[TEGRA114_CLK_CLK_OUT_1] = clk;
1553 1566
1554 /* clk_out_2 */ 1567 /* clk_out_2 */
@@ -1561,7 +1574,6 @@ static void __init tegra114_pmc_clk_init(void __iomem *pmc_base)
1561 clk = clk_register_gate(NULL, "clk_out_2", "clk_out_2_mux", 0, 1574 clk = clk_register_gate(NULL, "clk_out_2", "clk_out_2_mux", 0,
1562 pmc_base + PMC_CLK_OUT_CNTRL, 10, 0, 1575 pmc_base + PMC_CLK_OUT_CNTRL, 10, 0,
1563 &clk_out_lock); 1576 &clk_out_lock);
1564 clk_register_clkdev(clk, "extern2", "clk_out_2");
1565 clks[TEGRA114_CLK_CLK_OUT_2] = clk; 1577 clks[TEGRA114_CLK_CLK_OUT_2] = clk;
1566 1578
1567 /* clk_out_3 */ 1579 /* clk_out_3 */
@@ -1574,7 +1586,6 @@ static void __init tegra114_pmc_clk_init(void __iomem *pmc_base)
1574 clk = clk_register_gate(NULL, "clk_out_3", "clk_out_3_mux", 0, 1586 clk = clk_register_gate(NULL, "clk_out_3", "clk_out_3_mux", 0,
1575 pmc_base + PMC_CLK_OUT_CNTRL, 18, 0, 1587 pmc_base + PMC_CLK_OUT_CNTRL, 18, 0,
1576 &clk_out_lock); 1588 &clk_out_lock);
1577 clk_register_clkdev(clk, "extern3", "clk_out_3");
1578 clks[TEGRA114_CLK_CLK_OUT_3] = clk; 1589 clks[TEGRA114_CLK_CLK_OUT_3] = clk;
1579 1590
1580 /* blink */ 1591 /* blink */
@@ -1586,7 +1597,6 @@ static void __init tegra114_pmc_clk_init(void __iomem *pmc_base)
1586 clk = clk_register_gate(NULL, "blink", "blink_override", 0, 1597 clk = clk_register_gate(NULL, "blink", "blink_override", 0,
1587 pmc_base + PMC_CTRL, 1598 pmc_base + PMC_CTRL,
1588 PMC_CTRL_BLINK_ENB, 0, NULL); 1599 PMC_CTRL_BLINK_ENB, 0, NULL);
1589 clk_register_clkdev(clk, "blink", NULL);
1590 clks[TEGRA114_CLK_BLINK] = clk; 1600 clks[TEGRA114_CLK_BLINK] = clk;
1591 1601
1592} 1602}
@@ -1613,7 +1623,6 @@ static void __init tegra114_super_clk_init(void __iomem *clk_base)
1613 CLK_SET_RATE_PARENT, 1623 CLK_SET_RATE_PARENT,
1614 clk_base + CCLKG_BURST_POLICY, 1624 clk_base + CCLKG_BURST_POLICY,
1615 0, 4, 0, 0, NULL); 1625 0, 4, 0, 0, NULL);
1616 clk_register_clkdev(clk, "cclk_g", NULL);
1617 clks[TEGRA114_CLK_CCLK_G] = clk; 1626 clks[TEGRA114_CLK_CCLK_G] = clk;
1618 1627
1619 /* CCLKLP */ 1628 /* CCLKLP */
@@ -1622,7 +1631,6 @@ static void __init tegra114_super_clk_init(void __iomem *clk_base)
1622 CLK_SET_RATE_PARENT, 1631 CLK_SET_RATE_PARENT,
1623 clk_base + CCLKLP_BURST_POLICY, 1632 clk_base + CCLKLP_BURST_POLICY,
1624 0, 4, 8, 9, NULL); 1633 0, 4, 8, 9, NULL);
1625 clk_register_clkdev(clk, "cclk_lp", NULL);
1626 clks[TEGRA114_CLK_CCLK_LP] = clk; 1634 clks[TEGRA114_CLK_CCLK_LP] = clk;
1627 1635
1628 /* SCLK */ 1636 /* SCLK */
@@ -1631,7 +1639,6 @@ static void __init tegra114_super_clk_init(void __iomem *clk_base)
1631 CLK_SET_RATE_PARENT, 1639 CLK_SET_RATE_PARENT,
1632 clk_base + SCLK_BURST_POLICY, 1640 clk_base + SCLK_BURST_POLICY,
1633 0, 4, 0, 0, NULL); 1641 0, 4, 0, 0, NULL);
1634 clk_register_clkdev(clk, "sclk", NULL);
1635 clks[TEGRA114_CLK_SCLK] = clk; 1642 clks[TEGRA114_CLK_SCLK] = clk;
1636 1643
1637 /* HCLK */ 1644 /* HCLK */
@@ -1641,7 +1648,6 @@ static void __init tegra114_super_clk_init(void __iomem *clk_base)
1641 clk = clk_register_gate(NULL, "hclk", "hclk_div", CLK_SET_RATE_PARENT | 1648 clk = clk_register_gate(NULL, "hclk", "hclk_div", CLK_SET_RATE_PARENT |
1642 CLK_IGNORE_UNUSED, clk_base + SYSTEM_CLK_RATE, 1649 CLK_IGNORE_UNUSED, clk_base + SYSTEM_CLK_RATE,
1643 7, CLK_GATE_SET_TO_DISABLE, &sysrate_lock); 1650 7, CLK_GATE_SET_TO_DISABLE, &sysrate_lock);
1644 clk_register_clkdev(clk, "hclk", NULL);
1645 clks[TEGRA114_CLK_HCLK] = clk; 1651 clks[TEGRA114_CLK_HCLK] = clk;
1646 1652
1647 /* PCLK */ 1653 /* PCLK */
@@ -1651,91 +1657,90 @@ static void __init tegra114_super_clk_init(void __iomem *clk_base)
1651 clk = clk_register_gate(NULL, "pclk", "pclk_div", CLK_SET_RATE_PARENT | 1657 clk = clk_register_gate(NULL, "pclk", "pclk_div", CLK_SET_RATE_PARENT |
1652 CLK_IGNORE_UNUSED, clk_base + SYSTEM_CLK_RATE, 1658 CLK_IGNORE_UNUSED, clk_base + SYSTEM_CLK_RATE,
1653 3, CLK_GATE_SET_TO_DISABLE, &sysrate_lock); 1659 3, CLK_GATE_SET_TO_DISABLE, &sysrate_lock);
1654 clk_register_clkdev(clk, "pclk", NULL);
1655 clks[TEGRA114_CLK_PCLK] = clk; 1660 clks[TEGRA114_CLK_PCLK] = clk;
1656} 1661}
1657 1662
1658static struct tegra_periph_init_data tegra_periph_clk_list[] = { 1663static struct tegra_periph_init_data tegra_periph_clk_list[] = {
1659 TEGRA_INIT_DATA_MUX("i2s0", NULL, "tegra30-i2s.0", mux_pllaout0_audio0_2x_pllp_clkm, CLK_SOURCE_I2S0, 30, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S0), 1664 TEGRA_INIT_DATA_MUX("i2s0", mux_pllaout0_audio0_2x_pllp_clkm, CLK_SOURCE_I2S0, 30, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S0),
1660 TEGRA_INIT_DATA_MUX("i2s1", NULL, "tegra30-i2s.1", mux_pllaout0_audio1_2x_pllp_clkm, CLK_SOURCE_I2S1, 11, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S1), 1665 TEGRA_INIT_DATA_MUX("i2s1", mux_pllaout0_audio1_2x_pllp_clkm, CLK_SOURCE_I2S1, 11, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S1),
1661 TEGRA_INIT_DATA_MUX("i2s2", NULL, "tegra30-i2s.2", mux_pllaout0_audio2_2x_pllp_clkm, CLK_SOURCE_I2S2, 18, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S2), 1666 TEGRA_INIT_DATA_MUX("i2s2", mux_pllaout0_audio2_2x_pllp_clkm, CLK_SOURCE_I2S2, 18, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S2),
1662 TEGRA_INIT_DATA_MUX("i2s3", NULL, "tegra30-i2s.3", mux_pllaout0_audio3_2x_pllp_clkm, CLK_SOURCE_I2S3, 101, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S3), 1667 TEGRA_INIT_DATA_MUX("i2s3", mux_pllaout0_audio3_2x_pllp_clkm, CLK_SOURCE_I2S3, 101, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S3),
1663 TEGRA_INIT_DATA_MUX("i2s4", NULL, "tegra30-i2s.4", mux_pllaout0_audio4_2x_pllp_clkm, CLK_SOURCE_I2S4, 102, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S4), 1668 TEGRA_INIT_DATA_MUX("i2s4", mux_pllaout0_audio4_2x_pllp_clkm, CLK_SOURCE_I2S4, 102, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2S4),
1664 TEGRA_INIT_DATA_MUX("spdif_out", "spdif_out", "tegra30-spdif", mux_pllaout0_audio_2x_pllp_clkm, CLK_SOURCE_SPDIF_OUT, 10, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SPDIF_OUT), 1669 TEGRA_INIT_DATA_MUX("spdif_out", mux_pllaout0_audio_2x_pllp_clkm, CLK_SOURCE_SPDIF_OUT, 10, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SPDIF_OUT),
1665 TEGRA_INIT_DATA_MUX("spdif_in", "spdif_in", "tegra30-spdif", mux_pllp_pllc_pllm, CLK_SOURCE_SPDIF_IN, 10, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SPDIF_IN), 1670 TEGRA_INIT_DATA_MUX("spdif_in", mux_pllp_pllc_pllm, CLK_SOURCE_SPDIF_IN, 10, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SPDIF_IN),
1666 TEGRA_INIT_DATA_MUX("pwm", NULL, "pwm", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_PWM, 17, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_PWM), 1671 TEGRA_INIT_DATA_MUX("pwm", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_PWM, 17, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_PWM),
1667 TEGRA_INIT_DATA_MUX("adx", NULL, "adx", mux_plla_pllc_pllp_clkm, CLK_SOURCE_ADX, 154, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_ADX), 1672 TEGRA_INIT_DATA_MUX("adx", mux_plla_pllc_pllp_clkm, CLK_SOURCE_ADX, 154, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_ADX),
1668 TEGRA_INIT_DATA_MUX("amx", NULL, "amx", mux_plla_pllc_pllp_clkm, CLK_SOURCE_AMX, 153, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_AMX), 1673 TEGRA_INIT_DATA_MUX("amx", mux_plla_pllc_pllp_clkm, CLK_SOURCE_AMX, 153, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_AMX),
1669 TEGRA_INIT_DATA_MUX("hda", "hda", "tegra30-hda", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_HDA, 125, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_HDA), 1674 TEGRA_INIT_DATA_MUX("hda", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_HDA, 125, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_HDA),
1670 TEGRA_INIT_DATA_MUX("hda2codec_2x", "hda2codec", "tegra30-hda", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_HDA2CODEC_2X, 111, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_HDA2CODEC_2X), 1675 TEGRA_INIT_DATA_MUX("hda2codec_2x", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_HDA2CODEC_2X, 111, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_HDA2CODEC_2X),
1671 TEGRA_INIT_DATA_MUX8("sbc1", NULL, "tegra11-spi.0", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC1, 41, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC1), 1676 TEGRA_INIT_DATA_MUX8("sbc1", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC1, 41, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC1),
1672 TEGRA_INIT_DATA_MUX8("sbc2", NULL, "tegra11-spi.1", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC2, 44, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC2), 1677 TEGRA_INIT_DATA_MUX8("sbc2", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC2, 44, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC2),
1673 TEGRA_INIT_DATA_MUX8("sbc3", NULL, "tegra11-spi.2", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC3, 46, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC3), 1678 TEGRA_INIT_DATA_MUX8("sbc3", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC3, 46, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC3),
1674 TEGRA_INIT_DATA_MUX8("sbc4", NULL, "tegra11-spi.3", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC4, 68, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC4), 1679 TEGRA_INIT_DATA_MUX8("sbc4", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC4, 68, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC4),
1675 TEGRA_INIT_DATA_MUX8("sbc5", NULL, "tegra11-spi.4", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC5, 104, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC5), 1680 TEGRA_INIT_DATA_MUX8("sbc5", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC5, 104, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC5),
1676 TEGRA_INIT_DATA_MUX8("sbc6", NULL, "tegra11-spi.5", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC6, 105, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC6), 1681 TEGRA_INIT_DATA_MUX8("sbc6", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SBC6, 105, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SBC6),
1677 TEGRA_INIT_DATA_MUX8("ndflash", NULL, "tegra_nand", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_NDFLASH, 13, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_NDSPEED), 1682 TEGRA_INIT_DATA_MUX8("ndflash", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_NDFLASH, 13, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_NDSPEED),
1678 TEGRA_INIT_DATA_MUX8("ndspeed", NULL, "tegra_nand_speed", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_NDSPEED, 80, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_NDSPEED), 1683 TEGRA_INIT_DATA_MUX8("ndspeed", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_NDSPEED, 80, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_NDSPEED),
1679 TEGRA_INIT_DATA_MUX("vfir", NULL, "vfir", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_VFIR, 7, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_VFIR), 1684 TEGRA_INIT_DATA_MUX("vfir", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_VFIR, 7, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_VFIR),
1680 TEGRA_INIT_DATA_MUX("sdmmc1", NULL, "sdhci-tegra.0", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC1, 14, 0, TEGRA114_CLK_SDMMC1), 1685 TEGRA_INIT_DATA_MUX("sdmmc1", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC1, 14, 0, TEGRA114_CLK_SDMMC1),
1681 TEGRA_INIT_DATA_MUX("sdmmc2", NULL, "sdhci-tegra.1", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC2, 9, 0, TEGRA114_CLK_SDMMC2), 1686 TEGRA_INIT_DATA_MUX("sdmmc2", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC2, 9, 0, TEGRA114_CLK_SDMMC2),
1682 TEGRA_INIT_DATA_MUX("sdmmc3", NULL, "sdhci-tegra.2", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC3, 69, 0, TEGRA114_CLK_SDMMC3), 1687 TEGRA_INIT_DATA_MUX("sdmmc3", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC3, 69, 0, TEGRA114_CLK_SDMMC3),
1683 TEGRA_INIT_DATA_MUX("sdmmc4", NULL, "sdhci-tegra.3", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC4, 15, 0, TEGRA114_CLK_SDMMC4), 1688 TEGRA_INIT_DATA_MUX("sdmmc4", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_SDMMC4, 15, 0, TEGRA114_CLK_SDMMC4),
1684 TEGRA_INIT_DATA_INT8("vde", NULL, "vde", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_VDE, 61, 0, TEGRA114_CLK_VDE), 1689 TEGRA_INIT_DATA_INT8("vde", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_VDE, 61, 0, TEGRA114_CLK_VDE),
1685 TEGRA_INIT_DATA_MUX_FLAGS("csite", NULL, "csite", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_CSITE, 73, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_CSITE, CLK_IGNORE_UNUSED), 1690 TEGRA_INIT_DATA_MUX_FLAGS("csite", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_CSITE, 73, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_CSITE, CLK_IGNORE_UNUSED),
1686 TEGRA_INIT_DATA_MUX("la", NULL, "la", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_LA, 76, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_LA), 1691 TEGRA_INIT_DATA_MUX("la", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_LA, 76, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_LA),
1687 TEGRA_INIT_DATA_MUX("trace", NULL, "trace", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_TRACE, 77, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_TRACE), 1692 TEGRA_INIT_DATA_MUX("trace", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_TRACE, 77, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_TRACE),
1688 TEGRA_INIT_DATA_MUX("owr", NULL, "tegra_w1", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_OWR, 71, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_OWR), 1693 TEGRA_INIT_DATA_MUX("owr", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_OWR, 71, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_OWR),
1689 TEGRA_INIT_DATA_MUX("nor", NULL, "tegra-nor", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_NOR, 42, 0, TEGRA114_CLK_NOR), 1694 TEGRA_INIT_DATA_MUX("nor", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_NOR, 42, 0, TEGRA114_CLK_NOR),
1690 TEGRA_INIT_DATA_MUX("mipi", NULL, "mipi", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_MIPI, 50, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_MIPI), 1695 TEGRA_INIT_DATA_MUX("mipi", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_MIPI, 50, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_MIPI),
1691 TEGRA_INIT_DATA_I2C("i2c1", "div-clk", "tegra11-i2c.0", mux_pllp_clkm, CLK_SOURCE_I2C1, 12, TEGRA114_CLK_I2C1), 1696 TEGRA_INIT_DATA_I2C("i2c1", mux_pllp_clkm, CLK_SOURCE_I2C1, 12, TEGRA114_CLK_I2C1),
1692 TEGRA_INIT_DATA_I2C("i2c2", "div-clk", "tegra11-i2c.1", mux_pllp_clkm, CLK_SOURCE_I2C2, 54, TEGRA114_CLK_I2C2), 1697 TEGRA_INIT_DATA_I2C("i2c2", mux_pllp_clkm, CLK_SOURCE_I2C2, 54, TEGRA114_CLK_I2C2),
1693 TEGRA_INIT_DATA_I2C("i2c3", "div-clk", "tegra11-i2c.2", mux_pllp_clkm, CLK_SOURCE_I2C3, 67, TEGRA114_CLK_I2C3), 1698 TEGRA_INIT_DATA_I2C("i2c3", mux_pllp_clkm, CLK_SOURCE_I2C3, 67, TEGRA114_CLK_I2C3),
1694 TEGRA_INIT_DATA_I2C("i2c4", "div-clk", "tegra11-i2c.3", mux_pllp_clkm, CLK_SOURCE_I2C4, 103, TEGRA114_CLK_I2C4), 1699 TEGRA_INIT_DATA_I2C("i2c4", mux_pllp_clkm, CLK_SOURCE_I2C4, 103, TEGRA114_CLK_I2C4),
1695 TEGRA_INIT_DATA_I2C("i2c5", "div-clk", "tegra11-i2c.4", mux_pllp_clkm, CLK_SOURCE_I2C5, 47, TEGRA114_CLK_I2C5), 1700 TEGRA_INIT_DATA_I2C("i2c5", mux_pllp_clkm, CLK_SOURCE_I2C5, 47, TEGRA114_CLK_I2C5),
1696 TEGRA_INIT_DATA_UART("uarta", NULL, "tegra_uart.0", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTA, 6, TEGRA114_CLK_UARTA), 1701 TEGRA_INIT_DATA_UART("uarta", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTA, 6, TEGRA114_CLK_UARTA),
1697 TEGRA_INIT_DATA_UART("uartb", NULL, "tegra_uart.1", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTB, 7, TEGRA114_CLK_UARTB), 1702 TEGRA_INIT_DATA_UART("uartb", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTB, 7, TEGRA114_CLK_UARTB),
1698 TEGRA_INIT_DATA_UART("uartc", NULL, "tegra_uart.2", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTC, 55, TEGRA114_CLK_UARTC), 1703 TEGRA_INIT_DATA_UART("uartc", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTC, 55, TEGRA114_CLK_UARTC),
1699 TEGRA_INIT_DATA_UART("uartd", NULL, "tegra_uart.3", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTD, 65, TEGRA114_CLK_UARTD), 1704 TEGRA_INIT_DATA_UART("uartd", mux_pllp_pllc_pllm_clkm, CLK_SOURCE_UARTD, 65, TEGRA114_CLK_UARTD),
1700 TEGRA_INIT_DATA_INT8("3d", NULL, "3d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_3D, 24, 0, TEGRA114_CLK_GR3D), 1705 TEGRA_INIT_DATA_INT8("3d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_3D, 24, 0, TEGRA114_CLK_GR3D),
1701 TEGRA_INIT_DATA_INT8("2d", NULL, "2d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_2D, 21, 0, TEGRA114_CLK_GR2D), 1706 TEGRA_INIT_DATA_INT8("2d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_2D, 21, 0, TEGRA114_CLK_GR2D),
1702 TEGRA_INIT_DATA_MUX("vi_sensor", "vi_sensor", "tegra_camera", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_VI_SENSOR, 20, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_VI_SENSOR), 1707 TEGRA_INIT_DATA_MUX("vi_sensor", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_VI_SENSOR, 20, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_VI_SENSOR),
1703 TEGRA_INIT_DATA_INT8("vi", "vi", "tegra_camera", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_VI, 20, 0, TEGRA114_CLK_VI), 1708 TEGRA_INIT_DATA_INT8("vi", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_VI, 20, 0, TEGRA114_CLK_VI),
1704 TEGRA_INIT_DATA_INT8("epp", NULL, "epp", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_EPP, 19, 0, TEGRA114_CLK_EPP), 1709 TEGRA_INIT_DATA_INT8("epp", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_EPP, 19, 0, TEGRA114_CLK_EPP),
1705 TEGRA_INIT_DATA_INT8("msenc", NULL, "msenc", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_MSENC, 91, TEGRA_PERIPH_WAR_1005168, TEGRA114_CLK_MSENC), 1710 TEGRA_INIT_DATA_INT8("msenc", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_MSENC, 91, TEGRA_PERIPH_WAR_1005168, TEGRA114_CLK_MSENC),
1706 TEGRA_INIT_DATA_INT8("tsec", NULL, "tsec", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_TSEC, 83, 0, TEGRA114_CLK_TSEC), 1711 TEGRA_INIT_DATA_INT8("tsec", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_TSEC, 83, 0, TEGRA114_CLK_TSEC),
1707 TEGRA_INIT_DATA_INT8("host1x", NULL, "host1x", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_HOST1X, 28, 0, TEGRA114_CLK_HOST1X), 1712 TEGRA_INIT_DATA_INT8("host1x", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_HOST1X, 28, 0, TEGRA114_CLK_HOST1X),
1708 TEGRA_INIT_DATA_MUX8("hdmi", NULL, "hdmi", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_HDMI, 51, 0, TEGRA114_CLK_HDMI), 1713 TEGRA_INIT_DATA_MUX8("hdmi", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_HDMI, 51, 0, TEGRA114_CLK_HDMI),
1709 TEGRA_INIT_DATA_MUX("cilab", "cilab", "tegra_camera", mux_pllp_pllc_clkm, CLK_SOURCE_CILAB, 144, 0, TEGRA114_CLK_CILAB), 1714 TEGRA_INIT_DATA_MUX("cilab", mux_pllp_pllc_clkm, CLK_SOURCE_CILAB, 144, 0, TEGRA114_CLK_CILAB),
1710 TEGRA_INIT_DATA_MUX("cilcd", "cilcd", "tegra_camera", mux_pllp_pllc_clkm, CLK_SOURCE_CILCD, 145, 0, TEGRA114_CLK_CILCD), 1715 TEGRA_INIT_DATA_MUX("cilcd", mux_pllp_pllc_clkm, CLK_SOURCE_CILCD, 145, 0, TEGRA114_CLK_CILCD),
1711 TEGRA_INIT_DATA_MUX("cile", "cile", "tegra_camera", mux_pllp_pllc_clkm, CLK_SOURCE_CILE, 146, 0, TEGRA114_CLK_CILE), 1716 TEGRA_INIT_DATA_MUX("cile", mux_pllp_pllc_clkm, CLK_SOURCE_CILE, 146, 0, TEGRA114_CLK_CILE),
1712 TEGRA_INIT_DATA_MUX("dsialp", "dsialp", "tegradc.0", mux_pllp_pllc_clkm, CLK_SOURCE_DSIALP, 147, 0, TEGRA114_CLK_DSIALP), 1717 TEGRA_INIT_DATA_MUX("dsialp", mux_pllp_pllc_clkm, CLK_SOURCE_DSIALP, 147, 0, TEGRA114_CLK_DSIALP),
1713 TEGRA_INIT_DATA_MUX("dsiblp", "dsiblp", "tegradc.1", mux_pllp_pllc_clkm, CLK_SOURCE_DSIBLP, 148, 0, TEGRA114_CLK_DSIBLP), 1718 TEGRA_INIT_DATA_MUX("dsiblp", mux_pllp_pllc_clkm, CLK_SOURCE_DSIBLP, 148, 0, TEGRA114_CLK_DSIBLP),
1714 TEGRA_INIT_DATA_MUX("tsensor", NULL, "tegra-tsensor", mux_pllp_pllc_clkm_clk32, CLK_SOURCE_TSENSOR, 100, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_TSENSOR), 1719 TEGRA_INIT_DATA_MUX("tsensor", mux_pllp_pllc_clkm_clk32, CLK_SOURCE_TSENSOR, 100, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_TSENSOR),
1715 TEGRA_INIT_DATA_MUX("actmon", NULL, "actmon", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_ACTMON, 119, 0, TEGRA114_CLK_ACTMON), 1720 TEGRA_INIT_DATA_MUX("actmon", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_ACTMON, 119, 0, TEGRA114_CLK_ACTMON),
1716 TEGRA_INIT_DATA_MUX8("extern1", NULL, "extern1", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN1, 120, 0, TEGRA114_CLK_EXTERN1), 1721 TEGRA_INIT_DATA_MUX8("extern1", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN1, 120, 0, TEGRA114_CLK_EXTERN1),
1717 TEGRA_INIT_DATA_MUX8("extern2", NULL, "extern2", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN2, 121, 0, TEGRA114_CLK_EXTERN2), 1722 TEGRA_INIT_DATA_MUX8("extern2", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN2, 121, 0, TEGRA114_CLK_EXTERN2),
1718 TEGRA_INIT_DATA_MUX8("extern3", NULL, "extern3", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN3, 122, 0, TEGRA114_CLK_EXTERN3), 1723 TEGRA_INIT_DATA_MUX8("extern3", mux_plla_clk32_pllp_clkm_plle, CLK_SOURCE_EXTERN3, 122, 0, TEGRA114_CLK_EXTERN3),
1719 TEGRA_INIT_DATA_MUX("i2cslow", NULL, "i2cslow", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_I2CSLOW, 81, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2CSLOW), 1724 TEGRA_INIT_DATA_MUX("i2cslow", mux_pllp_pllc_clk32_clkm, CLK_SOURCE_I2CSLOW, 81, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_I2CSLOW),
1720 TEGRA_INIT_DATA_INT8("se", NULL, "se", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SE), 1725 TEGRA_INIT_DATA_INT8("se", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SE),
1721 TEGRA_INIT_DATA_INT_FLAGS("mselect", NULL, "mselect", mux_pllp_clkm, CLK_SOURCE_MSELECT, 99, 0, TEGRA114_CLK_MSELECT, CLK_IGNORE_UNUSED), 1726 TEGRA_INIT_DATA_INT_FLAGS("mselect", mux_pllp_clkm, CLK_SOURCE_MSELECT, 99, 0, TEGRA114_CLK_MSELECT, CLK_IGNORE_UNUSED),
1722 TEGRA_INIT_DATA_MUX("dfll_ref", "ref", "t114_dfll", mux_pllp_clkm, CLK_SOURCE_DFLL_REF, 155, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DFLL_REF), 1727 TEGRA_INIT_DATA_MUX("dfll_ref", mux_pllp_clkm, CLK_SOURCE_DFLL_REF, 155, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DFLL_REF),
1723 TEGRA_INIT_DATA_MUX("dfll_soc", "soc", "t114_dfll", mux_pllp_clkm, CLK_SOURCE_DFLL_SOC, 155, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DFLL_SOC), 1728 TEGRA_INIT_DATA_MUX("dfll_soc", mux_pllp_clkm, CLK_SOURCE_DFLL_SOC, 155, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DFLL_SOC),
1724 TEGRA_INIT_DATA_MUX8("soc_therm", NULL, "soc_therm", mux_pllm_pllc_pllp_plla, CLK_SOURCE_SOC_THERM, 78, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SOC_THERM), 1729 TEGRA_INIT_DATA_MUX8("soc_therm", mux_pllm_pllc_pllp_plla, CLK_SOURCE_SOC_THERM, 78, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_SOC_THERM),
1725 TEGRA_INIT_DATA_XUSB("xusb_host_src", "host_src", "tegra_xhci", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_HOST_SRC, 143, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_HOST_SRC), 1730 TEGRA_INIT_DATA_XUSB("xusb_host_src", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_HOST_SRC, 143, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_HOST_SRC),
1726 TEGRA_INIT_DATA_XUSB("xusb_falcon_src", "falcon_src", "tegra_xhci", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_FALCON_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_FALCON_SRC), 1731 TEGRA_INIT_DATA_XUSB("xusb_falcon_src", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_FALCON_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_FALCON_SRC),
1727 TEGRA_INIT_DATA_XUSB("xusb_fs_src", "fs_src", "tegra_xhci", mux_clkm_48M_pllp_480M, CLK_SOURCE_XUSB_FS_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_FS_SRC), 1732 TEGRA_INIT_DATA_XUSB("xusb_fs_src", mux_clkm_48M_pllp_480M, CLK_SOURCE_XUSB_FS_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_FS_SRC),
1728 TEGRA_INIT_DATA_XUSB("xusb_ss_src", "ss_src", "tegra_xhci", mux_clkm_pllre_clk32_480M_pllc_ref, CLK_SOURCE_XUSB_SS_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_SS_SRC), 1733 TEGRA_INIT_DATA_XUSB("xusb_ss_src", mux_clkm_pllre_clk32_480M_pllc_ref, CLK_SOURCE_XUSB_SS_SRC, 143, TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_SS_SRC),
1729 TEGRA_INIT_DATA_XUSB("xusb_dev_src", "dev_src", "tegra_xhci", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_DEV_SRC, 95, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_DEV_SRC), 1734 TEGRA_INIT_DATA_XUSB("xusb_dev_src", mux_clkm_pllp_pllc_pllre, CLK_SOURCE_XUSB_DEV_SRC, 95, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, TEGRA114_CLK_XUSB_DEV_SRC),
1730 TEGRA_INIT_DATA_AUDIO("d_audio", "d_audio", "tegra30-ahub", CLK_SOURCE_D_AUDIO, 106, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_D_AUDIO), 1735 TEGRA_INIT_DATA_AUDIO("d_audio", CLK_SOURCE_D_AUDIO, 106, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_D_AUDIO),
1731 TEGRA_INIT_DATA_AUDIO("dam0", NULL, "tegra30-dam.0", CLK_SOURCE_DAM0, 108, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM0), 1736 TEGRA_INIT_DATA_AUDIO("dam0", CLK_SOURCE_DAM0, 108, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM0),
1732 TEGRA_INIT_DATA_AUDIO("dam1", NULL, "tegra30-dam.1", CLK_SOURCE_DAM1, 109, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM1), 1737 TEGRA_INIT_DATA_AUDIO("dam1", CLK_SOURCE_DAM1, 109, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM1),
1733 TEGRA_INIT_DATA_AUDIO("dam2", NULL, "tegra30-dam.2", CLK_SOURCE_DAM2, 110, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM2), 1738 TEGRA_INIT_DATA_AUDIO("dam2", CLK_SOURCE_DAM2, 110, TEGRA_PERIPH_ON_APB, TEGRA114_CLK_DAM2),
1734}; 1739};
1735 1740
1736static struct tegra_periph_init_data tegra_periph_nodiv_clk_list[] = { 1741static struct tegra_periph_init_data tegra_periph_nodiv_clk_list[] = {
1737 TEGRA_INIT_DATA_NODIV("disp1", NULL, "tegradc.0", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_DISP1, 29, 7, 27, 0, TEGRA114_CLK_DISP1), 1742 TEGRA_INIT_DATA_NODIV("disp1", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_DISP1, 29, 7, 27, 0, TEGRA114_CLK_DISP1),
1738 TEGRA_INIT_DATA_NODIV("disp2", NULL, "tegradc.1", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_DISP2, 29, 7, 26, 0, TEGRA114_CLK_DISP2), 1743 TEGRA_INIT_DATA_NODIV("disp2", mux_pllp_pllm_plld_plla_pllc_plld2_clkm, CLK_SOURCE_DISP2, 29, 7, 26, 0, TEGRA114_CLK_DISP2),
1739}; 1744};
1740 1745
1741static __init void tegra114_periph_clk_init(void __iomem *clk_base) 1746static __init void tegra114_periph_clk_init(void __iomem *clk_base)
@@ -1755,7 +1760,6 @@ static __init void tegra114_periph_clk_init(void __iomem *clk_base)
1755 TEGRA_PERIPH_ON_APB | 1760 TEGRA_PERIPH_ON_APB |
1756 TEGRA_PERIPH_NO_RESET, clk_base, 1761 TEGRA_PERIPH_NO_RESET, clk_base,
1757 0, 4, periph_clk_enb_refcnt); 1762 0, 4, periph_clk_enb_refcnt);
1758 clk_register_clkdev(clk, NULL, "rtc-tegra");
1759 clks[TEGRA114_CLK_RTC] = clk; 1763 clks[TEGRA114_CLK_RTC] = clk;
1760 1764
1761 /* kbc */ 1765 /* kbc */
@@ -1768,7 +1772,6 @@ static __init void tegra114_periph_clk_init(void __iomem *clk_base)
1768 /* timer */ 1772 /* timer */
1769 clk = tegra_clk_register_periph_gate("timer", "clk_m", 0, clk_base, 1773 clk = tegra_clk_register_periph_gate("timer", "clk_m", 0, clk_base,
1770 0, 5, periph_clk_enb_refcnt); 1774 0, 5, periph_clk_enb_refcnt);
1771 clk_register_clkdev(clk, NULL, "timer");
1772 clks[TEGRA114_CLK_TIMER] = clk; 1775 clks[TEGRA114_CLK_TIMER] = clk;
1773 1776
1774 /* kfuse */ 1777 /* kfuse */
@@ -2196,6 +2199,7 @@ static void __init tegra114_clock_init(struct device_node *np)
2196 tegra114_super_clk_init(clk_base); 2199 tegra114_super_clk_init(clk_base);
2197 2200
2198 tegra_add_of_provider(np); 2201 tegra_add_of_provider(np);
2202 tegra_register_devclks(devclks, ARRAY_SIZE(devclks));
2199 2203
2200 tegra_clk_apply_init_table = tegra114_clock_apply_init_table; 2204 tegra_clk_apply_init_table = tegra114_clock_apply_init_table;
2201 2205
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c
index a0430cd65d7c..14d25322aec5 100644
--- a/drivers/clk/tegra/clk.c
+++ b/drivers/clk/tegra/clk.c
@@ -212,6 +212,15 @@ void __init tegra_add_of_provider(struct device_node *np)
212 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); 212 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
213} 213}
214 214
215void __init tegra_register_devclks(struct tegra_devclk *dev_clks, int num)
216{
217 int i;
218
219 for (i = 0; i < num; i++, dev_clks++)
220 clk_register_clkdev(clks[dev_clks->dt_id], dev_clks->con_id,
221 dev_clks->dev_id);
222}
223
215struct clk ** __init tegra_lookup_dt_id(int clk_id, 224struct clk ** __init tegra_lookup_dt_id(int clk_id,
216 struct tegra_clk *tegra_clk) 225 struct tegra_clk *tegra_clk)
217{ 226{
diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h
index 489dad59d1d5..f742c7dda4cc 100644
--- a/drivers/clk/tegra/clk.h
+++ b/drivers/clk/tegra/clk.h
@@ -573,6 +573,12 @@ struct tegra_clk {
573 bool present; 573 bool present;
574}; 574};
575 575
576struct tegra_devclk {
577 int dt_id;
578 char *dev_id;
579 char *con_id;
580};
581
576void tegra_init_from_table(struct tegra_clk_init_table *tbl, 582void tegra_init_from_table(struct tegra_clk_init_table *tbl,
577 struct clk *clks[], int clk_max); 583 struct clk *clks[], int clk_max);
578 584
@@ -585,6 +591,7 @@ struct clk **tegra_clk_init(int num, int periph_banks);
585struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); 591struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk);
586 592
587void tegra_add_of_provider(struct device_node *np); 593void tegra_add_of_provider(struct device_node *np);
594void tegra_register_devclks(struct tegra_devclk *dev_clks, int num);
588 595
589void tegra114_clock_tune_cpu_trimmers_high(void); 596void tegra114_clock_tune_cpu_trimmers_high(void);
590void tegra114_clock_tune_cpu_trimmers_low(void); 597void tegra114_clock_tune_cpu_trimmers_low(void);