diff options
author | Peter De Schrijver <pdeschrijver@nvidia.com> | 2013-10-09 07:47:57 -0400 |
---|---|---|
committer | Peter De Schrijver <pdeschrijver@nvidia.com> | 2013-11-26 11:46:24 -0500 |
commit | 73d37e4c7c4b9db26c9e4e1479e00996caa8e3f2 (patch) | |
tree | 959eb811facfe4763b6d7c162386b1b108de8b62 | |
parent | b8700d506ac4050fd96ce9305df04df811365326 (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.c | 322 | ||||
-rw-r--r-- | drivers/clk/tegra/clk.c | 9 | ||||
-rw-r--r-- | drivers/clk/tegra/clk.h | 7 |
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 | ||
966 | static 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 | |||
966 | static struct clk **clks; | 1031 | static struct clk **clks; |
967 | 1032 | ||
968 | static unsigned long osc_freq; | 1033 | static 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 | ||
1658 | static struct tegra_periph_init_data tegra_periph_clk_list[] = { | 1663 | static 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 | ||
1736 | static struct tegra_periph_init_data tegra_periph_nodiv_clk_list[] = { | 1741 | static 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 | ||
1741 | static __init void tegra114_periph_clk_init(void __iomem *clk_base) | 1746 | static __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 | ||
215 | void __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 | |||
215 | struct clk ** __init tegra_lookup_dt_id(int clk_id, | 224 | struct 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 | ||
576 | struct tegra_devclk { | ||
577 | int dt_id; | ||
578 | char *dev_id; | ||
579 | char *con_id; | ||
580 | }; | ||
581 | |||
576 | void tegra_init_from_table(struct tegra_clk_init_table *tbl, | 582 | void 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); | |||
585 | struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); | 591 | struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); |
586 | 592 | ||
587 | void tegra_add_of_provider(struct device_node *np); | 593 | void tegra_add_of_provider(struct device_node *np); |
594 | void tegra_register_devclks(struct tegra_devclk *dev_clks, int num); | ||
588 | 595 | ||
589 | void tegra114_clock_tune_cpu_trimmers_high(void); | 596 | void tegra114_clock_tune_cpu_trimmers_high(void); |
590 | void tegra114_clock_tune_cpu_trimmers_low(void); | 597 | void tegra114_clock_tune_cpu_trimmers_low(void); |