diff options
Diffstat (limited to 'arch/arm/mach-exynos/clock-exynos5.c')
-rw-r--r-- | arch/arm/mach-exynos/clock-exynos5.c | 92 |
1 files changed, 91 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/clock-exynos5.c b/arch/arm/mach-exynos/clock-exynos5.c index 5cd7a8b8868c..9f87a07b0bf8 100644 --- a/arch/arm/mach-exynos/clock-exynos5.c +++ b/arch/arm/mach-exynos/clock-exynos5.c | |||
@@ -82,6 +82,11 @@ static int exynos5_clksrc_mask_peric0_ctrl(struct clk *clk, int enable) | |||
82 | return s5p_gatectrl(EXYNOS5_CLKSRC_MASK_PERIC0, clk, enable); | 82 | return s5p_gatectrl(EXYNOS5_CLKSRC_MASK_PERIC0, clk, enable); |
83 | } | 83 | } |
84 | 84 | ||
85 | static int exynos5_clk_ip_acp_ctrl(struct clk *clk, int enable) | ||
86 | { | ||
87 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_ACP, clk, enable); | ||
88 | } | ||
89 | |||
85 | static int exynos5_clk_ip_core_ctrl(struct clk *clk, int enable) | 90 | static int exynos5_clk_ip_core_ctrl(struct clk *clk, int enable) |
86 | { | 91 | { |
87 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_CORE, clk, enable); | 92 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_CORE, clk, enable); |
@@ -127,6 +132,21 @@ static int exynos5_clk_ip_peris_ctrl(struct clk *clk, int enable) | |||
127 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_PERIS, clk, enable); | 132 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_PERIS, clk, enable); |
128 | } | 133 | } |
129 | 134 | ||
135 | static int exynos5_clk_ip_gscl_ctrl(struct clk *clk, int enable) | ||
136 | { | ||
137 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_GSCL, clk, enable); | ||
138 | } | ||
139 | |||
140 | static int exynos5_clk_ip_isp0_ctrl(struct clk *clk, int enable) | ||
141 | { | ||
142 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_ISP0, clk, enable); | ||
143 | } | ||
144 | |||
145 | static int exynos5_clk_ip_isp1_ctrl(struct clk *clk, int enable) | ||
146 | { | ||
147 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_ISP1, clk, enable); | ||
148 | } | ||
149 | |||
130 | /* Core list of CMU_CPU side */ | 150 | /* Core list of CMU_CPU side */ |
131 | 151 | ||
132 | static struct clksrc_clk exynos5_clk_mout_apll = { | 152 | static struct clksrc_clk exynos5_clk_mout_apll = { |
@@ -630,6 +650,76 @@ static struct clk exynos5_init_clocks_off[] = { | |||
630 | .parent = &exynos5_clk_aclk_66.clk, | 650 | .parent = &exynos5_clk_aclk_66.clk, |
631 | .enable = exynos5_clk_ip_peric_ctrl, | 651 | .enable = exynos5_clk_ip_peric_ctrl, |
632 | .ctrlbit = (1 << 14), | 652 | .ctrlbit = (1 << 14), |
653 | }, { | ||
654 | .name = SYSMMU_CLOCK_NAME, | ||
655 | .devname = SYSMMU_CLOCK_DEVNAME(mfc_l, 0), | ||
656 | .enable = &exynos5_clk_ip_mfc_ctrl, | ||
657 | .ctrlbit = (1 << 1), | ||
658 | }, { | ||
659 | .name = SYSMMU_CLOCK_NAME, | ||
660 | .devname = SYSMMU_CLOCK_DEVNAME(mfc_r, 1), | ||
661 | .enable = &exynos5_clk_ip_mfc_ctrl, | ||
662 | .ctrlbit = (1 << 2), | ||
663 | }, { | ||
664 | .name = SYSMMU_CLOCK_NAME, | ||
665 | .devname = SYSMMU_CLOCK_DEVNAME(tv, 2), | ||
666 | .enable = &exynos5_clk_ip_disp1_ctrl, | ||
667 | .ctrlbit = (1 << 9) | ||
668 | }, { | ||
669 | .name = SYSMMU_CLOCK_NAME, | ||
670 | .devname = SYSMMU_CLOCK_DEVNAME(jpeg, 3), | ||
671 | .enable = &exynos5_clk_ip_gen_ctrl, | ||
672 | .ctrlbit = (1 << 7), | ||
673 | }, { | ||
674 | .name = SYSMMU_CLOCK_NAME, | ||
675 | .devname = SYSMMU_CLOCK_DEVNAME(rot, 4), | ||
676 | .enable = &exynos5_clk_ip_gen_ctrl, | ||
677 | .ctrlbit = (1 << 6) | ||
678 | }, { | ||
679 | .name = SYSMMU_CLOCK_NAME, | ||
680 | .devname = SYSMMU_CLOCK_DEVNAME(gsc0, 5), | ||
681 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
682 | .ctrlbit = (1 << 7), | ||
683 | }, { | ||
684 | .name = SYSMMU_CLOCK_NAME, | ||
685 | .devname = SYSMMU_CLOCK_DEVNAME(gsc1, 6), | ||
686 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
687 | .ctrlbit = (1 << 8), | ||
688 | }, { | ||
689 | .name = SYSMMU_CLOCK_NAME, | ||
690 | .devname = SYSMMU_CLOCK_DEVNAME(gsc2, 7), | ||
691 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
692 | .ctrlbit = (1 << 9), | ||
693 | }, { | ||
694 | .name = SYSMMU_CLOCK_NAME, | ||
695 | .devname = SYSMMU_CLOCK_DEVNAME(gsc3, 8), | ||
696 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
697 | .ctrlbit = (1 << 10), | ||
698 | }, { | ||
699 | .name = SYSMMU_CLOCK_NAME, | ||
700 | .devname = SYSMMU_CLOCK_DEVNAME(isp, 9), | ||
701 | .enable = &exynos5_clk_ip_isp0_ctrl, | ||
702 | .ctrlbit = (0x3F << 8), | ||
703 | }, { | ||
704 | .name = SYSMMU_CLOCK_NAME2, | ||
705 | .devname = SYSMMU_CLOCK_DEVNAME(isp, 9), | ||
706 | .enable = &exynos5_clk_ip_isp1_ctrl, | ||
707 | .ctrlbit = (0xF << 4), | ||
708 | }, { | ||
709 | .name = SYSMMU_CLOCK_NAME, | ||
710 | .devname = SYSMMU_CLOCK_DEVNAME(camif0, 12), | ||
711 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
712 | .ctrlbit = (1 << 11), | ||
713 | }, { | ||
714 | .name = SYSMMU_CLOCK_NAME, | ||
715 | .devname = SYSMMU_CLOCK_DEVNAME(camif1, 13), | ||
716 | .enable = &exynos5_clk_ip_gscl_ctrl, | ||
717 | .ctrlbit = (1 << 12), | ||
718 | }, { | ||
719 | .name = SYSMMU_CLOCK_NAME, | ||
720 | .devname = SYSMMU_CLOCK_DEVNAME(2d, 14), | ||
721 | .enable = &exynos5_clk_ip_acp_ctrl, | ||
722 | .ctrlbit = (1 << 7) | ||
633 | } | 723 | } |
634 | }; | 724 | }; |
635 | 725 | ||
@@ -678,7 +768,7 @@ static struct clk exynos5_clk_pdma1 = { | |||
678 | .name = "dma", | 768 | .name = "dma", |
679 | .devname = "dma-pl330.1", | 769 | .devname = "dma-pl330.1", |
680 | .enable = exynos5_clk_ip_fsys_ctrl, | 770 | .enable = exynos5_clk_ip_fsys_ctrl, |
681 | .ctrlbit = (1 << 1), | 771 | .ctrlbit = (1 << 2), |
682 | }; | 772 | }; |
683 | 773 | ||
684 | static struct clk exynos5_clk_mdma1 = { | 774 | static struct clk exynos5_clk_mdma1 = { |