diff options
author | James Liao <jamesjj.liao@mediatek.com> | 2015-05-20 02:45:54 -0400 |
---|---|---|
committer | James Liao <jamesjj.liao@mediatek.com> | 2015-10-01 00:04:50 -0400 |
commit | 29859d9315834c7a36a436a6a383f2f810b91047 (patch) | |
tree | 672be5e3b378af7c991fcc9250ffd02c5ca8f188 | |
parent | 566184895659b59f9989fc13a77dd77e409f319d (diff) |
clk: mediatek: Add subsystem clocks of MT8173
Most multimedia subsystem clocks will be accessed by multiple
drivers, so it's a better way to manage these clocks in CCF.
This patch adds clock support for MM, IMG, VDEC, VENC and VENC_LT
subsystems.
Signed-off-by: James Liao <jamesjj.liao@mediatek.com>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
-rw-r--r-- | drivers/clk/mediatek/clk-mt8173.c | 267 | ||||
-rw-r--r-- | include/dt-bindings/clock/mt8173-clk.h | 97 |
2 files changed, 361 insertions, 3 deletions
diff --git a/drivers/clk/mediatek/clk-mt8173.c b/drivers/clk/mediatek/clk-mt8173.c index a906e18dec89..0aef5b018cda 100644 --- a/drivers/clk/mediatek/clk-mt8173.c +++ b/drivers/clk/mediatek/clk-mt8173.c | |||
@@ -33,6 +33,10 @@ static DEFINE_SPINLOCK(mt8173_clk_lock); | |||
33 | static const struct mtk_fixed_clk fixed_clks[] __initconst = { | 33 | static const struct mtk_fixed_clk fixed_clks[] __initconst = { |
34 | FIXED_CLK(CLK_TOP_CLKPH_MCK_O, "clkph_mck_o", "clk26m", DUMMY_RATE), | 34 | FIXED_CLK(CLK_TOP_CLKPH_MCK_O, "clkph_mck_o", "clk26m", DUMMY_RATE), |
35 | FIXED_CLK(CLK_TOP_USB_SYSPLL_125M, "usb_syspll_125m", "clk26m", 125 * MHZ), | 35 | FIXED_CLK(CLK_TOP_USB_SYSPLL_125M, "usb_syspll_125m", "clk26m", 125 * MHZ), |
36 | FIXED_CLK(CLK_TOP_DSI0_DIG, "dsi0_dig", "clk26m", DUMMY_RATE), | ||
37 | FIXED_CLK(CLK_TOP_DSI1_DIG, "dsi1_dig", "clk26m", DUMMY_RATE), | ||
38 | FIXED_CLK(CLK_TOP_LVDS_PXL, "lvds_pxl", "lvdspll", DUMMY_RATE), | ||
39 | FIXED_CLK(CLK_TOP_LVDS_CTS, "lvds_cts", "lvdspll", DUMMY_RATE), | ||
36 | }; | 40 | }; |
37 | 41 | ||
38 | static const struct mtk_fixed_factor top_divs[] __initconst = { | 42 | static const struct mtk_fixed_factor top_divs[] __initconst = { |
@@ -709,6 +713,183 @@ static const struct mtk_composite peri_clks[] __initconst = { | |||
709 | MUX(CLK_PERI_UART3_SEL, "uart3_ck_sel", uart_ck_sel_parents, 0x40c, 3, 1), | 713 | MUX(CLK_PERI_UART3_SEL, "uart3_ck_sel", uart_ck_sel_parents, 0x40c, 3, 1), |
710 | }; | 714 | }; |
711 | 715 | ||
716 | static const struct mtk_gate_regs cg_regs_4_8_0 __initconst = { | ||
717 | .set_ofs = 0x0004, | ||
718 | .clr_ofs = 0x0008, | ||
719 | .sta_ofs = 0x0000, | ||
720 | }; | ||
721 | |||
722 | #define GATE_IMG(_id, _name, _parent, _shift) { \ | ||
723 | .id = _id, \ | ||
724 | .name = _name, \ | ||
725 | .parent_name = _parent, \ | ||
726 | .regs = &cg_regs_4_8_0, \ | ||
727 | .shift = _shift, \ | ||
728 | .ops = &mtk_clk_gate_ops_setclr, \ | ||
729 | } | ||
730 | |||
731 | static const struct mtk_gate img_clks[] __initconst = { | ||
732 | GATE_IMG(CLK_IMG_LARB2_SMI, "img_larb2_smi", "mm_sel", 0), | ||
733 | GATE_IMG(CLK_IMG_CAM_SMI, "img_cam_smi", "mm_sel", 5), | ||
734 | GATE_IMG(CLK_IMG_CAM_CAM, "img_cam_cam", "mm_sel", 6), | ||
735 | GATE_IMG(CLK_IMG_SEN_TG, "img_sen_tg", "camtg_sel", 7), | ||
736 | GATE_IMG(CLK_IMG_SEN_CAM, "img_sen_cam", "mm_sel", 8), | ||
737 | GATE_IMG(CLK_IMG_CAM_SV, "img_cam_sv", "mm_sel", 9), | ||
738 | GATE_IMG(CLK_IMG_FD, "img_fd", "mm_sel", 11), | ||
739 | }; | ||
740 | |||
741 | static const struct mtk_gate_regs mm0_cg_regs __initconst = { | ||
742 | .set_ofs = 0x0104, | ||
743 | .clr_ofs = 0x0108, | ||
744 | .sta_ofs = 0x0100, | ||
745 | }; | ||
746 | |||
747 | static const struct mtk_gate_regs mm1_cg_regs __initconst = { | ||
748 | .set_ofs = 0x0114, | ||
749 | .clr_ofs = 0x0118, | ||
750 | .sta_ofs = 0x0110, | ||
751 | }; | ||
752 | |||
753 | #define GATE_MM0(_id, _name, _parent, _shift) { \ | ||
754 | .id = _id, \ | ||
755 | .name = _name, \ | ||
756 | .parent_name = _parent, \ | ||
757 | .regs = &mm0_cg_regs, \ | ||
758 | .shift = _shift, \ | ||
759 | .ops = &mtk_clk_gate_ops_setclr, \ | ||
760 | } | ||
761 | |||
762 | #define GATE_MM1(_id, _name, _parent, _shift) { \ | ||
763 | .id = _id, \ | ||
764 | .name = _name, \ | ||
765 | .parent_name = _parent, \ | ||
766 | .regs = &mm1_cg_regs, \ | ||
767 | .shift = _shift, \ | ||
768 | .ops = &mtk_clk_gate_ops_setclr, \ | ||
769 | } | ||
770 | |||
771 | static const struct mtk_gate mm_clks[] __initconst = { | ||
772 | /* MM0 */ | ||
773 | GATE_MM0(CLK_MM_SMI_COMMON, "mm_smi_common", "mm_sel", 0), | ||
774 | GATE_MM0(CLK_MM_SMI_LARB0, "mm_smi_larb0", "mm_sel", 1), | ||
775 | GATE_MM0(CLK_MM_CAM_MDP, "mm_cam_mdp", "mm_sel", 2), | ||
776 | GATE_MM0(CLK_MM_MDP_RDMA0, "mm_mdp_rdma0", "mm_sel", 3), | ||
777 | GATE_MM0(CLK_MM_MDP_RDMA1, "mm_mdp_rdma1", "mm_sel", 4), | ||
778 | GATE_MM0(CLK_MM_MDP_RSZ0, "mm_mdp_rsz0", "mm_sel", 5), | ||
779 | GATE_MM0(CLK_MM_MDP_RSZ1, "mm_mdp_rsz1", "mm_sel", 6), | ||
780 | GATE_MM0(CLK_MM_MDP_RSZ2, "mm_mdp_rsz2", "mm_sel", 7), | ||
781 | GATE_MM0(CLK_MM_MDP_TDSHP0, "mm_mdp_tdshp0", "mm_sel", 8), | ||
782 | GATE_MM0(CLK_MM_MDP_TDSHP1, "mm_mdp_tdshp1", "mm_sel", 9), | ||
783 | GATE_MM0(CLK_MM_MDP_WDMA, "mm_mdp_wdma", "mm_sel", 11), | ||
784 | GATE_MM0(CLK_MM_MDP_WROT0, "mm_mdp_wrot0", "mm_sel", 12), | ||
785 | GATE_MM0(CLK_MM_MDP_WROT1, "mm_mdp_wrot1", "mm_sel", 13), | ||
786 | GATE_MM0(CLK_MM_FAKE_ENG, "mm_fake_eng", "mm_sel", 14), | ||
787 | GATE_MM0(CLK_MM_MUTEX_32K, "mm_mutex_32k", "rtc_sel", 15), | ||
788 | GATE_MM0(CLK_MM_DISP_OVL0, "mm_disp_ovl0", "mm_sel", 16), | ||
789 | GATE_MM0(CLK_MM_DISP_OVL1, "mm_disp_ovl1", "mm_sel", 17), | ||
790 | GATE_MM0(CLK_MM_DISP_RDMA0, "mm_disp_rdma0", "mm_sel", 18), | ||
791 | GATE_MM0(CLK_MM_DISP_RDMA1, "mm_disp_rdma1", "mm_sel", 19), | ||
792 | GATE_MM0(CLK_MM_DISP_RDMA2, "mm_disp_rdma2", "mm_sel", 20), | ||
793 | GATE_MM0(CLK_MM_DISP_WDMA0, "mm_disp_wdma0", "mm_sel", 21), | ||
794 | GATE_MM0(CLK_MM_DISP_WDMA1, "mm_disp_wdma1", "mm_sel", 22), | ||
795 | GATE_MM0(CLK_MM_DISP_COLOR0, "mm_disp_color0", "mm_sel", 23), | ||
796 | GATE_MM0(CLK_MM_DISP_COLOR1, "mm_disp_color1", "mm_sel", 24), | ||
797 | GATE_MM0(CLK_MM_DISP_AAL, "mm_disp_aal", "mm_sel", 25), | ||
798 | GATE_MM0(CLK_MM_DISP_GAMMA, "mm_disp_gamma", "mm_sel", 26), | ||
799 | GATE_MM0(CLK_MM_DISP_UFOE, "mm_disp_ufoe", "mm_sel", 27), | ||
800 | GATE_MM0(CLK_MM_DISP_SPLIT0, "mm_disp_split0", "mm_sel", 28), | ||
801 | GATE_MM0(CLK_MM_DISP_SPLIT1, "mm_disp_split1", "mm_sel", 29), | ||
802 | GATE_MM0(CLK_MM_DISP_MERGE, "mm_disp_merge", "mm_sel", 30), | ||
803 | GATE_MM0(CLK_MM_DISP_OD, "mm_disp_od", "mm_sel", 31), | ||
804 | /* MM1 */ | ||
805 | GATE_MM1(CLK_MM_DISP_PWM0MM, "mm_disp_pwm0mm", "mm_sel", 0), | ||
806 | GATE_MM1(CLK_MM_DISP_PWM026M, "mm_disp_pwm026m", "pwm_sel", 1), | ||
807 | GATE_MM1(CLK_MM_DISP_PWM1MM, "mm_disp_pwm1mm", "mm_sel", 2), | ||
808 | GATE_MM1(CLK_MM_DISP_PWM126M, "mm_disp_pwm126m", "pwm_sel", 3), | ||
809 | GATE_MM1(CLK_MM_DSI0_ENGINE, "mm_dsi0_engine", "mm_sel", 4), | ||
810 | GATE_MM1(CLK_MM_DSI0_DIGITAL, "mm_dsi0_digital", "dsi0_dig", 5), | ||
811 | GATE_MM1(CLK_MM_DSI1_ENGINE, "mm_dsi1_engine", "mm_sel", 6), | ||
812 | GATE_MM1(CLK_MM_DSI1_DIGITAL, "mm_dsi1_digital", "dsi1_dig", 7), | ||
813 | GATE_MM1(CLK_MM_DPI_PIXEL, "mm_dpi_pixel", "dpi0_sel", 8), | ||
814 | GATE_MM1(CLK_MM_DPI_ENGINE, "mm_dpi_engine", "mm_sel", 9), | ||
815 | GATE_MM1(CLK_MM_DPI1_PIXEL, "mm_dpi1_pixel", "lvds_pxl", 10), | ||
816 | GATE_MM1(CLK_MM_DPI1_ENGINE, "mm_dpi1_engine", "mm_sel", 11), | ||
817 | GATE_MM1(CLK_MM_HDMI_PIXEL, "mm_hdmi_pixel", "dpi0_sel", 12), | ||
818 | GATE_MM1(CLK_MM_HDMI_PLLCK, "mm_hdmi_pllck", "hdmi_sel", 13), | ||
819 | GATE_MM1(CLK_MM_HDMI_AUDIO, "mm_hdmi_audio", "apll1", 14), | ||
820 | GATE_MM1(CLK_MM_HDMI_SPDIF, "mm_hdmi_spdif", "apll2", 15), | ||
821 | GATE_MM1(CLK_MM_LVDS_PIXEL, "mm_lvds_pixel", "lvds_pxl", 16), | ||
822 | GATE_MM1(CLK_MM_LVDS_CTS, "mm_lvds_cts", "lvds_cts", 17), | ||
823 | GATE_MM1(CLK_MM_SMI_LARB4, "mm_smi_larb4", "mm_sel", 18), | ||
824 | GATE_MM1(CLK_MM_HDMI_HDCP, "mm_hdmi_hdcp", "hdcp_sel", 19), | ||
825 | GATE_MM1(CLK_MM_HDMI_HDCP24M, "mm_hdmi_hdcp24m", "hdcp_24m_sel", 20), | ||
826 | }; | ||
827 | |||
828 | static const struct mtk_gate_regs vdec0_cg_regs __initconst = { | ||
829 | .set_ofs = 0x0000, | ||
830 | .clr_ofs = 0x0004, | ||
831 | .sta_ofs = 0x0000, | ||
832 | }; | ||
833 | |||
834 | static const struct mtk_gate_regs vdec1_cg_regs __initconst = { | ||
835 | .set_ofs = 0x0008, | ||
836 | .clr_ofs = 0x000c, | ||
837 | .sta_ofs = 0x0008, | ||
838 | }; | ||
839 | |||
840 | #define GATE_VDEC0(_id, _name, _parent, _shift) { \ | ||
841 | .id = _id, \ | ||
842 | .name = _name, \ | ||
843 | .parent_name = _parent, \ | ||
844 | .regs = &vdec0_cg_regs, \ | ||
845 | .shift = _shift, \ | ||
846 | .ops = &mtk_clk_gate_ops_setclr_inv, \ | ||
847 | } | ||
848 | |||
849 | #define GATE_VDEC1(_id, _name, _parent, _shift) { \ | ||
850 | .id = _id, \ | ||
851 | .name = _name, \ | ||
852 | .parent_name = _parent, \ | ||
853 | .regs = &vdec1_cg_regs, \ | ||
854 | .shift = _shift, \ | ||
855 | .ops = &mtk_clk_gate_ops_setclr_inv, \ | ||
856 | } | ||
857 | |||
858 | static const struct mtk_gate vdec_clks[] __initconst = { | ||
859 | GATE_VDEC0(CLK_VDEC_CKEN, "vdec_cken", "vdec_sel", 0), | ||
860 | GATE_VDEC1(CLK_VDEC_LARB_CKEN, "vdec_larb_cken", "mm_sel", 0), | ||
861 | }; | ||
862 | |||
863 | #define GATE_VENC(_id, _name, _parent, _shift) { \ | ||
864 | .id = _id, \ | ||
865 | .name = _name, \ | ||
866 | .parent_name = _parent, \ | ||
867 | .regs = &cg_regs_4_8_0, \ | ||
868 | .shift = _shift, \ | ||
869 | .ops = &mtk_clk_gate_ops_setclr_inv, \ | ||
870 | } | ||
871 | |||
872 | static const struct mtk_gate venc_clks[] __initconst = { | ||
873 | GATE_VENC(CLK_VENC_CKE0, "venc_cke0", "mm_sel", 0), | ||
874 | GATE_VENC(CLK_VENC_CKE1, "venc_cke1", "venc_sel", 4), | ||
875 | GATE_VENC(CLK_VENC_CKE2, "venc_cke2", "venc_sel", 8), | ||
876 | GATE_VENC(CLK_VENC_CKE3, "venc_cke3", "venc_sel", 12), | ||
877 | }; | ||
878 | |||
879 | #define GATE_VENCLT(_id, _name, _parent, _shift) { \ | ||
880 | .id = _id, \ | ||
881 | .name = _name, \ | ||
882 | .parent_name = _parent, \ | ||
883 | .regs = &cg_regs_4_8_0, \ | ||
884 | .shift = _shift, \ | ||
885 | .ops = &mtk_clk_gate_ops_setclr_inv, \ | ||
886 | } | ||
887 | |||
888 | static const struct mtk_gate venclt_clks[] __initconst = { | ||
889 | GATE_VENCLT(CLK_VENCLT_CKE0, "venclt_cke0", "mm_sel", 0), | ||
890 | GATE_VENCLT(CLK_VENCLT_CKE1, "venclt_cke1", "venclt_sel", 4), | ||
891 | }; | ||
892 | |||
712 | static struct clk_onecell_data *mt8173_top_clk_data __initdata; | 893 | static struct clk_onecell_data *mt8173_top_clk_data __initdata; |
713 | static struct clk_onecell_data *mt8173_pll_clk_data __initdata; | 894 | static struct clk_onecell_data *mt8173_pll_clk_data __initdata; |
714 | 895 | ||
@@ -872,3 +1053,89 @@ static void __init mtk_apmixedsys_init(struct device_node *node) | |||
872 | } | 1053 | } |
873 | CLK_OF_DECLARE(mtk_apmixedsys, "mediatek,mt8173-apmixedsys", | 1054 | CLK_OF_DECLARE(mtk_apmixedsys, "mediatek,mt8173-apmixedsys", |
874 | mtk_apmixedsys_init); | 1055 | mtk_apmixedsys_init); |
1056 | |||
1057 | static void __init mtk_imgsys_init(struct device_node *node) | ||
1058 | { | ||
1059 | struct clk_onecell_data *clk_data; | ||
1060 | int r; | ||
1061 | |||
1062 | clk_data = mtk_alloc_clk_data(CLK_IMG_NR_CLK); | ||
1063 | |||
1064 | mtk_clk_register_gates(node, img_clks, ARRAY_SIZE(img_clks), | ||
1065 | clk_data); | ||
1066 | |||
1067 | r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); | ||
1068 | |||
1069 | if (r) | ||
1070 | pr_err("%s(): could not register clock provider: %d\n", | ||
1071 | __func__, r); | ||
1072 | } | ||
1073 | CLK_OF_DECLARE(mtk_imgsys, "mediatek,mt8173-imgsys", mtk_imgsys_init); | ||
1074 | |||
1075 | static void __init mtk_mmsys_init(struct device_node *node) | ||
1076 | { | ||
1077 | struct clk_onecell_data *clk_data; | ||
1078 | int r; | ||
1079 | |||
1080 | clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK); | ||
1081 | |||
1082 | mtk_clk_register_gates(node, mm_clks, ARRAY_SIZE(mm_clks), | ||
1083 | clk_data); | ||
1084 | |||
1085 | r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); | ||
1086 | if (r) | ||
1087 | pr_err("%s(): could not register clock provider: %d\n", | ||
1088 | __func__, r); | ||
1089 | } | ||
1090 | CLK_OF_DECLARE(mtk_mmsys, "mediatek,mt8173-mmsys", mtk_mmsys_init); | ||
1091 | |||
1092 | static void __init mtk_vdecsys_init(struct device_node *node) | ||
1093 | { | ||
1094 | struct clk_onecell_data *clk_data; | ||
1095 | int r; | ||
1096 | |||
1097 | clk_data = mtk_alloc_clk_data(CLK_VDEC_NR_CLK); | ||
1098 | |||
1099 | mtk_clk_register_gates(node, vdec_clks, ARRAY_SIZE(vdec_clks), | ||
1100 | clk_data); | ||
1101 | |||
1102 | r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); | ||
1103 | if (r) | ||
1104 | pr_err("%s(): could not register clock provider: %d\n", | ||
1105 | __func__, r); | ||
1106 | } | ||
1107 | CLK_OF_DECLARE(mtk_vdecsys, "mediatek,mt8173-vdecsys", mtk_vdecsys_init); | ||
1108 | |||
1109 | static void __init mtk_vencsys_init(struct device_node *node) | ||
1110 | { | ||
1111 | struct clk_onecell_data *clk_data; | ||
1112 | int r; | ||
1113 | |||
1114 | clk_data = mtk_alloc_clk_data(CLK_VENC_NR_CLK); | ||
1115 | |||
1116 | mtk_clk_register_gates(node, venc_clks, ARRAY_SIZE(venc_clks), | ||
1117 | clk_data); | ||
1118 | |||
1119 | r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); | ||
1120 | if (r) | ||
1121 | pr_err("%s(): could not register clock provider: %d\n", | ||
1122 | __func__, r); | ||
1123 | } | ||
1124 | CLK_OF_DECLARE(mtk_vencsys, "mediatek,mt8173-vencsys", mtk_vencsys_init); | ||
1125 | |||
1126 | static void __init mtk_vencltsys_init(struct device_node *node) | ||
1127 | { | ||
1128 | struct clk_onecell_data *clk_data; | ||
1129 | int r; | ||
1130 | |||
1131 | clk_data = mtk_alloc_clk_data(CLK_VENCLT_NR_CLK); | ||
1132 | |||
1133 | mtk_clk_register_gates(node, venclt_clks, ARRAY_SIZE(venclt_clks), | ||
1134 | clk_data); | ||
1135 | |||
1136 | r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); | ||
1137 | if (r) | ||
1138 | pr_err("%s(): could not register clock provider: %d\n", | ||
1139 | __func__, r); | ||
1140 | } | ||
1141 | CLK_OF_DECLARE(mtk_vencltsys, "mediatek,mt8173-vencltsys", mtk_vencltsys_init); | ||
diff --git a/include/dt-bindings/clock/mt8173-clk.h b/include/dt-bindings/clock/mt8173-clk.h index 69a8a8e7a586..af9f94704e6b 100644 --- a/include/dt-bindings/clock/mt8173-clk.h +++ b/include/dt-bindings/clock/mt8173-clk.h | |||
@@ -153,12 +153,16 @@ | |||
153 | #define CLK_TOP_I2S2_M_SEL 135 | 153 | #define CLK_TOP_I2S2_M_SEL 135 |
154 | #define CLK_TOP_I2S3_M_SEL 136 | 154 | #define CLK_TOP_I2S3_M_SEL 136 |
155 | #define CLK_TOP_I2S3_B_SEL 137 | 155 | #define CLK_TOP_I2S3_B_SEL 137 |
156 | #define CLK_TOP_NR_CLK 138 | 156 | #define CLK_TOP_DSI0_DIG 138 |
157 | #define CLK_TOP_DSI1_DIG 139 | ||
158 | #define CLK_TOP_LVDS_PXL 140 | ||
159 | #define CLK_TOP_LVDS_CTS 141 | ||
160 | #define CLK_TOP_NR_CLK 142 | ||
157 | 161 | ||
158 | /* APMIXED_SYS */ | 162 | /* APMIXED_SYS */ |
159 | 163 | ||
160 | #define CLK_APMIXED_ARMCA15PLL 1 | 164 | #define CLK_APMIXED_ARMCA15PLL 1 |
161 | #define CLK_APMIXED_ARMCA7PLL 2 | 165 | #define CLK_APMIXED_ARMCA7PLL 2 |
162 | #define CLK_APMIXED_MAINPLL 3 | 166 | #define CLK_APMIXED_MAINPLL 3 |
163 | #define CLK_APMIXED_UNIVPLL 4 | 167 | #define CLK_APMIXED_UNIVPLL 4 |
164 | #define CLK_APMIXED_MMPLL 5 | 168 | #define CLK_APMIXED_MMPLL 5 |
@@ -232,4 +236,91 @@ | |||
232 | #define CLK_PERI_UART3_SEL 39 | 236 | #define CLK_PERI_UART3_SEL 39 |
233 | #define CLK_PERI_NR_CLK 40 | 237 | #define CLK_PERI_NR_CLK 40 |
234 | 238 | ||
239 | /* IMG_SYS */ | ||
240 | |||
241 | #define CLK_IMG_LARB2_SMI 1 | ||
242 | #define CLK_IMG_CAM_SMI 2 | ||
243 | #define CLK_IMG_CAM_CAM 3 | ||
244 | #define CLK_IMG_SEN_TG 4 | ||
245 | #define CLK_IMG_SEN_CAM 5 | ||
246 | #define CLK_IMG_CAM_SV 6 | ||
247 | #define CLK_IMG_FD 7 | ||
248 | #define CLK_IMG_NR_CLK 8 | ||
249 | |||
250 | /* MM_SYS */ | ||
251 | |||
252 | #define CLK_MM_SMI_COMMON 1 | ||
253 | #define CLK_MM_SMI_LARB0 2 | ||
254 | #define CLK_MM_CAM_MDP 3 | ||
255 | #define CLK_MM_MDP_RDMA0 4 | ||
256 | #define CLK_MM_MDP_RDMA1 5 | ||
257 | #define CLK_MM_MDP_RSZ0 6 | ||
258 | #define CLK_MM_MDP_RSZ1 7 | ||
259 | #define CLK_MM_MDP_RSZ2 8 | ||
260 | #define CLK_MM_MDP_TDSHP0 9 | ||
261 | #define CLK_MM_MDP_TDSHP1 10 | ||
262 | #define CLK_MM_MDP_WDMA 11 | ||
263 | #define CLK_MM_MDP_WROT0 12 | ||
264 | #define CLK_MM_MDP_WROT1 13 | ||
265 | #define CLK_MM_FAKE_ENG 14 | ||
266 | #define CLK_MM_MUTEX_32K 15 | ||
267 | #define CLK_MM_DISP_OVL0 16 | ||
268 | #define CLK_MM_DISP_OVL1 17 | ||
269 | #define CLK_MM_DISP_RDMA0 18 | ||
270 | #define CLK_MM_DISP_RDMA1 19 | ||
271 | #define CLK_MM_DISP_RDMA2 20 | ||
272 | #define CLK_MM_DISP_WDMA0 21 | ||
273 | #define CLK_MM_DISP_WDMA1 22 | ||
274 | #define CLK_MM_DISP_COLOR0 23 | ||
275 | #define CLK_MM_DISP_COLOR1 24 | ||
276 | #define CLK_MM_DISP_AAL 25 | ||
277 | #define CLK_MM_DISP_GAMMA 26 | ||
278 | #define CLK_MM_DISP_UFOE 27 | ||
279 | #define CLK_MM_DISP_SPLIT0 28 | ||
280 | #define CLK_MM_DISP_SPLIT1 29 | ||
281 | #define CLK_MM_DISP_MERGE 30 | ||
282 | #define CLK_MM_DISP_OD 31 | ||
283 | #define CLK_MM_DISP_PWM0MM 32 | ||
284 | #define CLK_MM_DISP_PWM026M 33 | ||
285 | #define CLK_MM_DISP_PWM1MM 34 | ||
286 | #define CLK_MM_DISP_PWM126M 35 | ||
287 | #define CLK_MM_DSI0_ENGINE 36 | ||
288 | #define CLK_MM_DSI0_DIGITAL 37 | ||
289 | #define CLK_MM_DSI1_ENGINE 38 | ||
290 | #define CLK_MM_DSI1_DIGITAL 39 | ||
291 | #define CLK_MM_DPI_PIXEL 40 | ||
292 | #define CLK_MM_DPI_ENGINE 41 | ||
293 | #define CLK_MM_DPI1_PIXEL 42 | ||
294 | #define CLK_MM_DPI1_ENGINE 43 | ||
295 | #define CLK_MM_HDMI_PIXEL 44 | ||
296 | #define CLK_MM_HDMI_PLLCK 45 | ||
297 | #define CLK_MM_HDMI_AUDIO 46 | ||
298 | #define CLK_MM_HDMI_SPDIF 47 | ||
299 | #define CLK_MM_LVDS_PIXEL 48 | ||
300 | #define CLK_MM_LVDS_CTS 49 | ||
301 | #define CLK_MM_SMI_LARB4 50 | ||
302 | #define CLK_MM_HDMI_HDCP 51 | ||
303 | #define CLK_MM_HDMI_HDCP24M 52 | ||
304 | #define CLK_MM_NR_CLK 53 | ||
305 | |||
306 | /* VDEC_SYS */ | ||
307 | |||
308 | #define CLK_VDEC_CKEN 1 | ||
309 | #define CLK_VDEC_LARB_CKEN 2 | ||
310 | #define CLK_VDEC_NR_CLK 3 | ||
311 | |||
312 | /* VENC_SYS */ | ||
313 | |||
314 | #define CLK_VENC_CKE0 1 | ||
315 | #define CLK_VENC_CKE1 2 | ||
316 | #define CLK_VENC_CKE2 3 | ||
317 | #define CLK_VENC_CKE3 4 | ||
318 | #define CLK_VENC_NR_CLK 5 | ||
319 | |||
320 | /* VENCLT_SYS */ | ||
321 | |||
322 | #define CLK_VENCLT_CKE0 1 | ||
323 | #define CLK_VENCLT_CKE1 2 | ||
324 | #define CLK_VENCLT_NR_CLK 3 | ||
325 | |||
235 | #endif /* _DT_BINDINGS_CLK_MT8173_H */ | 326 | #endif /* _DT_BINDINGS_CLK_MT8173_H */ |