Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'for_3.14/samsung-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tfiga/samsung-clk into clk-next-samsung

(A bit late) first round of Samsung clock patches for v3.14.

+1946 -1153
+35 -4
Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
··· 8 8 9 9 - compatible: should be one of the following: 10 10 - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs. 11 - - "samsung,exynos5250-audss-clock" - controller compatible with all Exynos5 SoCs. 12 - 11 + - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250 12 + SoCs. 13 + - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420 14 + SoCs. 13 15 - reg: physical base address and length of the controller's register set. 14 16 15 17 - #clock-cells: should be 1. 18 + 19 + - clocks: 20 + - pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll" 21 + is used if not specified. 22 + - pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll" 23 + is used if not specified. 24 + - cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not 25 + specified. 26 + - sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if 27 + not specified. 28 + - sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not 29 + specified. 30 + 31 + - clock-names: Aliases for the above clocks. They should be "pll_ref", 32 + "pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively. 16 33 17 34 The following is the list of clocks generated by the controller. Each clock is 18 35 assigned an identifier and client nodes use this identifier to specify the ··· 51 34 sclk_i2s 7 52 35 pcm_bus 8 53 36 sclk_pcm 9 37 + adma 10 Exynos5420 54 38 55 - Example 1: An example of a clock controller node is listed below. 39 + Example 1: An example of a clock controller node using the default input 40 + clock names is listed below. 56 41 57 42 clock_audss: audss-clock-controller@3810000 { 58 43 compatible = "samsung,exynos5250-audss-clock"; ··· 62 43 #clock-cells = <1>; 63 44 }; 64 45 65 - Example 2: I2S controller node that consumes the clock generated by the clock 46 + Example 2: An example of a clock controller node with the input clocks 47 + specified. 48 + 49 + clock_audss: audss-clock-controller@3810000 { 50 + compatible = "samsung,exynos5250-audss-clock"; 51 + reg = <0x03810000 0x0C>; 52 + #clock-cells = <1>; 53 + clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>, 54 + <&ext_i2s_clk>; 55 + clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk"; 56 + }; 57 + 58 + Example 3: I2S controller node that consumes the clock generated by the clock 66 59 controller. Refer to the standard clock bindings for information 67 60 about 'clocks' and 'clock-names' property. 68 61
+3
Documentation/devicetree/bindings/clock/exynos5250-clock.txt
··· 62 62 div_i2s1 157 63 63 div_i2s2 158 64 64 sclk_hdmiphy 159 65 + div_pcm0 160 65 66 66 67 67 68 [Peripheral Clock Gates] ··· 160 159 mixer 343 161 160 hdmi 344 162 161 g2d 345 162 + mdma0 346 163 + smmu_mdma0 347 163 164 164 165 165 166 [Clock Muxes]
+3 -1
arch/arm/boot/dts/exynos5250.dtsi
··· 88 88 compatible = "samsung,exynos5250-audss-clock"; 89 89 reg = <0x03810000 0x0C>; 90 90 #clock-cells = <1>; 91 + clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>; 92 + clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in"; 91 93 }; 92 94 93 95 timer { ··· 561 559 compatible = "arm,pl330", "arm,primecell"; 562 560 reg = <0x10800000 0x1000>; 563 561 interrupts = <0 33 0>; 564 - clocks = <&clock 271>; 562 + clocks = <&clock 346>; 565 563 clock-names = "apb_pclk"; 566 564 #dma-cells = <1>; 567 565 #dma-channels = <8>;
+2 -2
arch/arm/boot/dts/exynos5420.dtsi
··· 76 76 compatible = "samsung,exynos5420-audss-clock"; 77 77 reg = <0x03810000 0x0C>; 78 78 #clock-cells = <1>; 79 - clocks = <&clock 148>; 80 - clock-names = "sclk_audio"; 79 + clocks = <&clock 1>, <&clock 5>, <&clock 148>, <&clock 149>; 80 + clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in"; 81 81 }; 82 82 83 83 codec@11000000 {
+136 -23
drivers/clk/samsung/clk-exynos-audss.c
··· 14 14 #include <linux/clk-provider.h> 15 15 #include <linux/of_address.h> 16 16 #include <linux/syscore_ops.h> 17 + #include <linux/module.h> 18 + #include <linux/platform_device.h> 17 19 18 20 #include <dt-bindings/clk/exynos-audss-clk.h> 21 + 22 + enum exynos_audss_clk_type { 23 + TYPE_EXYNOS4210, 24 + TYPE_EXYNOS5250, 25 + TYPE_EXYNOS5420, 26 + }; 19 27 20 28 static DEFINE_SPINLOCK(lock); 21 29 static struct clk **clk_table; ··· 34 26 #define ASS_CLK_DIV 0x4 35 27 #define ASS_CLK_GATE 0x8 36 28 29 + #ifdef CONFIG_PM_SLEEP 37 30 static unsigned long reg_save[][2] = { 38 31 {ASS_CLK_SRC, 0}, 39 32 {ASS_CLK_DIV, 0}, 40 33 {ASS_CLK_GATE, 0}, 41 34 }; 42 35 43 - /* list of all parent clock list */ 44 - static const char *mout_audss_p[] = { "fin_pll", "fout_epll" }; 45 - static const char *mout_i2s_p[] = { "mout_audss", "cdclk0", "sclk_audio0" }; 46 - 47 - #ifdef CONFIG_PM_SLEEP 48 36 static int exynos_audss_clk_suspend(void) 49 37 { 50 38 int i; ··· 65 61 }; 66 62 #endif /* CONFIG_PM_SLEEP */ 67 63 64 + static const struct of_device_id exynos_audss_clk_of_match[] = { 65 + { .compatible = "samsung,exynos4210-audss-clock", 66 + .data = (void *)TYPE_EXYNOS4210, }, 67 + { .compatible = "samsung,exynos5250-audss-clock", 68 + .data = (void *)TYPE_EXYNOS5250, }, 69 + { .compatible = "samsung,exynos5420-audss-clock", 70 + .data = (void *)TYPE_EXYNOS5420, }, 71 + {}, 72 + }; 73 + 68 74 /* register exynos_audss clocks */ 69 - static void __init exynos_audss_clk_init(struct device_node *np) 75 + static int exynos_audss_clk_probe(struct platform_device *pdev) 70 76 { 71 - reg_base = of_iomap(np, 0); 72 - if (!reg_base) { 73 - pr_err("%s: failed to map audss registers\n", __func__); 74 - return; 77 + int i, ret = 0; 78 + struct resource *res; 79 + const char *mout_audss_p[] = {"fin_pll", "fout_epll"}; 80 + const char *mout_i2s_p[] = {"mout_audss", "cdclk0", "sclk_audio0"}; 81 + const char *sclk_pcm_p = "sclk_pcm0"; 82 + struct clk *pll_ref, *pll_in, *cdclk, *sclk_audio, *sclk_pcm_in; 83 + const struct of_device_id *match; 84 + enum exynos_audss_clk_type variant; 85 + 86 + match = of_match_node(exynos_audss_clk_of_match, pdev->dev.of_node); 87 + if (!match) 88 + return -EINVAL; 89 + variant = (enum exynos_audss_clk_type)match->data; 90 + 91 + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 92 + reg_base = devm_ioremap_resource(&pdev->dev, res); 93 + if (IS_ERR(reg_base)) { 94 + dev_err(&pdev->dev, "failed to map audss registers\n"); 95 + return PTR_ERR(reg_base); 75 96 } 76 97 77 - clk_table = kzalloc(sizeof(struct clk *) * EXYNOS_AUDSS_MAX_CLKS, 98 + clk_table = devm_kzalloc(&pdev->dev, 99 + sizeof(struct clk *) * EXYNOS_AUDSS_MAX_CLKS, 78 100 GFP_KERNEL); 79 - if (!clk_table) { 80 - pr_err("%s: could not allocate clk lookup table\n", __func__); 81 - return; 82 - } 101 + if (!clk_table) 102 + return -ENOMEM; 83 103 84 104 clk_data.clks = clk_table; 85 - clk_data.clk_num = EXYNOS_AUDSS_MAX_CLKS; 86 - of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); 105 + if (variant == TYPE_EXYNOS5420) 106 + clk_data.clk_num = EXYNOS_AUDSS_MAX_CLKS; 107 + else 108 + clk_data.clk_num = EXYNOS_AUDSS_MAX_CLKS - 1; 87 109 110 + pll_ref = devm_clk_get(&pdev->dev, "pll_ref"); 111 + pll_in = devm_clk_get(&pdev->dev, "pll_in"); 112 + if (!IS_ERR(pll_ref)) 113 + mout_audss_p[0] = __clk_get_name(pll_ref); 114 + if (!IS_ERR(pll_in)) 115 + mout_audss_p[1] = __clk_get_name(pll_in); 88 116 clk_table[EXYNOS_MOUT_AUDSS] = clk_register_mux(NULL, "mout_audss", 89 117 mout_audss_p, ARRAY_SIZE(mout_audss_p), 90 118 CLK_SET_RATE_NO_REPARENT, 91 119 reg_base + ASS_CLK_SRC, 0, 1, 0, &lock); 92 120 121 + cdclk = devm_clk_get(&pdev->dev, "cdclk"); 122 + sclk_audio = devm_clk_get(&pdev->dev, "sclk_audio"); 123 + if (!IS_ERR(cdclk)) 124 + mout_i2s_p[1] = __clk_get_name(cdclk); 125 + if (!IS_ERR(sclk_audio)) 126 + mout_i2s_p[2] = __clk_get_name(sclk_audio); 93 127 clk_table[EXYNOS_MOUT_I2S] = clk_register_mux(NULL, "mout_i2s", 94 128 mout_i2s_p, ARRAY_SIZE(mout_i2s_p), 95 129 CLK_SET_RATE_NO_REPARENT, ··· 161 119 "sclk_pcm", CLK_SET_RATE_PARENT, 162 120 reg_base + ASS_CLK_GATE, 4, 0, &lock); 163 121 122 + sclk_pcm_in = devm_clk_get(&pdev->dev, "sclk_pcm_in"); 123 + if (!IS_ERR(sclk_pcm_in)) 124 + sclk_pcm_p = __clk_get_name(sclk_pcm_in); 164 125 clk_table[EXYNOS_SCLK_PCM] = clk_register_gate(NULL, "sclk_pcm", 165 - "div_pcm0", CLK_SET_RATE_PARENT, 126 + sclk_pcm_p, CLK_SET_RATE_PARENT, 166 127 reg_base + ASS_CLK_GATE, 5, 0, &lock); 128 + 129 + if (variant == TYPE_EXYNOS5420) { 130 + clk_table[EXYNOS_ADMA] = clk_register_gate(NULL, "adma", 131 + "dout_srp", CLK_SET_RATE_PARENT, 132 + reg_base + ASS_CLK_GATE, 9, 0, &lock); 133 + } 134 + 135 + for (i = 0; i < clk_data.clk_num; i++) { 136 + if (IS_ERR(clk_table[i])) { 137 + dev_err(&pdev->dev, "failed to register clock %d\n", i); 138 + ret = PTR_ERR(clk_table[i]); 139 + goto unregister; 140 + } 141 + } 142 + 143 + ret = of_clk_add_provider(pdev->dev.of_node, of_clk_src_onecell_get, 144 + &clk_data); 145 + if (ret) { 146 + dev_err(&pdev->dev, "failed to add clock provider\n"); 147 + goto unregister; 148 + } 167 149 168 150 #ifdef CONFIG_PM_SLEEP 169 151 register_syscore_ops(&exynos_audss_clk_syscore_ops); 170 152 #endif 171 153 172 - pr_info("Exynos: Audss: clock setup completed\n"); 154 + dev_info(&pdev->dev, "setup completed\n"); 155 + 156 + return 0; 157 + 158 + unregister: 159 + for (i = 0; i < clk_data.clk_num; i++) { 160 + if (!IS_ERR(clk_table[i])) 161 + clk_unregister(clk_table[i]); 162 + } 163 + 164 + return ret; 173 165 } 174 - CLK_OF_DECLARE(exynos4210_audss_clk, "samsung,exynos4210-audss-clock", 175 - exynos_audss_clk_init); 176 - CLK_OF_DECLARE(exynos5250_audss_clk, "samsung,exynos5250-audss-clock", 177 - exynos_audss_clk_init); 166 + 167 + static int exynos_audss_clk_remove(struct platform_device *pdev) 168 + { 169 + int i; 170 + 171 + of_clk_del_provider(pdev->dev.of_node); 172 + 173 + for (i = 0; i < clk_data.clk_num; i++) { 174 + if (!IS_ERR(clk_table[i])) 175 + clk_unregister(clk_table[i]); 176 + } 177 + 178 + return 0; 179 + } 180 + 181 + static struct platform_driver exynos_audss_clk_driver = { 182 + .driver = { 183 + .name = "exynos-audss-clk", 184 + .owner = THIS_MODULE, 185 + .of_match_table = exynos_audss_clk_of_match, 186 + }, 187 + .probe = exynos_audss_clk_probe, 188 + .remove = exynos_audss_clk_remove, 189 + }; 190 + 191 + static int __init exynos_audss_clk_init(void) 192 + { 193 + return platform_driver_register(&exynos_audss_clk_driver); 194 + } 195 + core_initcall(exynos_audss_clk_init); 196 + 197 + static void __exit exynos_audss_clk_exit(void) 198 + { 199 + platform_driver_unregister(&exynos_audss_clk_driver); 200 + } 201 + module_exit(exynos_audss_clk_exit); 202 + 203 + MODULE_AUTHOR("Padmavathi Venna <padma.v@samsung.com>"); 204 + MODULE_DESCRIPTION("Exynos Audio Subsystem Clock Controller"); 205 + MODULE_LICENSE("GPL v2"); 206 + MODULE_ALIAS("platform:exynos-audss-clk");
+403 -456
drivers/clk/samsung/clk-exynos4.c
··· 10 10 * Common Clock Framework support for all Exynos4 SoCs. 11 11 */ 12 12 13 + #include <dt-bindings/clock/exynos4.h> 13 14 #include <linux/clk.h> 14 15 #include <linux/clkdev.h> 15 16 #include <linux/clk-provider.h> ··· 40 39 #define SRC_TOP1 0xc214 41 40 #define SRC_CAM 0xc220 42 41 #define SRC_TV 0xc224 43 - #define SRC_MFC 0xcc28 42 + #define SRC_MFC 0xc228 44 43 #define SRC_G3D 0xc22c 45 44 #define E4210_SRC_IMAGE 0xc230 46 45 #define SRC_LCD0 0xc234 ··· 128 127 enum exynos4_plls { 129 128 apll, mpll, epll, vpll, 130 129 nr_plls /* number of PLLs */ 131 - }; 132 - 133 - /* 134 - * Let each supported clock get a unique id. This id is used to lookup the clock 135 - * for device tree based platforms. The clocks are categorized into three 136 - * sections: core, sclk gate and bus interface gate clocks. 137 - * 138 - * When adding a new clock to this list, it is advised to choose a clock 139 - * category and add it to the end of that category. That is because the the 140 - * device tree source file is referring to these ids and any change in the 141 - * sequence number of existing clocks will require corresponding change in the 142 - * device tree files. This limitation would go away when pre-processor support 143 - * for dtc would be available. 144 - */ 145 - enum exynos4_clks { 146 - none, 147 - 148 - /* core clocks */ 149 - xxti, xusbxti, fin_pll, fout_apll, fout_mpll, fout_epll, fout_vpll, 150 - sclk_apll, sclk_mpll, sclk_epll, sclk_vpll, arm_clk, aclk200, aclk100, 151 - aclk160, aclk133, mout_mpll_user_t, mout_mpll_user_c, mout_core, 152 - mout_apll, /* 20 */ 153 - 154 - /* gate for special clocks (sclk) */ 155 - sclk_fimc0 = 128, sclk_fimc1, sclk_fimc2, sclk_fimc3, sclk_cam0, 156 - sclk_cam1, sclk_csis0, sclk_csis1, sclk_hdmi, sclk_mixer, sclk_dac, 157 - sclk_pixel, sclk_fimd0, sclk_mdnie0, sclk_mdnie_pwm0, sclk_mipi0, 158 - sclk_audio0, sclk_mmc0, sclk_mmc1, sclk_mmc2, sclk_mmc3, sclk_mmc4, 159 - sclk_sata, sclk_uart0, sclk_uart1, sclk_uart2, sclk_uart3, sclk_uart4, 160 - sclk_audio1, sclk_audio2, sclk_spdif, sclk_spi0, sclk_spi1, sclk_spi2, 161 - sclk_slimbus, sclk_fimd1, sclk_mipi1, sclk_pcm1, sclk_pcm2, sclk_i2s1, 162 - sclk_i2s2, sclk_mipihsi, sclk_mfc, sclk_pcm0, sclk_g3d, sclk_pwm_isp, 163 - sclk_spi0_isp, sclk_spi1_isp, sclk_uart_isp, sclk_fimg2d, 164 - 165 - /* gate clocks */ 166 - fimc0 = 256, fimc1, fimc2, fimc3, csis0, csis1, jpeg, smmu_fimc0, 167 - smmu_fimc1, smmu_fimc2, smmu_fimc3, smmu_jpeg, vp, mixer, tvenc, hdmi, 168 - smmu_tv, mfc, smmu_mfcl, smmu_mfcr, g3d, g2d, rotator, mdma, smmu_g2d, 169 - smmu_rotator, smmu_mdma, fimd0, mie0, mdnie0, dsim0, smmu_fimd0, fimd1, 170 - mie1, dsim1, smmu_fimd1, pdma0, pdma1, pcie_phy, sata_phy, tsi, sdmmc0, 171 - sdmmc1, sdmmc2, sdmmc3, sdmmc4, sata, sromc, usb_host, usb_device, pcie, 172 - onenand, nfcon, smmu_pcie, gps, smmu_gps, uart0, uart1, uart2, uart3, 173 - uart4, i2c0, i2c1, i2c2, i2c3, i2c4, i2c5, i2c6, i2c7, i2c_hdmi, tsadc, 174 - spi0, spi1, spi2, i2s1, i2s2, pcm0, i2s0, pcm1, pcm2, pwm, slimbus, 175 - spdif, ac97, modemif, chipid, sysreg, hdmi_cec, mct, wdt, rtc, keyif, 176 - audss, mipi_hsi, mdma2, pixelasyncm0, pixelasyncm1, fimc_lite0, 177 - fimc_lite1, ppmuispx, ppmuispmx, fimc_isp, fimc_drc, fimc_fd, mcuisp, 178 - gicisp, smmu_isp, smmu_drc, smmu_fd, smmu_lite0, smmu_lite1, mcuctl_isp, 179 - mpwm_isp, i2c0_isp, i2c1_isp, mtcadc_isp, pwm_isp, wdt_isp, uart_isp, 180 - asyncaxim, smmu_ispcx, spi0_isp, spi1_isp, pwm_isp_sclk, spi0_isp_sclk, 181 - spi1_isp_sclk, uart_isp_sclk, tmu_apbif, 182 - 183 - /* mux clocks */ 184 - mout_fimc0 = 384, mout_fimc1, mout_fimc2, mout_fimc3, mout_cam0, 185 - mout_cam1, mout_csis0, mout_csis1, mout_g3d0, mout_g3d1, mout_g3d, 186 - aclk400_mcuisp, 187 - 188 - /* div clocks */ 189 - div_isp0 = 450, div_isp1, div_mcuisp0, div_mcuisp1, div_aclk200, 190 - div_aclk400_mcuisp, 191 - 192 - nr_clks, 193 130 }; 194 131 195 132 /* ··· 286 347 287 348 /* fixed rate clocks generated outside the soc */ 288 349 static struct samsung_fixed_rate_clock exynos4_fixed_rate_ext_clks[] __initdata = { 289 - FRATE(xxti, "xxti", NULL, CLK_IS_ROOT, 0), 290 - FRATE(xusbxti, "xusbxti", NULL, CLK_IS_ROOT, 0), 350 + FRATE(CLK_XXTI, "xxti", NULL, CLK_IS_ROOT, 0), 351 + FRATE(CLK_XUSBXTI, "xusbxti", NULL, CLK_IS_ROOT, 0), 291 352 }; 292 353 293 354 /* fixed rate clocks generated inside the soc */ 294 355 static struct samsung_fixed_rate_clock exynos4_fixed_rate_clks[] __initdata = { 295 - FRATE(none, "sclk_hdmi24m", NULL, CLK_IS_ROOT, 24000000), 296 - FRATE(none, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 27000000), 297 - FRATE(none, "sclk_usbphy0", NULL, CLK_IS_ROOT, 48000000), 356 + FRATE(0, "sclk_hdmi24m", NULL, CLK_IS_ROOT, 24000000), 357 + FRATE(0, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 27000000), 358 + FRATE(0, "sclk_usbphy0", NULL, CLK_IS_ROOT, 48000000), 298 359 }; 299 360 300 361 static struct samsung_fixed_rate_clock exynos4210_fixed_rate_clks[] __initdata = { 301 - FRATE(none, "sclk_usbphy1", NULL, CLK_IS_ROOT, 48000000), 362 + FRATE(0, "sclk_usbphy1", NULL, CLK_IS_ROOT, 48000000), 302 363 }; 303 364 304 365 /* list of mux clocks supported in all exynos4 soc's */ 305 366 static struct samsung_mux_clock exynos4_mux_clks[] __initdata = { 306 - MUX_FA(mout_apll, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, 367 + MUX_FA(CLK_MOUT_APLL, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, 307 368 CLK_SET_RATE_PARENT, 0, "mout_apll"), 308 - MUX(none, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1), 309 - MUX(none, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1), 310 - MUX(none, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1), 311 - MUX_F(mout_g3d1, "mout_g3d1", sclk_evpll_p, SRC_G3D, 4, 1, 369 + MUX(0, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1), 370 + MUX(0, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1), 371 + MUX(0, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1), 372 + MUX_F(CLK_MOUT_G3D1, "mout_g3d1", sclk_evpll_p, SRC_G3D, 4, 1, 312 373 CLK_SET_RATE_PARENT, 0), 313 - MUX_F(mout_g3d, "mout_g3d", mout_g3d_p, SRC_G3D, 8, 1, 374 + MUX_F(CLK_MOUT_G3D, "mout_g3d", mout_g3d_p, SRC_G3D, 8, 1, 314 375 CLK_SET_RATE_PARENT, 0), 315 - MUX(none, "mout_spdif", mout_spdif_p, SRC_PERIL1, 8, 2), 316 - MUX(none, "mout_onenand1", mout_onenand1_p, SRC_TOP0, 0, 1), 317 - MUX(sclk_epll, "sclk_epll", mout_epll_p, SRC_TOP0, 4, 1), 318 - MUX(none, "mout_onenand", mout_onenand_p, SRC_TOP0, 28, 1), 376 + MUX(0, "mout_spdif", mout_spdif_p, SRC_PERIL1, 8, 2), 377 + MUX(0, "mout_onenand1", mout_onenand1_p, SRC_TOP0, 0, 1), 378 + MUX(CLK_SCLK_EPLL, "sclk_epll", mout_epll_p, SRC_TOP0, 4, 1), 379 + MUX(0, "mout_onenand", mout_onenand_p, SRC_TOP0, 28, 1), 319 380 }; 320 381 321 382 /* list of mux clocks supported in exynos4210 soc */ 322 383 static struct samsung_mux_clock exynos4210_mux_early[] __initdata = { 323 - MUX(none, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP1, 0, 1), 384 + MUX(0, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP1, 0, 1), 324 385 }; 325 386 326 387 static struct samsung_mux_clock exynos4210_mux_clks[] __initdata = { 327 - MUX(none, "mout_aclk200", sclk_ampll_p4210, SRC_TOP0, 12, 1), 328 - MUX(none, "mout_aclk100", sclk_ampll_p4210, SRC_TOP0, 16, 1), 329 - MUX(none, "mout_aclk160", sclk_ampll_p4210, SRC_TOP0, 20, 1), 330 - MUX(none, "mout_aclk133", sclk_ampll_p4210, SRC_TOP0, 24, 1), 331 - MUX(none, "mout_mixer", mout_mixer_p4210, SRC_TV, 4, 1), 332 - MUX(none, "mout_dac", mout_dac_p4210, SRC_TV, 8, 1), 333 - MUX(none, "mout_g2d0", sclk_ampll_p4210, E4210_SRC_IMAGE, 0, 1), 334 - MUX(none, "mout_g2d1", sclk_evpll_p, E4210_SRC_IMAGE, 4, 1), 335 - MUX(none, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1), 336 - MUX(none, "mout_fimd1", group1_p4210, E4210_SRC_LCD1, 0, 4), 337 - MUX(none, "mout_mipi1", group1_p4210, E4210_SRC_LCD1, 12, 4), 338 - MUX(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1), 339 - MUX(mout_core, "mout_core", mout_core_p4210, SRC_CPU, 16, 1), 340 - MUX(sclk_vpll, "sclk_vpll", sclk_vpll_p4210, SRC_TOP0, 8, 1), 341 - MUX(mout_fimc0, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4), 342 - MUX(mout_fimc1, "mout_fimc1", group1_p4210, SRC_CAM, 4, 4), 343 - MUX(mout_fimc2, "mout_fimc2", group1_p4210, SRC_CAM, 8, 4), 344 - MUX(mout_fimc3, "mout_fimc3", group1_p4210, SRC_CAM, 12, 4), 345 - MUX(mout_cam0, "mout_cam0", group1_p4210, SRC_CAM, 16, 4), 346 - MUX(mout_cam1, "mout_cam1", group1_p4210, SRC_CAM, 20, 4), 347 - MUX(mout_csis0, "mout_csis0", group1_p4210, SRC_CAM, 24, 4), 348 - MUX(mout_csis1, "mout_csis1", group1_p4210, SRC_CAM, 28, 4), 349 - MUX(none, "mout_mfc0", sclk_ampll_p4210, SRC_MFC, 0, 1), 350 - MUX_F(mout_g3d0, "mout_g3d0", sclk_ampll_p4210, SRC_G3D, 0, 1, 388 + MUX(0, "mout_aclk200", sclk_ampll_p4210, SRC_TOP0, 12, 1), 389 + MUX(0, "mout_aclk100", sclk_ampll_p4210, SRC_TOP0, 16, 1), 390 + MUX(0, "mout_aclk160", sclk_ampll_p4210, SRC_TOP0, 20, 1), 391 + MUX(0, "mout_aclk133", sclk_ampll_p4210, SRC_TOP0, 24, 1), 392 + MUX(0, "mout_mixer", mout_mixer_p4210, SRC_TV, 4, 1), 393 + MUX(0, "mout_dac", mout_dac_p4210, SRC_TV, 8, 1), 394 + MUX(0, "mout_g2d0", sclk_ampll_p4210, E4210_SRC_IMAGE, 0, 1), 395 + MUX(0, "mout_g2d1", sclk_evpll_p, E4210_SRC_IMAGE, 4, 1), 396 + MUX(0, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1), 397 + MUX(0, "mout_fimd1", group1_p4210, E4210_SRC_LCD1, 0, 4), 398 + MUX(0, "mout_mipi1", group1_p4210, E4210_SRC_LCD1, 12, 4), 399 + MUX(CLK_SCLK_MPLL, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1), 400 + MUX(CLK_MOUT_CORE, "mout_core", mout_core_p4210, SRC_CPU, 16, 1), 401 + MUX(CLK_SCLK_VPLL, "sclk_vpll", sclk_vpll_p4210, SRC_TOP0, 8, 1), 402 + MUX(CLK_MOUT_FIMC0, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4), 403 + MUX(CLK_MOUT_FIMC1, "mout_fimc1", group1_p4210, SRC_CAM, 4, 4), 404 + MUX(CLK_MOUT_FIMC2, "mout_fimc2", group1_p4210, SRC_CAM, 8, 4), 405 + MUX(CLK_MOUT_FIMC3, "mout_fimc3", group1_p4210, SRC_CAM, 12, 4), 406 + MUX(CLK_MOUT_CAM0, "mout_cam0", group1_p4210, SRC_CAM, 16, 4), 407 + MUX(CLK_MOUT_CAM1, "mout_cam1", group1_p4210, SRC_CAM, 20, 4), 408 + MUX(CLK_MOUT_CSIS0, "mout_csis0", group1_p4210, SRC_CAM, 24, 4), 409 + MUX(CLK_MOUT_CSIS1, "mout_csis1", group1_p4210, SRC_CAM, 28, 4), 410 + MUX(0, "mout_mfc0", sclk_ampll_p4210, SRC_MFC, 0, 1), 411 + MUX_F(CLK_MOUT_G3D0, "mout_g3d0", sclk_ampll_p4210, SRC_G3D, 0, 1, 351 412 CLK_SET_RATE_PARENT, 0), 352 - MUX(none, "mout_fimd0", group1_p4210, SRC_LCD0, 0, 4), 353 - MUX(none, "mout_mipi0", group1_p4210, SRC_LCD0, 12, 4), 354 - MUX(none, "mout_audio0", mout_audio0_p4210, SRC_MAUDIO, 0, 4), 355 - MUX(none, "mout_mmc0", group1_p4210, SRC_FSYS, 0, 4), 356 - MUX(none, "mout_mmc1", group1_p4210, SRC_FSYS, 4, 4), 357 - MUX(none, "mout_mmc2", group1_p4210, SRC_FSYS, 8, 4), 358 - MUX(none, "mout_mmc3", group1_p4210, SRC_FSYS, 12, 4), 359 - MUX(none, "mout_mmc4", group1_p4210, SRC_FSYS, 16, 4), 360 - MUX(none, "mout_sata", sclk_ampll_p4210, SRC_FSYS, 24, 1), 361 - MUX(none, "mout_uart0", group1_p4210, SRC_PERIL0, 0, 4), 362 - MUX(none, "mout_uart1", group1_p4210, SRC_PERIL0, 4, 4), 363 - MUX(none, "mout_uart2", group1_p4210, SRC_PERIL0, 8, 4), 364 - MUX(none, "mout_uart3", group1_p4210, SRC_PERIL0, 12, 4), 365 - MUX(none, "mout_uart4", group1_p4210, SRC_PERIL0, 16, 4), 366 - MUX(none, "mout_audio1", mout_audio1_p4210, SRC_PERIL1, 0, 4), 367 - MUX(none, "mout_audio2", mout_audio2_p4210, SRC_PERIL1, 4, 4), 368 - MUX(none, "mout_spi0", group1_p4210, SRC_PERIL1, 16, 4), 369 - MUX(none, "mout_spi1", group1_p4210, SRC_PERIL1, 20, 4), 370 - MUX(none, "mout_spi2", group1_p4210, SRC_PERIL1, 24, 4), 413 + MUX(0, "mout_fimd0", group1_p4210, SRC_LCD0, 0, 4), 414 + MUX(0, "mout_mipi0", group1_p4210, SRC_LCD0, 12, 4), 415 + MUX(0, "mout_audio0", mout_audio0_p4210, SRC_MAUDIO, 0, 4), 416 + MUX(0, "mout_mmc0", group1_p4210, SRC_FSYS, 0, 4), 417 + MUX(0, "mout_mmc1", group1_p4210, SRC_FSYS, 4, 4), 418 + MUX(0, "mout_mmc2", group1_p4210, SRC_FSYS, 8, 4), 419 + MUX(0, "mout_mmc3", group1_p4210, SRC_FSYS, 12, 4), 420 + MUX(0, "mout_mmc4", group1_p4210, SRC_FSYS, 16, 4), 421 + MUX(0, "mout_sata", sclk_ampll_p4210, SRC_FSYS, 24, 1), 422 + MUX(0, "mout_uart0", group1_p4210, SRC_PERIL0, 0, 4), 423 + MUX(0, "mout_uart1", group1_p4210, SRC_PERIL0, 4, 4), 424 + MUX(0, "mout_uart2", group1_p4210, SRC_PERIL0, 8, 4), 425 + MUX(0, "mout_uart3", group1_p4210, SRC_PERIL0, 12, 4), 426 + MUX(0, "mout_uart4", group1_p4210, SRC_PERIL0, 16, 4), 427 + MUX(0, "mout_audio1", mout_audio1_p4210, SRC_PERIL1, 0, 4), 428 + MUX(0, "mout_audio2", mout_audio2_p4210, SRC_PERIL1, 4, 4), 429 + MUX(0, "mout_spi0", group1_p4210, SRC_PERIL1, 16, 4), 430 + MUX(0, "mout_spi1", group1_p4210, SRC_PERIL1, 20, 4), 431 + MUX(0, "mout_spi2", group1_p4210, SRC_PERIL1, 24, 4), 371 432 }; 372 433 373 434 /* list of mux clocks supported in exynos4x12 soc */ 374 435 static struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = { 375 - MUX(mout_mpll_user_c, "mout_mpll_user_c", mout_mpll_user_p4x12, 436 + MUX(CLK_MOUT_MPLL_USER_C, "mout_mpll_user_c", mout_mpll_user_p4x12, 376 437 SRC_CPU, 24, 1), 377 - MUX(none, "mout_aclk266_gps", aclk_p4412, SRC_TOP1, 4, 1), 378 - MUX(none, "mout_aclk400_mcuisp", aclk_p4412, SRC_TOP1, 8, 1), 379 - MUX(mout_mpll_user_t, "mout_mpll_user_t", mout_mpll_user_p4x12, 438 + MUX(0, "mout_aclk266_gps", aclk_p4412, SRC_TOP1, 4, 1), 439 + MUX(0, "mout_aclk400_mcuisp", aclk_p4412, SRC_TOP1, 8, 1), 440 + MUX(CLK_MOUT_MPLL_USER_T, "mout_mpll_user_t", mout_mpll_user_p4x12, 380 441 SRC_TOP1, 12, 1), 381 - MUX(none, "mout_user_aclk266_gps", mout_user_aclk266_gps_p4x12, 442 + MUX(0, "mout_user_aclk266_gps", mout_user_aclk266_gps_p4x12, 382 443 SRC_TOP1, 16, 1), 383 - MUX(aclk200, "aclk200", mout_user_aclk200_p4x12, SRC_TOP1, 20, 1), 384 - MUX(aclk400_mcuisp, "aclk400_mcuisp", mout_user_aclk400_mcuisp_p4x12, 385 - SRC_TOP1, 24, 1), 386 - MUX(none, "mout_aclk200", aclk_p4412, SRC_TOP0, 12, 1), 387 - MUX(none, "mout_aclk100", aclk_p4412, SRC_TOP0, 16, 1), 388 - MUX(none, "mout_aclk160", aclk_p4412, SRC_TOP0, 20, 1), 389 - MUX(none, "mout_aclk133", aclk_p4412, SRC_TOP0, 24, 1), 390 - MUX(none, "mout_mdnie0", group1_p4x12, SRC_LCD0, 4, 4), 391 - MUX(none, "mout_mdnie_pwm0", group1_p4x12, SRC_LCD0, 8, 4), 392 - MUX(none, "mout_sata", sclk_ampll_p4x12, SRC_FSYS, 24, 1), 393 - MUX(none, "mout_jpeg0", sclk_ampll_p4x12, E4X12_SRC_CAM1, 0, 1), 394 - MUX(none, "mout_jpeg1", sclk_evpll_p, E4X12_SRC_CAM1, 4, 1), 395 - MUX(none, "mout_jpeg", mout_jpeg_p, E4X12_SRC_CAM1, 8, 1), 396 - MUX(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_DMC, 12, 1), 397 - MUX(sclk_vpll, "sclk_vpll", mout_vpll_p, SRC_TOP0, 8, 1), 398 - MUX(mout_core, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1), 399 - MUX(mout_fimc0, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4), 400 - MUX(mout_fimc1, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4), 401 - MUX(mout_fimc2, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4), 402 - MUX(mout_fimc3, "mout_fimc3", group1_p4x12, SRC_CAM, 12, 4), 403 - MUX(mout_cam0, "mout_cam0", group1_p4x12, SRC_CAM, 16, 4), 404 - MUX(mout_cam1, "mout_cam1", group1_p4x12, SRC_CAM, 20, 4), 405 - MUX(mout_csis0, "mout_csis0", group1_p4x12, SRC_CAM, 24, 4), 406 - MUX(mout_csis1, "mout_csis1", group1_p4x12, SRC_CAM, 28, 4), 407 - MUX(none, "mout_mfc0", sclk_ampll_p4x12, SRC_MFC, 0, 1), 408 - MUX_F(mout_g3d0, "mout_g3d0", sclk_ampll_p4x12, SRC_G3D, 0, 1, 444 + MUX(CLK_ACLK200, "aclk200", mout_user_aclk200_p4x12, SRC_TOP1, 20, 1), 445 + MUX(CLK_ACLK400_MCUISP, "aclk400_mcuisp", 446 + mout_user_aclk400_mcuisp_p4x12, SRC_TOP1, 24, 1), 447 + MUX(0, "mout_aclk200", aclk_p4412, SRC_TOP0, 12, 1), 448 + MUX(0, "mout_aclk100", aclk_p4412, SRC_TOP0, 16, 1), 449 + MUX(0, "mout_aclk160", aclk_p4412, SRC_TOP0, 20, 1), 450 + MUX(0, "mout_aclk133", aclk_p4412, SRC_TOP0, 24, 1), 451 + MUX(0, "mout_mdnie0", group1_p4x12, SRC_LCD0, 4, 4), 452 + MUX(0, "mout_mdnie_pwm0", group1_p4x12, SRC_LCD0, 8, 4), 453 + MUX(0, "mout_sata", sclk_ampll_p4x12, SRC_FSYS, 24, 1), 454 + MUX(0, "mout_jpeg0", sclk_ampll_p4x12, E4X12_SRC_CAM1, 0, 1), 455 + MUX(0, "mout_jpeg1", sclk_evpll_p, E4X12_SRC_CAM1, 4, 1), 456 + MUX(0, "mout_jpeg", mout_jpeg_p, E4X12_SRC_CAM1, 8, 1), 457 + MUX(CLK_SCLK_MPLL, "sclk_mpll", mout_mpll_p, SRC_DMC, 12, 1), 458 + MUX(CLK_SCLK_VPLL, "sclk_vpll", mout_vpll_p, SRC_TOP0, 8, 1), 459 + MUX(CLK_MOUT_CORE, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1), 460 + MUX(CLK_MOUT_FIMC0, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4), 461 + MUX(CLK_MOUT_FIMC1, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4), 462 + MUX(CLK_MOUT_FIMC2, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4), 463 + MUX(CLK_MOUT_FIMC3, "mout_fimc3", group1_p4x12, SRC_CAM, 12, 4), 464 + MUX(CLK_MOUT_CAM0, "mout_cam0", group1_p4x12, SRC_CAM, 16, 4), 465 + MUX(CLK_MOUT_CAM1, "mout_cam1", group1_p4x12, SRC_CAM, 20, 4), 466 + MUX(CLK_MOUT_CSIS0, "mout_csis0", group1_p4x12, SRC_CAM, 24, 4), 467 + MUX(CLK_MOUT_CSIS1, "mout_csis1", group1_p4x12, SRC_CAM, 28, 4), 468 + MUX(0, "mout_mfc0", sclk_ampll_p4x12, SRC_MFC, 0, 1), 469 + MUX_F(CLK_MOUT_G3D0, "mout_g3d0", sclk_ampll_p4x12, SRC_G3D, 0, 1, 409 470 CLK_SET_RATE_PARENT, 0), 410 - MUX(none, "mout_fimd0", group1_p4x12, SRC_LCD0, 0, 4), 411 - MUX(none, "mout_mipi0", group1_p4x12, SRC_LCD0, 12, 4), 412 - MUX(none, "mout_audio0", mout_audio0_p4x12, SRC_MAUDIO, 0, 4), 413 - MUX(none, "mout_mmc0", group1_p4x12, SRC_FSYS, 0, 4), 414 - MUX(none, "mout_mmc1", group1_p4x12, SRC_FSYS, 4, 4), 415 - MUX(none, "mout_mmc2", group1_p4x12, SRC_FSYS, 8, 4), 416 - MUX(none, "mout_mmc3", group1_p4x12, SRC_FSYS, 12, 4), 417 - MUX(none, "mout_mmc4", group1_p4x12, SRC_FSYS, 16, 4), 418 - MUX(none, "mout_mipihsi", aclk_p4412, SRC_FSYS, 24, 1), 419 - MUX(none, "mout_uart0", group1_p4x12, SRC_PERIL0, 0, 4), 420 - MUX(none, "mout_uart1", group1_p4x12, SRC_PERIL0, 4, 4), 421 - MUX(none, "mout_uart2", group1_p4x12, SRC_PERIL0, 8, 4), 422 - MUX(none, "mout_uart3", group1_p4x12, SRC_PERIL0, 12, 4), 423 - MUX(none, "mout_uart4", group1_p4x12, SRC_PERIL0, 16, 4), 424 - MUX(none, "mout_audio1", mout_audio1_p4x12, SRC_PERIL1, 0, 4), 425 - MUX(none, "mout_audio2", mout_audio2_p4x12, SRC_PERIL1, 4, 4), 426 - MUX(none, "mout_spi0", group1_p4x12, SRC_PERIL1, 16, 4), 427 - MUX(none, "mout_spi1", group1_p4x12, SRC_PERIL1, 20, 4), 428 - MUX(none, "mout_spi2", group1_p4x12, SRC_PERIL1, 24, 4), 429 - MUX(none, "mout_pwm_isp", group1_p4x12, E4X12_SRC_ISP, 0, 4), 430 - MUX(none, "mout_spi0_isp", group1_p4x12, E4X12_SRC_ISP, 4, 4), 431 - MUX(none, "mout_spi1_isp", group1_p4x12, E4X12_SRC_ISP, 8, 4), 432 - MUX(none, "mout_uart_isp", group1_p4x12, E4X12_SRC_ISP, 12, 4), 433 - MUX(none, "mout_g2d0", sclk_ampll_p4210, SRC_DMC, 20, 1), 434 - MUX(none, "mout_g2d1", sclk_evpll_p, SRC_DMC, 24, 1), 435 - MUX(none, "mout_g2d", mout_g2d_p, SRC_DMC, 28, 1), 471 + MUX(0, "mout_fimd0", group1_p4x12, SRC_LCD0, 0, 4), 472 + MUX(0, "mout_mipi0", group1_p4x12, SRC_LCD0, 12, 4), 473 + MUX(0, "mout_audio0", mout_audio0_p4x12, SRC_MAUDIO, 0, 4), 474 + MUX(0, "mout_mmc0", group1_p4x12, SRC_FSYS, 0, 4), 475 + MUX(0, "mout_mmc1", group1_p4x12, SRC_FSYS, 4, 4), 476 + MUX(0, "mout_mmc2", group1_p4x12, SRC_FSYS, 8, 4), 477 + MUX(0, "mout_mmc3", group1_p4x12, SRC_FSYS, 12, 4), 478 + MUX(0, "mout_mmc4", group1_p4x12, SRC_FSYS, 16, 4), 479 + MUX(0, "mout_mipihsi", aclk_p4412, SRC_FSYS, 24, 1), 480 + MUX(0, "mout_uart0", group1_p4x12, SRC_PERIL0, 0, 4), 481 + MUX(0, "mout_uart1", group1_p4x12, SRC_PERIL0, 4, 4), 482 + MUX(0, "mout_uart2", group1_p4x12, SRC_PERIL0, 8, 4), 483 + MUX(0, "mout_uart3", group1_p4x12, SRC_PERIL0, 12, 4), 484 + MUX(0, "mout_uart4", group1_p4x12, SRC_PERIL0, 16, 4), 485 + MUX(0, "mout_audio1", mout_audio1_p4x12, SRC_PERIL1, 0, 4), 486 + MUX(0, "mout_audio2", mout_audio2_p4x12, SRC_PERIL1, 4, 4), 487 + MUX(0, "mout_spi0", group1_p4x12, SRC_PERIL1, 16, 4), 488 + MUX(0, "mout_spi1", group1_p4x12, SRC_PERIL1, 20, 4), 489 + MUX(0, "mout_spi2", group1_p4x12, SRC_PERIL1, 24, 4), 490 + MUX(0, "mout_pwm_isp", group1_p4x12, E4X12_SRC_ISP, 0, 4), 491 + MUX(0, "mout_spi0_isp", group1_p4x12, E4X12_SRC_ISP, 4, 4), 492 + MUX(0, "mout_spi1_isp", group1_p4x12, E4X12_SRC_ISP, 8, 4), 493 + MUX(0, "mout_uart_isp", group1_p4x12, E4X12_SRC_ISP, 12, 4), 494 + MUX(0, "mout_g2d0", sclk_ampll_p4210, SRC_DMC, 20, 1), 495 + MUX(0, "mout_g2d1", sclk_evpll_p, SRC_DMC, 24, 1), 496 + MUX(0, "mout_g2d", mout_g2d_p, SRC_DMC, 28, 1), 436 497 }; 437 498 438 499 /* list of divider clocks supported in all exynos4 soc's */ 439 500 static struct samsung_div_clock exynos4_div_clks[] __initdata = { 440 - DIV(none, "div_core", "mout_core", DIV_CPU0, 0, 3), 441 - DIV(none, "div_core2", "div_core", DIV_CPU0, 28, 3), 442 - DIV(none, "div_fimc0", "mout_fimc0", DIV_CAM, 0, 4), 443 - DIV(none, "div_fimc1", "mout_fimc1", DIV_CAM, 4, 4), 444 - DIV(none, "div_fimc2", "mout_fimc2", DIV_CAM, 8, 4), 445 - DIV(none, "div_fimc3", "mout_fimc3", DIV_CAM, 12, 4), 446 - DIV(none, "div_cam0", "mout_cam0", DIV_CAM, 16, 4), 447 - DIV(none, "div_cam1", "mout_cam1", DIV_CAM, 20, 4), 448 - DIV(none, "div_csis0", "mout_csis0", DIV_CAM, 24, 4), 449 - DIV(none, "div_csis1", "mout_csis1", DIV_CAM, 28, 4), 450 - DIV(sclk_mfc, "sclk_mfc", "mout_mfc", DIV_MFC, 0, 4), 451 - DIV_F(none, "div_g3d", "mout_g3d", DIV_G3D, 0, 4, 501 + DIV(0, "div_core", "mout_core", DIV_CPU0, 0, 3), 502 + DIV(0, "div_core2", "div_core", DIV_CPU0, 28, 3), 503 + DIV(0, "div_fimc0", "mout_fimc0", DIV_CAM, 0, 4), 504 + DIV(0, "div_fimc1", "mout_fimc1", DIV_CAM, 4, 4), 505 + DIV(0, "div_fimc2", "mout_fimc2", DIV_CAM, 8, 4), 506 + DIV(0, "div_fimc3", "mout_fimc3", DIV_CAM, 12, 4), 507 + DIV(0, "div_cam0", "mout_cam0", DIV_CAM, 16, 4), 508 + DIV(0, "div_cam1", "mout_cam1", DIV_CAM, 20, 4), 509 + DIV(0, "div_csis0", "mout_csis0", DIV_CAM, 24, 4), 510 + DIV(0, "div_csis1", "mout_csis1", DIV_CAM, 28, 4), 511 + DIV(CLK_SCLK_MFC, "sclk_mfc", "mout_mfc", DIV_MFC, 0, 4), 512 + DIV_F(0, "div_g3d", "mout_g3d", DIV_G3D, 0, 4, 452 513 CLK_SET_RATE_PARENT, 0), 453 - DIV(none, "div_fimd0", "mout_fimd0", DIV_LCD0, 0, 4), 454 - DIV(none, "div_mipi0", "mout_mipi0", DIV_LCD0, 16, 4), 455 - DIV(none, "div_audio0", "mout_audio0", DIV_MAUDIO, 0, 4), 456 - DIV(sclk_pcm0, "sclk_pcm0", "sclk_audio0", DIV_MAUDIO, 4, 8), 457 - DIV(none, "div_mmc0", "mout_mmc0", DIV_FSYS1, 0, 4), 458 - DIV(none, "div_mmc1", "mout_mmc1", DIV_FSYS1, 16, 4), 459 - DIV(none, "div_mmc2", "mout_mmc2", DIV_FSYS2, 0, 4), 460 - DIV(none, "div_mmc3", "mout_mmc3", DIV_FSYS2, 16, 4), 461 - DIV(sclk_pixel, "sclk_pixel", "sclk_vpll", DIV_TV, 0, 4), 462 - DIV(aclk100, "aclk100", "mout_aclk100", DIV_TOP, 4, 4), 463 - DIV(aclk160, "aclk160", "mout_aclk160", DIV_TOP, 8, 3), 464 - DIV(aclk133, "aclk133", "mout_aclk133", DIV_TOP, 12, 3), 465 - DIV(none, "div_onenand", "mout_onenand1", DIV_TOP, 16, 3), 466 - DIV(sclk_slimbus, "sclk_slimbus", "sclk_epll", DIV_PERIL3, 4, 4), 467 - DIV(sclk_pcm1, "sclk_pcm1", "sclk_audio1", DIV_PERIL4, 4, 8), 468 - DIV(sclk_pcm2, "sclk_pcm2", "sclk_audio2", DIV_PERIL4, 20, 8), 469 - DIV(sclk_i2s1, "sclk_i2s1", "sclk_audio1", DIV_PERIL5, 0, 6), 470 - DIV(sclk_i2s2, "sclk_i2s2", "sclk_audio2", DIV_PERIL5, 8, 6), 471 - DIV(none, "div_mmc4", "mout_mmc4", DIV_FSYS3, 0, 4), 472 - DIV(none, "div_mmc_pre4", "div_mmc4", DIV_FSYS3, 8, 8), 473 - DIV(none, "div_uart0", "mout_uart0", DIV_PERIL0, 0, 4), 474 - DIV(none, "div_uart1", "mout_uart1", DIV_PERIL0, 4, 4), 475 - DIV(none, "div_uart2", "mout_uart2", DIV_PERIL0, 8, 4), 476 - DIV(none, "div_uart3", "mout_uart3", DIV_PERIL0, 12, 4), 477 - DIV(none, "div_uart4", "mout_uart4", DIV_PERIL0, 16, 4), 478 - DIV(none, "div_spi0", "mout_spi0", DIV_PERIL1, 0, 4), 479 - DIV(none, "div_spi_pre0", "div_spi0", DIV_PERIL1, 8, 8), 480 - DIV(none, "div_spi1", "mout_spi1", DIV_PERIL1, 16, 4), 481 - DIV(none, "div_spi_pre1", "div_spi1", DIV_PERIL1, 24, 8), 482 - DIV(none, "div_spi2", "mout_spi2", DIV_PERIL2, 0, 4), 483 - DIV(none, "div_spi_pre2", "div_spi2", DIV_PERIL2, 8, 8), 484 - DIV(none, "div_audio1", "mout_audio1", DIV_PERIL4, 0, 4), 485 - DIV(none, "div_audio2", "mout_audio2", DIV_PERIL4, 16, 4), 486 - DIV(arm_clk, "arm_clk", "div_core2", DIV_CPU0, 28, 3), 487 - DIV(sclk_apll, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3), 488 - DIV_F(none, "div_mipi_pre0", "div_mipi0", DIV_LCD0, 20, 4, 514 + DIV(0, "div_fimd0", "mout_fimd0", DIV_LCD0, 0, 4), 515 + DIV(0, "div_mipi0", "mout_mipi0", DIV_LCD0, 16, 4), 516 + DIV(0, "div_audio0", "mout_audio0", DIV_MAUDIO, 0, 4), 517 + DIV(CLK_SCLK_PCM0, "sclk_pcm0", "sclk_audio0", DIV_MAUDIO, 4, 8), 518 + DIV(0, "div_mmc0", "mout_mmc0", DIV_FSYS1, 0, 4), 519 + DIV(0, "div_mmc1", "mout_mmc1", DIV_FSYS1, 16, 4), 520 + DIV(0, "div_mmc2", "mout_mmc2", DIV_FSYS2, 0, 4), 521 + DIV(0, "div_mmc3", "mout_mmc3", DIV_FSYS2, 16, 4), 522 + DIV(CLK_SCLK_PIXEL, "sclk_pixel", "sclk_vpll", DIV_TV, 0, 4), 523 + DIV(CLK_ACLK100, "aclk100", "mout_aclk100", DIV_TOP, 4, 4), 524 + DIV(CLK_ACLK160, "aclk160", "mout_aclk160", DIV_TOP, 8, 3), 525 + DIV(CLK_ACLK133, "aclk133", "mout_aclk133", DIV_TOP, 12, 3), 526 + DIV(0, "div_onenand", "mout_onenand1", DIV_TOP, 16, 3), 527 + DIV(CLK_SCLK_SLIMBUS, "sclk_slimbus", "sclk_epll", DIV_PERIL3, 4, 4), 528 + DIV(CLK_SCLK_PCM1, "sclk_pcm1", "sclk_audio1", DIV_PERIL4, 4, 8), 529 + DIV(CLK_SCLK_PCM2, "sclk_pcm2", "sclk_audio2", DIV_PERIL4, 20, 8), 530 + DIV(CLK_SCLK_I2S1, "sclk_i2s1", "sclk_audio1", DIV_PERIL5, 0, 6), 531 + DIV(CLK_SCLK_I2S2, "sclk_i2s2", "sclk_audio2", DIV_PERIL5, 8, 6), 532 + DIV(0, "div_mmc4", "mout_mmc4", DIV_FSYS3, 0, 4), 533 + DIV(0, "div_mmc_pre4", "div_mmc4", DIV_FSYS3, 8, 8), 534 + DIV(0, "div_uart0", "mout_uart0", DIV_PERIL0, 0, 4), 535 + DIV(0, "div_uart1", "mout_uart1", DIV_PERIL0, 4, 4), 536 + DIV(0, "div_uart2", "mout_uart2", DIV_PERIL0, 8, 4), 537 + DIV(0, "div_uart3", "mout_uart3", DIV_PERIL0, 12, 4), 538 + DIV(0, "div_uart4", "mout_uart4", DIV_PERIL0, 16, 4), 539 + DIV(0, "div_spi0", "mout_spi0", DIV_PERIL1, 0, 4), 540 + DIV(0, "div_spi_pre0", "div_spi0", DIV_PERIL1, 8, 8), 541 + DIV(0, "div_spi1", "mout_spi1", DIV_PERIL1, 16, 4), 542 + DIV(0, "div_spi_pre1", "div_spi1", DIV_PERIL1, 24, 8), 543 + DIV(0, "div_spi2", "mout_spi2", DIV_PERIL2, 0, 4), 544 + DIV(0, "div_spi_pre2", "div_spi2", DIV_PERIL2, 8, 8), 545 + DIV(0, "div_audio1", "mout_audio1", DIV_PERIL4, 0, 4), 546 + DIV(0, "div_audio2", "mout_audio2", DIV_PERIL4, 16, 4), 547 + DIV(CLK_ARM_CLK, "arm_clk", "div_core2", DIV_CPU0, 28, 3), 548 + DIV(CLK_SCLK_APLL, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3), 549 + DIV_F(0, "div_mipi_pre0", "div_mipi0", DIV_LCD0, 20, 4, 489 550 CLK_SET_RATE_PARENT, 0), 490 - DIV_F(none, "div_mmc_pre0", "div_mmc0", DIV_FSYS1, 8, 8, 551 + DIV_F(0, "div_mmc_pre0", "div_mmc0", DIV_FSYS1, 8, 8, 491 552 CLK_SET_RATE_PARENT, 0), 492 - DIV_F(none, "div_mmc_pre1", "div_mmc1", DIV_FSYS1, 24, 8, 553 + DIV_F(0, "div_mmc_pre1", "div_mmc1", DIV_FSYS1, 24, 8, 493 554 CLK_SET_RATE_PARENT, 0), 494 - DIV_F(none, "div_mmc_pre2", "div_mmc2", DIV_FSYS2, 8, 8, 555 + DIV_F(0, "div_mmc_pre2", "div_mmc2", DIV_FSYS2, 8, 8, 495 556 CLK_SET_RATE_PARENT, 0), 496 - DIV_F(none, "div_mmc_pre3", "div_mmc3", DIV_FSYS2, 24, 8, 557 + DIV_F(0, "div_mmc_pre3", "div_mmc3", DIV_FSYS2, 24, 8, 497 558 CLK_SET_RATE_PARENT, 0), 498 559 }; 499 560 500 561 /* list of divider clocks supported in exynos4210 soc */ 501 562 static struct samsung_div_clock exynos4210_div_clks[] __initdata = { 502 - DIV(aclk200, "aclk200", "mout_aclk200", DIV_TOP, 0, 3), 503 - DIV(sclk_fimg2d, "sclk_fimg2d", "mout_g2d", DIV_IMAGE, 0, 4), 504 - DIV(none, "div_fimd1", "mout_fimd1", E4210_DIV_LCD1, 0, 4), 505 - DIV(none, "div_mipi1", "mout_mipi1", E4210_DIV_LCD1, 16, 4), 506 - DIV(none, "div_sata", "mout_sata", DIV_FSYS0, 20, 4), 507 - DIV_F(none, "div_mipi_pre1", "div_mipi1", E4210_DIV_LCD1, 20, 4, 563 + DIV(CLK_ACLK200, "aclk200", "mout_aclk200", DIV_TOP, 0, 3), 564 + DIV(CLK_SCLK_FIMG2D, "sclk_fimg2d", "mout_g2d", DIV_IMAGE, 0, 4), 565 + DIV(0, "div_fimd1", "mout_fimd1", E4210_DIV_LCD1, 0, 4), 566 + DIV(0, "div_mipi1", "mout_mipi1", E4210_DIV_LCD1, 16, 4), 567 + DIV(0, "div_sata", "mout_sata", DIV_FSYS0, 20, 4), 568 + DIV_F(0, "div_mipi_pre1", "div_mipi1", E4210_DIV_LCD1, 20, 4, 508 569 CLK_SET_RATE_PARENT, 0), 509 570 }; 510 571 511 572 /* list of divider clocks supported in exynos4x12 soc */ 512 573 static struct samsung_div_clock exynos4x12_div_clks[] __initdata = { 513 - DIV(none, "div_mdnie0", "mout_mdnie0", DIV_LCD0, 4, 4), 514 - DIV(none, "div_mdnie_pwm0", "mout_mdnie_pwm0", DIV_LCD0, 8, 4), 515 - DIV(none, "div_mdnie_pwm_pre0", "div_mdnie_pwm0", DIV_LCD0, 12, 4), 516 - DIV(none, "div_mipihsi", "mout_mipihsi", DIV_FSYS0, 20, 4), 517 - DIV(none, "div_jpeg", "mout_jpeg", E4X12_DIV_CAM1, 0, 4), 518 - DIV(div_aclk200, "div_aclk200", "mout_aclk200", DIV_TOP, 0, 3), 519 - DIV(none, "div_aclk266_gps", "mout_aclk266_gps", DIV_TOP, 20, 3), 520 - DIV(div_aclk400_mcuisp, "div_aclk400_mcuisp", "mout_aclk400_mcuisp", 574 + DIV(0, "div_mdnie0", "mout_mdnie0", DIV_LCD0, 4, 4), 575 + DIV(0, "div_mdnie_pwm0", "mout_mdnie_pwm0", DIV_LCD0, 8, 4), 576 + DIV(0, "div_mdnie_pwm_pre0", "div_mdnie_pwm0", DIV_LCD0, 12, 4), 577 + DIV(0, "div_mipihsi", "mout_mipihsi", DIV_FSYS0, 20, 4), 578 + DIV(0, "div_jpeg", "mout_jpeg", E4X12_DIV_CAM1, 0, 4), 579 + DIV(CLK_DIV_ACLK200, "div_aclk200", "mout_aclk200", DIV_TOP, 0, 3), 580 + DIV(0, "div_aclk266_gps", "mout_aclk266_gps", DIV_TOP, 20, 3), 581 + DIV(CLK_DIV_ACLK400_MCUISP, "div_aclk400_mcuisp", "mout_aclk400_mcuisp", 521 582 DIV_TOP, 24, 3), 522 - DIV(none, "div_pwm_isp", "mout_pwm_isp", E4X12_DIV_ISP, 0, 4), 523 - DIV(none, "div_spi0_isp", "mout_spi0_isp", E4X12_DIV_ISP, 4, 4), 524 - DIV(none, "div_spi0_isp_pre", "div_spi0_isp", E4X12_DIV_ISP, 8, 8), 525 - DIV(none, "div_spi1_isp", "mout_spi1_isp", E4X12_DIV_ISP, 16, 4), 526 - DIV(none, "div_spi1_isp_pre", "div_spi1_isp", E4X12_DIV_ISP, 20, 8), 527 - DIV(none, "div_uart_isp", "mout_uart_isp", E4X12_DIV_ISP, 28, 4), 528 - DIV_F(div_isp0, "div_isp0", "aclk200", E4X12_DIV_ISP0, 0, 3, 583 + DIV(0, "div_pwm_isp", "mout_pwm_isp", E4X12_DIV_ISP, 0, 4), 584 + DIV(0, "div_spi0_isp", "mout_spi0_isp", E4X12_DIV_ISP, 4, 4), 585 + DIV(0, "div_spi0_isp_pre", "div_spi0_isp", E4X12_DIV_ISP, 8, 8), 586 + DIV(0, "div_spi1_isp", "mout_spi1_isp", E4X12_DIV_ISP, 16, 4), 587 + DIV(0, "div_spi1_isp_pre", "div_spi1_isp", E4X12_DIV_ISP, 20, 8), 588 + DIV(0, "div_uart_isp", "mout_uart_isp", E4X12_DIV_ISP, 28, 4), 589 + DIV_F(CLK_DIV_ISP0, "div_isp0", "aclk200", E4X12_DIV_ISP0, 0, 3, 529 590 CLK_GET_RATE_NOCACHE, 0), 530 - DIV_F(div_isp1, "div_isp1", "aclk200", E4X12_DIV_ISP0, 4, 3, 591 + DIV_F(CLK_DIV_ISP1, "div_isp1", "aclk200", E4X12_DIV_ISP0, 4, 3, 531 592 CLK_GET_RATE_NOCACHE, 0), 532 - DIV(none, "div_mpwm", "div_isp1", E4X12_DIV_ISP1, 0, 3), 533 - DIV_F(div_mcuisp0, "div_mcuisp0", "aclk400_mcuisp", E4X12_DIV_ISP1, 593 + DIV(0, "div_mpwm", "div_isp1", E4X12_DIV_ISP1, 0, 3), 594 + DIV_F(CLK_DIV_MCUISP0, "div_mcuisp0", "aclk400_mcuisp", E4X12_DIV_ISP1, 534 595 4, 3, CLK_GET_RATE_NOCACHE, 0), 535 - DIV_F(div_mcuisp1, "div_mcuisp1", "div_mcuisp0", E4X12_DIV_ISP1, 596 + DIV_F(CLK_DIV_MCUISP1, "div_mcuisp1", "div_mcuisp0", E4X12_DIV_ISP1, 536 597 8, 3, CLK_GET_RATE_NOCACHE, 0), 537 - DIV(sclk_fimg2d, "sclk_fimg2d", "mout_g2d", DIV_DMC1, 0, 4), 598 + DIV(CLK_SCLK_FIMG2D, "sclk_fimg2d", "mout_g2d", DIV_DMC1, 0, 4), 538 599 }; 539 600 540 601 /* list of gate clocks supported in all exynos4 soc's */ ··· 544 605 * the device name and clock alias names specified below for some 545 606 * of the clocks can be removed. 546 607 */ 547 - GATE(sclk_hdmi, "sclk_hdmi", "mout_hdmi", SRC_MASK_TV, 0, 0, 0), 548 - GATE(sclk_spdif, "sclk_spdif", "mout_spdif", SRC_MASK_PERIL1, 8, 0, 0), 549 - GATE(jpeg, "jpeg", "aclk160", GATE_IP_CAM, 6, 0, 0), 550 - GATE(mie0, "mie0", "aclk160", GATE_IP_LCD0, 1, 0, 0), 551 - GATE(dsim0, "dsim0", "aclk160", GATE_IP_LCD0, 3, 0, 0), 552 - GATE(fimd1, "fimd1", "aclk160", E4210_GATE_IP_LCD1, 0, 0, 0), 553 - GATE(mie1, "mie1", "aclk160", E4210_GATE_IP_LCD1, 1, 0, 0), 554 - GATE(dsim1, "dsim1", "aclk160", E4210_GATE_IP_LCD1, 3, 0, 0), 555 - GATE(smmu_fimd1, "smmu_fimd1", "aclk160", E4210_GATE_IP_LCD1, 4, 0, 0), 556 - GATE(tsi, "tsi", "aclk133", GATE_IP_FSYS, 4, 0, 0), 557 - GATE(sromc, "sromc", "aclk133", GATE_IP_FSYS, 11, 0, 0), 558 - GATE(sclk_g3d, "sclk_g3d", "div_g3d", GATE_IP_G3D, 0, 608 + GATE(CLK_SCLK_HDMI, "sclk_hdmi", "mout_hdmi", SRC_MASK_TV, 0, 0, 0), 609 + GATE(CLK_SCLK_SPDIF, "sclk_spdif", "mout_spdif", SRC_MASK_PERIL1, 8, 0, 610 + 0), 611 + GATE(CLK_JPEG, "jpeg", "aclk160", GATE_IP_CAM, 6, 0, 0), 612 + GATE(CLK_MIE0, "mie0", "aclk160", GATE_IP_LCD0, 1, 0, 0), 613 + GATE(CLK_DSIM0, "dsim0", "aclk160", GATE_IP_LCD0, 3, 0, 0), 614 + GATE(CLK_FIMD1, "fimd1", "aclk160", E4210_GATE_IP_LCD1, 0, 0, 0), 615 + GATE(CLK_MIE1, "mie1", "aclk160", E4210_GATE_IP_LCD1, 1, 0, 0), 616 + GATE(CLK_DSIM1, "dsim1", "aclk160", E4210_GATE_IP_LCD1, 3, 0, 0), 617 + GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk160", E4210_GATE_IP_LCD1, 4, 0, 618 + 0), 619 + GATE(CLK_TSI, "tsi", "aclk133", GATE_IP_FSYS, 4, 0, 0), 620 + GATE(CLK_SROMC, "sromc", "aclk133", GATE_IP_FSYS, 11, 0, 0), 621 + GATE(CLK_SCLK_G3D, "sclk_g3d", "div_g3d", GATE_IP_G3D, 0, 559 622 CLK_SET_RATE_PARENT, 0), 560 - GATE(usb_device, "usb_device", "aclk133", GATE_IP_FSYS, 13, 0, 0), 561 - GATE(onenand, "onenand", "aclk133", GATE_IP_FSYS, 15, 0, 0), 562 - GATE(nfcon, "nfcon", "aclk133", GATE_IP_FSYS, 16, 0, 0), 563 - GATE(gps, "gps", "aclk133", GATE_IP_GPS, 0, 0, 0), 564 - GATE(smmu_gps, "smmu_gps", "aclk133", GATE_IP_GPS, 1, 0, 0), 565 - GATE(slimbus, "slimbus", "aclk100", GATE_IP_PERIL, 25, 0, 0), 566 - GATE(sclk_cam0, "sclk_cam0", "div_cam0", GATE_SCLK_CAM, 4, 623 + GATE(CLK_USB_DEVICE, "usb_device", "aclk133", GATE_IP_FSYS, 13, 0, 0), 624 + GATE(CLK_ONENAND, "onenand", "aclk133", GATE_IP_FSYS, 15, 0, 0), 625 + GATE(CLK_NFCON, "nfcon", "aclk133", GATE_IP_FSYS, 16, 0, 0), 626 + GATE(CLK_GPS, "gps", "aclk133", GATE_IP_GPS, 0, 0, 0), 627 + GATE(CLK_SMMU_GPS, "smmu_gps", "aclk133", GATE_IP_GPS, 1, 0, 0), 628 + GATE(CLK_SLIMBUS, "slimbus", "aclk100", GATE_IP_PERIL, 25, 0, 0), 629 + GATE(CLK_SCLK_CAM0, "sclk_cam0", "div_cam0", GATE_SCLK_CAM, 4, 567 630 CLK_SET_RATE_PARENT, 0), 568 - GATE(sclk_cam1, "sclk_cam1", "div_cam1", GATE_SCLK_CAM, 5, 631 + GATE(CLK_SCLK_CAM1, "sclk_cam1", "div_cam1", GATE_SCLK_CAM, 5, 569 632 CLK_SET_RATE_PARENT, 0), 570 - GATE(sclk_mipi0, "sclk_mipi0", "div_mipi_pre0", 633 + GATE(CLK_SCLK_MIPI0, "sclk_mipi0", "div_mipi_pre0", 571 634 SRC_MASK_LCD0, 12, CLK_SET_RATE_PARENT, 0), 572 - GATE(sclk_audio0, "sclk_audio0", "div_audio0", SRC_MASK_MAUDIO, 0, 635 + GATE(CLK_SCLK_AUDIO0, "sclk_audio0", "div_audio0", SRC_MASK_MAUDIO, 0, 573 636 CLK_SET_RATE_PARENT, 0), 574 - GATE(sclk_audio1, "sclk_audio1", "div_audio1", SRC_MASK_PERIL1, 0, 637 + GATE(CLK_SCLK_AUDIO1, "sclk_audio1", "div_audio1", SRC_MASK_PERIL1, 0, 575 638 CLK_SET_RATE_PARENT, 0), 576 - GATE(vp, "vp", "aclk160", GATE_IP_TV, 0, 0, 0), 577 - GATE(mixer, "mixer", "aclk160", GATE_IP_TV, 1, 0, 0), 578 - GATE(hdmi, "hdmi", "aclk160", GATE_IP_TV, 3, 0, 0), 579 - GATE(pwm, "pwm", "aclk100", GATE_IP_PERIL, 24, 0, 0), 580 - GATE(sdmmc4, "sdmmc4", "aclk133", GATE_IP_FSYS, 9, 0, 0), 581 - GATE(usb_host, "usb_host", "aclk133", GATE_IP_FSYS, 12, 0, 0), 582 - GATE(sclk_fimc0, "sclk_fimc0", "div_fimc0", SRC_MASK_CAM, 0, 639 + GATE(CLK_VP, "vp", "aclk160", GATE_IP_TV, 0, 0, 0), 640 + GATE(CLK_MIXER, "mixer", "aclk160", GATE_IP_TV, 1, 0, 0), 641 + GATE(CLK_HDMI, "hdmi", "aclk160", GATE_IP_TV, 3, 0, 0), 642 + GATE(CLK_PWM, "pwm", "aclk100", GATE_IP_PERIL, 24, 0, 0), 643 + GATE(CLK_SDMMC4, "sdmmc4", "aclk133", GATE_IP_FSYS, 9, 0, 0), 644 + GATE(CLK_USB_HOST, "usb_host", "aclk133", GATE_IP_FSYS, 12, 0, 0), 645 + GATE(CLK_SCLK_FIMC0, "sclk_fimc0", "div_fimc0", SRC_MASK_CAM, 0, 583 646 CLK_SET_RATE_PARENT, 0), 584 - GATE(sclk_fimc1, "sclk_fimc1", "div_fimc1", SRC_MASK_CAM, 4, 647 + GATE(CLK_SCLK_FIMC1, "sclk_fimc1", "div_fimc1", SRC_MASK_CAM, 4, 585 648 CLK_SET_RATE_PARENT, 0), 586 - GATE(sclk_fimc2, "sclk_fimc2", "div_fimc2", SRC_MASK_CAM, 8, 649 + GATE(CLK_SCLK_FIMC2, "sclk_fimc2", "div_fimc2", SRC_MASK_CAM, 8, 587 650 CLK_SET_RATE_PARENT, 0), 588 - GATE(sclk_fimc3, "sclk_fimc3", "div_fimc3", SRC_MASK_CAM, 12, 651 + GATE(CLK_SCLK_FIMC3, "sclk_fimc3", "div_fimc3", SRC_MASK_CAM, 12, 589 652 CLK_SET_RATE_PARENT, 0), 590 - GATE(sclk_csis0, "sclk_csis0", "div_csis0", SRC_MASK_CAM, 24, 653 + GATE(CLK_SCLK_CSIS0, "sclk_csis0", "div_csis0", SRC_MASK_CAM, 24, 591 654 CLK_SET_RATE_PARENT, 0), 592 - GATE(sclk_csis1, "sclk_csis1", "div_csis1", SRC_MASK_CAM, 28, 655 + GATE(CLK_SCLK_CSIS1, "sclk_csis1", "div_csis1", SRC_MASK_CAM, 28, 593 656 CLK_SET_RATE_PARENT, 0), 594 - GATE(sclk_fimd0, "sclk_fimd0", "div_fimd0", SRC_MASK_LCD0, 0, 657 + GATE(CLK_SCLK_FIMD0, "sclk_fimd0", "div_fimd0", SRC_MASK_LCD0, 0, 595 658 CLK_SET_RATE_PARENT, 0), 596 - GATE(sclk_mmc0, "sclk_mmc0", "div_mmc_pre0", SRC_MASK_FSYS, 0, 659 + GATE(CLK_SCLK_MMC0, "sclk_mmc0", "div_mmc_pre0", SRC_MASK_FSYS, 0, 597 660 CLK_SET_RATE_PARENT, 0), 598 - GATE(sclk_mmc1, "sclk_mmc1", "div_mmc_pre1", SRC_MASK_FSYS, 4, 661 + GATE(CLK_SCLK_MMC1, "sclk_mmc1", "div_mmc_pre1", SRC_MASK_FSYS, 4, 599 662 CLK_SET_RATE_PARENT, 0), 600 - GATE(sclk_mmc2, "sclk_mmc2", "div_mmc_pre2", SRC_MASK_FSYS, 8, 663 + GATE(CLK_SCLK_MMC2, "sclk_mmc2", "div_mmc_pre2", SRC_MASK_FSYS, 8, 601 664 CLK_SET_RATE_PARENT, 0), 602 - GATE(sclk_mmc3, "sclk_mmc3", "div_mmc_pre3", SRC_MASK_FSYS, 12, 665 + GATE(CLK_SCLK_MMC3, "sclk_mmc3", "div_mmc_pre3", SRC_MASK_FSYS, 12, 603 666 CLK_SET_RATE_PARENT, 0), 604 - GATE(sclk_mmc4, "sclk_mmc4", "div_mmc_pre4", SRC_MASK_FSYS, 16, 667 + GATE(CLK_SCLK_MMC4, "sclk_mmc4", "div_mmc_pre4", SRC_MASK_FSYS, 16, 605 668 CLK_SET_RATE_PARENT, 0), 606 - GATE(sclk_uart0, "uclk0", "div_uart0", SRC_MASK_PERIL0, 0, 669 + GATE(CLK_SCLK_UART0, "uclk0", "div_uart0", SRC_MASK_PERIL0, 0, 607 670 CLK_SET_RATE_PARENT, 0), 608 - GATE(sclk_uart1, "uclk1", "div_uart1", SRC_MASK_PERIL0, 4, 671 + GATE(CLK_SCLK_UART1, "uclk1", "div_uart1", SRC_MASK_PERIL0, 4, 609 672 CLK_SET_RATE_PARENT, 0), 610 - GATE(sclk_uart2, "uclk2", "div_uart2", SRC_MASK_PERIL0, 8, 673 + GATE(CLK_SCLK_UART2, "uclk2", "div_uart2", SRC_MASK_PERIL0, 8, 611 674 CLK_SET_RATE_PARENT, 0), 612 - GATE(sclk_uart3, "uclk3", "div_uart3", SRC_MASK_PERIL0, 12, 675 + GATE(CLK_SCLK_UART3, "uclk3", "div_uart3", SRC_MASK_PERIL0, 12, 613 676 CLK_SET_RATE_PARENT, 0), 614 - GATE(sclk_uart4, "uclk4", "div_uart4", SRC_MASK_PERIL0, 16, 677 + GATE(CLK_SCLK_UART4, "uclk4", "div_uart4", SRC_MASK_PERIL0, 16, 615 678 CLK_SET_RATE_PARENT, 0), 616 - GATE(sclk_audio2, "sclk_audio2", "div_audio2", SRC_MASK_PERIL1, 4, 679 + GATE(CLK_SCLK_AUDIO2, "sclk_audio2", "div_audio2", SRC_MASK_PERIL1, 4, 617 680 CLK_SET_RATE_PARENT, 0), 618 - GATE(sclk_spi0, "sclk_spi0", "div_spi_pre0", SRC_MASK_PERIL1, 16, 681 + GATE(CLK_SCLK_SPI0, "sclk_spi0", "div_spi_pre0", SRC_MASK_PERIL1, 16, 619 682 CLK_SET_RATE_PARENT, 0), 620 - GATE(sclk_spi1, "sclk_spi1", "div_spi_pre1", SRC_MASK_PERIL1, 20, 683 + GATE(CLK_SCLK_SPI1, "sclk_spi1", "div_spi_pre1", SRC_MASK_PERIL1, 20, 621 684 CLK_SET_RATE_PARENT, 0), 622 - GATE(sclk_spi2, "sclk_spi2", "div_spi_pre2", SRC_MASK_PERIL1, 24, 685 + GATE(CLK_SCLK_SPI2, "sclk_spi2", "div_spi_pre2", SRC_MASK_PERIL1, 24, 623 686 CLK_SET_RATE_PARENT, 0), 624 - GATE(fimc0, "fimc0", "aclk160", GATE_IP_CAM, 0, 687 + GATE(CLK_FIMC0, "fimc0", "aclk160", GATE_IP_CAM, 0, 625 688 0, 0), 626 - GATE(fimc1, "fimc1", "aclk160", GATE_IP_CAM, 1, 689 + GATE(CLK_FIMC1, "fimc1", "aclk160", GATE_IP_CAM, 1, 627 690 0, 0), 628 - GATE(fimc2, "fimc2", "aclk160", GATE_IP_CAM, 2, 691 + GATE(CLK_FIMC2, "fimc2", "aclk160", GATE_IP_CAM, 2, 629 692 0, 0), 630 - GATE(fimc3, "fimc3", "aclk160", GATE_IP_CAM, 3, 693 + GATE(CLK_FIMC3, "fimc3", "aclk160", GATE_IP_CAM, 3, 631 694 0, 0), 632 - GATE(csis0, "csis0", "aclk160", GATE_IP_CAM, 4, 695 + GATE(CLK_CSIS0, "csis0", "aclk160", GATE_IP_CAM, 4, 633 696 0, 0), 634 - GATE(csis1, "csis1", "aclk160", GATE_IP_CAM, 5, 697 + GATE(CLK_CSIS1, "csis1", "aclk160", GATE_IP_CAM, 5, 635 698 0, 0), 636 - GATE(smmu_fimc0, "smmu_fimc0", "aclk160", GATE_IP_CAM, 7, 699 + GATE(CLK_SMMU_FIMC0, "smmu_fimc0", "aclk160", GATE_IP_CAM, 7, 637 700 0, 0), 638 - GATE(smmu_fimc1, "smmu_fimc1", "aclk160", GATE_IP_CAM, 8, 701 + GATE(CLK_SMMU_FIMC1, "smmu_fimc1", "aclk160", GATE_IP_CAM, 8, 639 702 0, 0), 640 - GATE(smmu_fimc2, "smmu_fimc2", "aclk160", GATE_IP_CAM, 9, 703 + GATE(CLK_SMMU_FIMC2, "smmu_fimc2", "aclk160", GATE_IP_CAM, 9, 641 704 0, 0), 642 - GATE(smmu_fimc3, "smmu_fimc3", "aclk160", GATE_IP_CAM, 10, 705 + GATE(CLK_SMMU_FIMC3, "smmu_fimc3", "aclk160", GATE_IP_CAM, 10, 643 706 0, 0), 644 - GATE(smmu_jpeg, "smmu_jpeg", "aclk160", GATE_IP_CAM, 11, 707 + GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk160", GATE_IP_CAM, 11, 645 708 0, 0), 646 - GATE(pixelasyncm0, "pxl_async0", "aclk160", GATE_IP_CAM, 17, 0, 0), 647 - GATE(pixelasyncm1, "pxl_async1", "aclk160", GATE_IP_CAM, 18, 0, 0), 648 - GATE(smmu_tv, "smmu_tv", "aclk160", GATE_IP_TV, 4, 709 + GATE(CLK_PIXELASYNCM0, "pxl_async0", "aclk160", GATE_IP_CAM, 17, 0, 0), 710 + GATE(CLK_PIXELASYNCM1, "pxl_async1", "aclk160", GATE_IP_CAM, 18, 0, 0), 711 + GATE(CLK_SMMU_TV, "smmu_tv", "aclk160", GATE_IP_TV, 4, 649 712 0, 0), 650 - GATE(mfc, "mfc", "aclk100", GATE_IP_MFC, 0, 0, 0), 651 - GATE(smmu_mfcl, "smmu_mfcl", "aclk100", GATE_IP_MFC, 1, 713 + GATE(CLK_MFC, "mfc", "aclk100", GATE_IP_MFC, 0, 0, 0), 714 + GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk100", GATE_IP_MFC, 1, 652 715 0, 0), 653 - GATE(smmu_mfcr, "smmu_mfcr", "aclk100", GATE_IP_MFC, 2, 716 + GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk100", GATE_IP_MFC, 2, 654 717 0, 0), 655 - GATE(fimd0, "fimd0", "aclk160", GATE_IP_LCD0, 0, 718 + GATE(CLK_FIMD0, "fimd0", "aclk160", GATE_IP_LCD0, 0, 656 719 0, 0), 657 - GATE(smmu_fimd0, "smmu_fimd0", "aclk160", GATE_IP_LCD0, 4, 720 + GATE(CLK_SMMU_FIMD0, "smmu_fimd0", "aclk160", GATE_IP_LCD0, 4, 658 721 0, 0), 659 - GATE(pdma0, "pdma0", "aclk133", GATE_IP_FSYS, 0, 722 + GATE(CLK_PDMA0, "pdma0", "aclk133", GATE_IP_FSYS, 0, 660 723 0, 0), 661 - GATE(pdma1, "pdma1", "aclk133", GATE_IP_FSYS, 1, 724 + GATE(CLK_PDMA1, "pdma1", "aclk133", GATE_IP_FSYS, 1, 662 725 0, 0), 663 - GATE(sdmmc0, "sdmmc0", "aclk133", GATE_IP_FSYS, 5, 726 + GATE(CLK_SDMMC0, "sdmmc0", "aclk133", GATE_IP_FSYS, 5, 664 727 0, 0), 665 - GATE(sdmmc1, "sdmmc1", "aclk133", GATE_IP_FSYS, 6, 728 + GATE(CLK_SDMMC1, "sdmmc1", "aclk133", GATE_IP_FSYS, 6, 666 729 0, 0), 667 - GATE(sdmmc2, "sdmmc2", "aclk133", GATE_IP_FSYS, 7, 730 + GATE(CLK_SDMMC2, "sdmmc2", "aclk133", GATE_IP_FSYS, 7, 668 731 0, 0), 669 - GATE(sdmmc3, "sdmmc3", "aclk133", GATE_IP_FSYS, 8, 732 + GATE(CLK_SDMMC3, "sdmmc3", "aclk133", GATE_IP_FSYS, 8, 670 733 0, 0), 671 - GATE(uart0, "uart0", "aclk100", GATE_IP_PERIL, 0, 734 + GATE(CLK_UART0, "uart0", "aclk100", GATE_IP_PERIL, 0, 672 735 0, 0), 673 - GATE(uart1, "uart1", "aclk100", GATE_IP_PERIL, 1, 736 + GATE(CLK_UART1, "uart1", "aclk100", GATE_IP_PERIL, 1, 674 737 0, 0), 675 - GATE(uart2, "uart2", "aclk100", GATE_IP_PERIL, 2, 738 + GATE(CLK_UART2, "uart2", "aclk100", GATE_IP_PERIL, 2, 676 739 0, 0), 677 - GATE(uart3, "uart3", "aclk100", GATE_IP_PERIL, 3, 740 + GATE(CLK_UART3, "uart3", "aclk100", GATE_IP_PERIL, 3, 678 741 0, 0), 679 - GATE(uart4, "uart4", "aclk100", GATE_IP_PERIL, 4, 742 + GATE(CLK_UART4, "uart4", "aclk100", GATE_IP_PERIL, 4, 680 743 0, 0), 681 - GATE(i2c0, "i2c0", "aclk100", GATE_IP_PERIL, 6, 744 + GATE(CLK_I2C0, "i2c0", "aclk100", GATE_IP_PERIL, 6, 682 745 0, 0), 683 - GATE(i2c1, "i2c1", "aclk100", GATE_IP_PERIL, 7, 746 + GATE(CLK_I2C1, "i2c1", "aclk100", GATE_IP_PERIL, 7, 684 747 0, 0), 685 - GATE(i2c2, "i2c2", "aclk100", GATE_IP_PERIL, 8, 748 + GATE(CLK_I2C2, "i2c2", "aclk100", GATE_IP_PERIL, 8, 686 749 0, 0), 687 - GATE(i2c3, "i2c3", "aclk100", GATE_IP_PERIL, 9, 750 + GATE(CLK_I2C3, "i2c3", "aclk100", GATE_IP_PERIL, 9, 688 751 0, 0), 689 - GATE(i2c4, "i2c4", "aclk100", GATE_IP_PERIL, 10, 752 + GATE(CLK_I2C4, "i2c4", "aclk100", GATE_IP_PERIL, 10, 690 753 0, 0), 691 - GATE(i2c5, "i2c5", "aclk100", GATE_IP_PERIL, 11, 754 + GATE(CLK_I2C5, "i2c5", "aclk100", GATE_IP_PERIL, 11, 692 755 0, 0), 693 - GATE(i2c6, "i2c6", "aclk100", GATE_IP_PERIL, 12, 756 + GATE(CLK_I2C6, "i2c6", "aclk100", GATE_IP_PERIL, 12, 694 757 0, 0), 695 - GATE(i2c7, "i2c7", "aclk100", GATE_IP_PERIL, 13, 758 + GATE(CLK_I2C7, "i2c7", "aclk100", GATE_IP_PERIL, 13, 696 759 0, 0), 697 - GATE(i2c_hdmi, "i2c-hdmi", "aclk100", GATE_IP_PERIL, 14, 760 + GATE(CLK_I2C_HDMI, "i2c-hdmi", "aclk100", GATE_IP_PERIL, 14, 698 761 0, 0), 699 - GATE(spi0, "spi0", "aclk100", GATE_IP_PERIL, 16, 762 + GATE(CLK_SPI0, "spi0", "aclk100", GATE_IP_PERIL, 16, 700 763 0, 0), 701 - GATE(spi1, "spi1", "aclk100", GATE_IP_PERIL, 17, 764 + GATE(CLK_SPI1, "spi1", "aclk100", GATE_IP_PERIL, 17, 702 765 0, 0), 703 - GATE(spi2, "spi2", "aclk100", GATE_IP_PERIL, 18, 766 + GATE(CLK_SPI2, "spi2", "aclk100", GATE_IP_PERIL, 18, 704 767 0, 0), 705 - GATE(i2s1, "i2s1", "aclk100", GATE_IP_PERIL, 20, 768 + GATE(CLK_I2S1, "i2s1", "aclk100", GATE_IP_PERIL, 20, 706 769 0, 0), 707 - GATE(i2s2, "i2s2", "aclk100", GATE_IP_PERIL, 21, 770 + GATE(CLK_I2S2, "i2s2", "aclk100", GATE_IP_PERIL, 21, 708 771 0, 0), 709 - GATE(pcm1, "pcm1", "aclk100", GATE_IP_PERIL, 22, 772 + GATE(CLK_PCM1, "pcm1", "aclk100", GATE_IP_PERIL, 22, 710 773 0, 0), 711 - GATE(pcm2, "pcm2", "aclk100", GATE_IP_PERIL, 23, 774 + GATE(CLK_PCM2, "pcm2", "aclk100", GATE_IP_PERIL, 23, 712 775 0, 0), 713 - GATE(spdif, "spdif", "aclk100", GATE_IP_PERIL, 26, 776 + GATE(CLK_SPDIF, "spdif", "aclk100", GATE_IP_PERIL, 26, 714 777 0, 0), 715 - GATE(ac97, "ac97", "aclk100", GATE_IP_PERIL, 27, 778 + GATE(CLK_AC97, "ac97", "aclk100", GATE_IP_PERIL, 27, 716 779 0, 0), 717 780 }; 718 781 719 782 /* list of gate clocks supported in exynos4210 soc */ 720 783 static struct samsung_gate_clock exynos4210_gate_clks[] __initdata = { 721 - GATE(tvenc, "tvenc", "aclk160", GATE_IP_TV, 2, 0, 0), 722 - GATE(g2d, "g2d", "aclk200", E4210_GATE_IP_IMAGE, 0, 0, 0), 723 - GATE(rotator, "rotator", "aclk200", E4210_GATE_IP_IMAGE, 1, 0, 0), 724 - GATE(mdma, "mdma", "aclk200", E4210_GATE_IP_IMAGE, 2, 0, 0), 725 - GATE(smmu_g2d, "smmu_g2d", "aclk200", E4210_GATE_IP_IMAGE, 3, 0, 0), 726 - GATE(smmu_mdma, "smmu_mdma", "aclk200", E4210_GATE_IP_IMAGE, 5, 0, 0), 727 - GATE(pcie_phy, "pcie_phy", "aclk133", GATE_IP_FSYS, 2, 0, 0), 728 - GATE(sata_phy, "sata_phy", "aclk133", GATE_IP_FSYS, 3, 0, 0), 729 - GATE(sata, "sata", "aclk133", GATE_IP_FSYS, 10, 0, 0), 730 - GATE(pcie, "pcie", "aclk133", GATE_IP_FSYS, 14, 0, 0), 731 - GATE(smmu_pcie, "smmu_pcie", "aclk133", GATE_IP_FSYS, 18, 0, 0), 732 - GATE(modemif, "modemif", "aclk100", GATE_IP_PERIL, 28, 0, 0), 733 - GATE(chipid, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, 0, 0), 734 - GATE(sysreg, "sysreg", "aclk100", E4210_GATE_IP_PERIR, 0, 784 + GATE(CLK_TVENC, "tvenc", "aclk160", GATE_IP_TV, 2, 0, 0), 785 + GATE(CLK_G2D, "g2d", "aclk200", E4210_GATE_IP_IMAGE, 0, 0, 0), 786 + GATE(CLK_ROTATOR, "rotator", "aclk200", E4210_GATE_IP_IMAGE, 1, 0, 0), 787 + GATE(CLK_MDMA, "mdma", "aclk200", E4210_GATE_IP_IMAGE, 2, 0, 0), 788 + GATE(CLK_SMMU_G2D, "smmu_g2d", "aclk200", E4210_GATE_IP_IMAGE, 3, 0, 0), 789 + GATE(CLK_SMMU_MDMA, "smmu_mdma", "aclk200", E4210_GATE_IP_IMAGE, 5, 0, 790 + 0), 791 + GATE(CLK_PCIE_PHY, "pcie_phy", "aclk133", GATE_IP_FSYS, 2, 0, 0), 792 + GATE(CLK_SATA_PHY, "sata_phy", "aclk133", GATE_IP_FSYS, 3, 0, 0), 793 + GATE(CLK_SATA, "sata", "aclk133", GATE_IP_FSYS, 10, 0, 0), 794 + GATE(CLK_PCIE, "pcie", "aclk133", GATE_IP_FSYS, 14, 0, 0), 795 + GATE(CLK_SMMU_PCIE, "smmu_pcie", "aclk133", GATE_IP_FSYS, 18, 0, 0), 796 + GATE(CLK_MODEMIF, "modemif", "aclk100", GATE_IP_PERIL, 28, 0, 0), 797 + GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, 0, 0), 798 + GATE(CLK_SYSREG, "sysreg", "aclk100", E4210_GATE_IP_PERIR, 0, 735 799 CLK_IGNORE_UNUSED, 0), 736 - GATE(hdmi_cec, "hdmi_cec", "aclk100", E4210_GATE_IP_PERIR, 11, 0, 0), 737 - GATE(smmu_rotator, "smmu_rotator", "aclk200", 800 + GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4210_GATE_IP_PERIR, 11, 0, 801 + 0), 802 + GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk200", 738 803 E4210_GATE_IP_IMAGE, 4, 0, 0), 739 - GATE(sclk_mipi1, "sclk_mipi1", "div_mipi_pre1", 804 + GATE(CLK_SCLK_MIPI1, "sclk_mipi1", "div_mipi_pre1", 740 805 E4210_SRC_MASK_LCD1, 12, CLK_SET_RATE_PARENT, 0), 741 - GATE(sclk_sata, "sclk_sata", "div_sata", 806 + GATE(CLK_SCLK_SATA, "sclk_sata", "div_sata", 742 807 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), 743 - GATE(sclk_mixer, "sclk_mixer", "mout_mixer", SRC_MASK_TV, 4, 0, 0), 744 - GATE(sclk_dac, "sclk_dac", "mout_dac", SRC_MASK_TV, 8, 0, 0), 745 - GATE(tsadc, "tsadc", "aclk100", GATE_IP_PERIL, 15, 808 + GATE(CLK_SCLK_MIXER, "sclk_mixer", "mout_mixer", SRC_MASK_TV, 4, 0, 0), 809 + GATE(CLK_SCLK_DAC, "sclk_dac", "mout_dac", SRC_MASK_TV, 8, 0, 0), 810 + GATE(CLK_TSADC, "tsadc", "aclk100", GATE_IP_PERIL, 15, 746 811 0, 0), 747 - GATE(mct, "mct", "aclk100", E4210_GATE_IP_PERIR, 13, 812 + GATE(CLK_MCT, "mct", "aclk100", E4210_GATE_IP_PERIR, 13, 748 813 0, 0), 749 - GATE(wdt, "watchdog", "aclk100", E4210_GATE_IP_PERIR, 14, 814 + GATE(CLK_WDT, "watchdog", "aclk100", E4210_GATE_IP_PERIR, 14, 750 815 0, 0), 751 - GATE(rtc, "rtc", "aclk100", E4210_GATE_IP_PERIR, 15, 816 + GATE(CLK_RTC, "rtc", "aclk100", E4210_GATE_IP_PERIR, 15, 752 817 0, 0), 753 - GATE(keyif, "keyif", "aclk100", E4210_GATE_IP_PERIR, 16, 818 + GATE(CLK_KEYIF, "keyif", "aclk100", E4210_GATE_IP_PERIR, 16, 754 819 0, 0), 755 - GATE(sclk_fimd1, "sclk_fimd1", "div_fimd1", E4210_SRC_MASK_LCD1, 0, 820 + GATE(CLK_SCLK_FIMD1, "sclk_fimd1", "div_fimd1", E4210_SRC_MASK_LCD1, 0, 756 821 CLK_SET_RATE_PARENT, 0), 757 - GATE(tmu_apbif, "tmu_apbif", "aclk100", E4210_GATE_IP_PERIR, 17, 0, 0), 822 + GATE(CLK_TMU_APBIF, "tmu_apbif", "aclk100", E4210_GATE_IP_PERIR, 17, 0, 823 + 0), 758 824 }; 759 825 760 826 /* list of gate clocks supported in exynos4x12 soc */ 761 827 static struct samsung_gate_clock exynos4x12_gate_clks[] __initdata = { 762 - GATE(audss, "audss", "sclk_epll", E4X12_GATE_IP_MAUDIO, 0, 0, 0), 763 - GATE(mdnie0, "mdnie0", "aclk160", GATE_IP_LCD0, 2, 0, 0), 764 - GATE(rotator, "rotator", "aclk200", E4X12_GATE_IP_IMAGE, 1, 0, 0), 765 - GATE(mdma2, "mdma2", "aclk200", E4X12_GATE_IP_IMAGE, 2, 0, 0), 766 - GATE(smmu_mdma, "smmu_mdma", "aclk200", E4X12_GATE_IP_IMAGE, 5, 0, 0), 767 - GATE(mipi_hsi, "mipi_hsi", "aclk133", GATE_IP_FSYS, 10, 0, 0), 768 - GATE(chipid, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, 0, 0), 769 - GATE(sysreg, "sysreg", "aclk100", E4X12_GATE_IP_PERIR, 1, 828 + GATE(CLK_AUDSS, "audss", "sclk_epll", E4X12_GATE_IP_MAUDIO, 0, 0, 0), 829 + GATE(CLK_MDNIE0, "mdnie0", "aclk160", GATE_IP_LCD0, 2, 0, 0), 830 + GATE(CLK_ROTATOR, "rotator", "aclk200", E4X12_GATE_IP_IMAGE, 1, 0, 0), 831 + GATE(CLK_MDMA2, "mdma2", "aclk200", E4X12_GATE_IP_IMAGE, 2, 0, 0), 832 + GATE(CLK_SMMU_MDMA, "smmu_mdma", "aclk200", E4X12_GATE_IP_IMAGE, 5, 0, 833 + 0), 834 + GATE(CLK_MIPI_HSI, "mipi_hsi", "aclk133", GATE_IP_FSYS, 10, 0, 0), 835 + GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, 0, 0), 836 + GATE(CLK_SYSREG, "sysreg", "aclk100", E4X12_GATE_IP_PERIR, 1, 770 837 CLK_IGNORE_UNUSED, 0), 771 - GATE(hdmi_cec, "hdmi_cec", "aclk100", E4X12_GATE_IP_PERIR, 11, 0, 0), 772 - GATE(sclk_mdnie0, "sclk_mdnie0", "div_mdnie0", 838 + GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4X12_GATE_IP_PERIR, 11, 0, 839 + 0), 840 + GATE(CLK_SCLK_MDNIE0, "sclk_mdnie0", "div_mdnie0", 773 841 SRC_MASK_LCD0, 4, CLK_SET_RATE_PARENT, 0), 774 - GATE(sclk_mdnie_pwm0, "sclk_mdnie_pwm0", "div_mdnie_pwm_pre0", 842 + GATE(CLK_SCLK_MDNIE_PWM0, "sclk_mdnie_pwm0", "div_mdnie_pwm_pre0", 775 843 SRC_MASK_LCD0, 8, CLK_SET_RATE_PARENT, 0), 776 - GATE(sclk_mipihsi, "sclk_mipihsi", "div_mipihsi", 844 + GATE(CLK_SCLK_MIPIHSI, "sclk_mipihsi", "div_mipihsi", 777 845 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), 778 - GATE(smmu_rotator, "smmu_rotator", "aclk200", 846 + GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk200", 779 847 E4X12_GATE_IP_IMAGE, 4, 0, 0), 780 - GATE(mct, "mct", "aclk100", E4X12_GATE_IP_PERIR, 13, 848 + GATE(CLK_MCT, "mct", "aclk100", E4X12_GATE_IP_PERIR, 13, 781 849 0, 0), 782 - GATE(rtc, "rtc", "aclk100", E4X12_GATE_IP_PERIR, 15, 850 + GATE(CLK_RTC, "rtc", "aclk100", E4X12_GATE_IP_PERIR, 15, 783 851 0, 0), 784 - GATE(keyif, "keyif", "aclk100", E4X12_GATE_IP_PERIR, 16, 0, 0), 785 - GATE(sclk_pwm_isp, "sclk_pwm_isp", "div_pwm_isp", 852 + GATE(CLK_KEYIF, "keyif", "aclk100", E4X12_GATE_IP_PERIR, 16, 0, 0), 853 + GATE(CLK_SCLK_PWM_ISP, "sclk_pwm_isp", "div_pwm_isp", 786 854 E4X12_SRC_MASK_ISP, 0, CLK_SET_RATE_PARENT, 0), 787 - GATE(sclk_spi0_isp, "sclk_spi0_isp", "div_spi0_isp_pre", 855 + GATE(CLK_SCLK_SPI0_ISP, "sclk_spi0_isp", "div_spi0_isp_pre", 788 856 E4X12_SRC_MASK_ISP, 4, CLK_SET_RATE_PARENT, 0), 789 - GATE(sclk_spi1_isp, "sclk_spi1_isp", "div_spi1_isp_pre", 857 + GATE(CLK_SCLK_SPI1_ISP, "sclk_spi1_isp", "div_spi1_isp_pre", 790 858 E4X12_SRC_MASK_ISP, 8, CLK_SET_RATE_PARENT, 0), 791 - GATE(sclk_uart_isp, "sclk_uart_isp", "div_uart_isp", 859 + GATE(CLK_SCLK_UART_ISP, "sclk_uart_isp", "div_uart_isp", 792 860 E4X12_SRC_MASK_ISP, 12, CLK_SET_RATE_PARENT, 0), 793 - GATE(pwm_isp_sclk, "pwm_isp_sclk", "sclk_pwm_isp", 861 + GATE(CLK_PWM_ISP_SCLK, "pwm_isp_sclk", "sclk_pwm_isp", 794 862 E4X12_GATE_IP_ISP, 0, 0, 0), 795 - GATE(spi0_isp_sclk, "spi0_isp_sclk", "sclk_spi0_isp", 863 + GATE(CLK_SPI0_ISP_SCLK, "spi0_isp_sclk", "sclk_spi0_isp", 796 864 E4X12_GATE_IP_ISP, 1, 0, 0), 797 - GATE(spi1_isp_sclk, "spi1_isp_sclk", "sclk_spi1_isp", 865 + GATE(CLK_SPI1_ISP_SCLK, "spi1_isp_sclk", "sclk_spi1_isp", 798 866 E4X12_GATE_IP_ISP, 2, 0, 0), 799 - GATE(uart_isp_sclk, "uart_isp_sclk", "sclk_uart_isp", 867 + GATE(CLK_UART_ISP_SCLK, "uart_isp_sclk", "sclk_uart_isp", 800 868 E4X12_GATE_IP_ISP, 3, 0, 0), 801 - GATE(wdt, "watchdog", "aclk100", E4X12_GATE_IP_PERIR, 14, 0, 0), 802 - GATE(pcm0, "pcm0", "aclk100", E4X12_GATE_IP_MAUDIO, 2, 869 + GATE(CLK_WDT, "watchdog", "aclk100", E4X12_GATE_IP_PERIR, 14, 0, 0), 870 + GATE(CLK_PCM0, "pcm0", "aclk100", E4X12_GATE_IP_MAUDIO, 2, 803 871 0, 0), 804 - GATE(i2s0, "i2s0", "aclk100", E4X12_GATE_IP_MAUDIO, 3, 872 + GATE(CLK_I2S0, "i2s0", "aclk100", E4X12_GATE_IP_MAUDIO, 3, 805 873 0, 0), 806 - GATE(fimc_isp, "isp", "aclk200", E4X12_GATE_ISP0, 0, 874 + GATE(CLK_FIMC_ISP, "isp", "aclk200", E4X12_GATE_ISP0, 0, 807 875 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 808 - GATE(fimc_drc, "drc", "aclk200", E4X12_GATE_ISP0, 1, 876 + GATE(CLK_FIMC_DRC, "drc", "aclk200", E4X12_GATE_ISP0, 1, 809 877 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 810 - GATE(fimc_fd, "fd", "aclk200", E4X12_GATE_ISP0, 2, 878 + GATE(CLK_FIMC_FD, "fd", "aclk200", E4X12_GATE_ISP0, 2, 811 879 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 812 - GATE(fimc_lite0, "lite0", "aclk200", E4X12_GATE_ISP0, 3, 880 + GATE(CLK_FIMC_LITE0, "lite0", "aclk200", E4X12_GATE_ISP0, 3, 813 881 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 814 - GATE(fimc_lite1, "lite1", "aclk200", E4X12_GATE_ISP0, 4, 882 + GATE(CLK_FIMC_LITE1, "lite1", "aclk200", E4X12_GATE_ISP0, 4, 815 883 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 816 - GATE(mcuisp, "mcuisp", "aclk200", E4X12_GATE_ISP0, 5, 884 + GATE(CLK_MCUISP, "mcuisp", "aclk200", E4X12_GATE_ISP0, 5, 817 885 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 818 - GATE(gicisp, "gicisp", "aclk200", E4X12_GATE_ISP0, 7, 886 + GATE(CLK_GICISP, "gicisp", "aclk200", E4X12_GATE_ISP0, 7, 819 887 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 820 - GATE(smmu_isp, "smmu_isp", "aclk200", E4X12_GATE_ISP0, 8, 888 + GATE(CLK_SMMU_ISP, "smmu_isp", "aclk200", E4X12_GATE_ISP0, 8, 821 889 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 822 - GATE(smmu_drc, "smmu_drc", "aclk200", E4X12_GATE_ISP0, 9, 890 + GATE(CLK_SMMU_DRC, "smmu_drc", "aclk200", E4X12_GATE_ISP0, 9, 823 891 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 824 - GATE(smmu_fd, "smmu_fd", "aclk200", E4X12_GATE_ISP0, 10, 892 + GATE(CLK_SMMU_FD, "smmu_fd", "aclk200", E4X12_GATE_ISP0, 10, 825 893 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 826 - GATE(smmu_lite0, "smmu_lite0", "aclk200", E4X12_GATE_ISP0, 11, 894 + GATE(CLK_SMMU_LITE0, "smmu_lite0", "aclk200", E4X12_GATE_ISP0, 11, 827 895 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 828 - GATE(smmu_lite1, "smmu_lite1", "aclk200", E4X12_GATE_ISP0, 12, 896 + GATE(CLK_SMMU_LITE1, "smmu_lite1", "aclk200", E4X12_GATE_ISP0, 12, 829 897 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 830 - GATE(ppmuispmx, "ppmuispmx", "aclk200", E4X12_GATE_ISP0, 20, 898 + GATE(CLK_PPMUISPMX, "ppmuispmx", "aclk200", E4X12_GATE_ISP0, 20, 831 899 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 832 - GATE(ppmuispx, "ppmuispx", "aclk200", E4X12_GATE_ISP0, 21, 900 + GATE(CLK_PPMUISPX, "ppmuispx", "aclk200", E4X12_GATE_ISP0, 21, 833 901 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 834 - GATE(mcuctl_isp, "mcuctl_isp", "aclk200", E4X12_GATE_ISP0, 23, 902 + GATE(CLK_MCUCTL_ISP, "mcuctl_isp", "aclk200", E4X12_GATE_ISP0, 23, 835 903 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 836 - GATE(mpwm_isp, "mpwm_isp", "aclk200", E4X12_GATE_ISP0, 24, 904 + GATE(CLK_MPWM_ISP, "mpwm_isp", "aclk200", E4X12_GATE_ISP0, 24, 837 905 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 838 - GATE(i2c0_isp, "i2c0_isp", "aclk200", E4X12_GATE_ISP0, 25, 906 + GATE(CLK_I2C0_ISP, "i2c0_isp", "aclk200", E4X12_GATE_ISP0, 25, 839 907 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 840 - GATE(i2c1_isp, "i2c1_isp", "aclk200", E4X12_GATE_ISP0, 26, 908 + GATE(CLK_I2C1_ISP, "i2c1_isp", "aclk200", E4X12_GATE_ISP0, 26, 841 909 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 842 - GATE(mtcadc_isp, "mtcadc_isp", "aclk200", E4X12_GATE_ISP0, 27, 910 + GATE(CLK_MTCADC_ISP, "mtcadc_isp", "aclk200", E4X12_GATE_ISP0, 27, 843 911 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 844 - GATE(pwm_isp, "pwm_isp", "aclk200", E4X12_GATE_ISP0, 28, 912 + GATE(CLK_PWM_ISP, "pwm_isp", "aclk200", E4X12_GATE_ISP0, 28, 845 913 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 846 - GATE(wdt_isp, "wdt_isp", "aclk200", E4X12_GATE_ISP0, 30, 914 + GATE(CLK_WDT_ISP, "wdt_isp", "aclk200", E4X12_GATE_ISP0, 30, 847 915 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 848 - GATE(uart_isp, "uart_isp", "aclk200", E4X12_GATE_ISP0, 31, 916 + GATE(CLK_UART_ISP, "uart_isp", "aclk200", E4X12_GATE_ISP0, 31, 849 917 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 850 - GATE(asyncaxim, "asyncaxim", "aclk200", E4X12_GATE_ISP1, 0, 918 + GATE(CLK_ASYNCAXIM, "asyncaxim", "aclk200", E4X12_GATE_ISP1, 0, 851 919 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 852 - GATE(smmu_ispcx, "smmu_ispcx", "aclk200", E4X12_GATE_ISP1, 4, 920 + GATE(CLK_SMMU_ISPCX, "smmu_ispcx", "aclk200", E4X12_GATE_ISP1, 4, 853 921 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 854 - GATE(spi0_isp, "spi0_isp", "aclk200", E4X12_GATE_ISP1, 12, 922 + GATE(CLK_SPI0_ISP, "spi0_isp", "aclk200", E4X12_GATE_ISP1, 12, 855 923 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 856 - GATE(spi1_isp, "spi1_isp", "aclk200", E4X12_GATE_ISP1, 13, 924 + GATE(CLK_SPI1_ISP, "spi1_isp", "aclk200", E4X12_GATE_ISP1, 13, 857 925 CLK_IGNORE_UNUSED | CLK_GET_RATE_NOCACHE, 0), 858 - GATE(g2d, "g2d", "aclk200", GATE_IP_DMC, 23, 0, 0), 859 - GATE(tmu_apbif, "tmu_apbif", "aclk100", E4X12_GATE_IP_PERIR, 17, 0, 0), 926 + GATE(CLK_G2D, "g2d", "aclk200", GATE_IP_DMC, 23, 0, 0), 927 + GATE(CLK_TMU_APBIF, "tmu_apbif", "aclk100", E4X12_GATE_IP_PERIR, 17, 0, 928 + 0), 860 929 }; 861 930 862 931 static struct samsung_clock_alias exynos4_aliases[] __initdata = { 863 - ALIAS(mout_core, NULL, "moutcore"), 864 - ALIAS(arm_clk, NULL, "armclk"), 865 - ALIAS(sclk_apll, NULL, "mout_apll"), 932 + ALIAS(CLK_MOUT_CORE, NULL, "moutcore"), 933 + ALIAS(CLK_ARM_CLK, NULL, "armclk"), 934 + ALIAS(CLK_SCLK_APLL, NULL, "mout_apll"), 866 935 }; 867 936 868 937 static struct samsung_clock_alias exynos4210_aliases[] __initdata = { 869 - ALIAS(sclk_mpll, NULL, "mout_mpll"), 938 + ALIAS(CLK_SCLK_MPLL, NULL, "mout_mpll"), 870 939 }; 871 940 872 941 static struct samsung_clock_alias exynos4x12_aliases[] __initdata = { 873 - ALIAS(mout_mpll_user_c, NULL, "mout_mpll"), 942 + ALIAS(CLK_MOUT_MPLL_USER_C, NULL, "mout_mpll"), 874 943 }; 875 944 876 945 /* ··· 924 977 finpll_f = clk_get_rate(clk); 925 978 } 926 979 927 - fclk.id = fin_pll; 980 + fclk.id = CLK_FIN_PLL; 928 981 fclk.name = "fin_pll"; 929 982 fclk.parent_name = NULL; 930 983 fclk.flags = CLK_IS_ROOT; ··· 1014 1067 }; 1015 1068 1016 1069 static struct samsung_pll_clock exynos4210_plls[nr_plls] __initdata = { 1017 - [apll] = PLL_A(pll_4508, fout_apll, "fout_apll", "fin_pll", APLL_LOCK, 1018 - APLL_CON0, "fout_apll", NULL), 1019 - [mpll] = PLL_A(pll_4508, fout_mpll, "fout_mpll", "fin_pll", 1070 + [apll] = PLL_A(pll_4508, CLK_FOUT_APLL, "fout_apll", "fin_pll", 1071 + APLL_LOCK, APLL_CON0, "fout_apll", NULL), 1072 + [mpll] = PLL_A(pll_4508, CLK_FOUT_MPLL, "fout_mpll", "fin_pll", 1020 1073 E4210_MPLL_LOCK, E4210_MPLL_CON0, "fout_mpll", NULL), 1021 - [epll] = PLL_A(pll_4600, fout_epll, "fout_epll", "fin_pll", EPLL_LOCK, 1022 - EPLL_CON0, "fout_epll", NULL), 1023 - [vpll] = PLL_A(pll_4650c, fout_vpll, "fout_vpll", "mout_vpllsrc", 1074 + [epll] = PLL_A(pll_4600, CLK_FOUT_EPLL, "fout_epll", "fin_pll", 1075 + EPLL_LOCK, EPLL_CON0, "fout_epll", NULL), 1076 + [vpll] = PLL_A(pll_4650c, CLK_FOUT_VPLL, "fout_vpll", "mout_vpllsrc", 1024 1077 VPLL_LOCK, VPLL_CON0, "fout_vpll", NULL), 1025 1078 }; 1026 1079 1027 1080 static struct samsung_pll_clock exynos4x12_plls[nr_plls] __initdata = { 1028 - [apll] = PLL(pll_35xx, fout_apll, "fout_apll", "fin_pll", 1081 + [apll] = PLL(pll_35xx, CLK_FOUT_APLL, "fout_apll", "fin_pll", 1029 1082 APLL_LOCK, APLL_CON0, NULL), 1030 - [mpll] = PLL(pll_35xx, fout_mpll, "fout_mpll", "fin_pll", 1083 + [mpll] = PLL(pll_35xx, CLK_FOUT_MPLL, "fout_mpll", "fin_pll", 1031 1084 E4X12_MPLL_LOCK, E4X12_MPLL_CON0, NULL), 1032 - [epll] = PLL(pll_36xx, fout_epll, "fout_epll", "fin_pll", 1085 + [epll] = PLL(pll_36xx, CLK_FOUT_EPLL, "fout_epll", "fin_pll", 1033 1086 EPLL_LOCK, EPLL_CON0, NULL), 1034 - [vpll] = PLL(pll_36xx, fout_vpll, "fout_vpll", "fin_pll", 1087 + [vpll] = PLL(pll_36xx, CLK_FOUT_VPLL, "fout_vpll", "fin_pll", 1035 1088 VPLL_LOCK, VPLL_CON0, NULL), 1036 1089 }; 1037 1090 ··· 1045 1098 panic("%s: failed to map registers\n", __func__); 1046 1099 1047 1100 if (exynos4_soc == EXYNOS4210) 1048 - samsung_clk_init(np, reg_base, nr_clks, 1101 + samsung_clk_init(np, reg_base, CLK_NR_CLKS, 1049 1102 exynos4_clk_regs, ARRAY_SIZE(exynos4_clk_regs), 1050 1103 exynos4210_clk_save, ARRAY_SIZE(exynos4210_clk_save)); 1051 1104 else 1052 - samsung_clk_init(np, reg_base, nr_clks, 1105 + samsung_clk_init(np, reg_base, CLK_NR_CLKS, 1053 1106 exynos4_clk_regs, ARRAY_SIZE(exynos4_clk_regs), 1054 1107 exynos4x12_clk_save, ARRAY_SIZE(exynos4x12_clk_save)); 1055 1108
+401 -296
drivers/clk/samsung/clk-exynos5250.c
··· 10 10 * Common Clock Framework support for Exynos5250 SoC. 11 11 */ 12 12 13 + #include <dt-bindings/clock/exynos5250.h> 13 14 #include <linux/clk.h> 14 15 #include <linux/clkdev.h> 15 16 #include <linux/clk-provider.h> ··· 26 25 #define MPLL_LOCK 0x4000 27 26 #define MPLL_CON0 0x4100 28 27 #define SRC_CORE1 0x4204 28 + #define GATE_IP_ACP 0x8800 29 29 #define CPLL_LOCK 0x10020 30 30 #define EPLL_LOCK 0x10030 31 31 #define VPLL_LOCK 0x10040 ··· 37 35 #define GPLL_CON0 0x10150 38 36 #define SRC_TOP0 0x10210 39 37 #define SRC_TOP2 0x10218 38 + #define SRC_TOP3 0x1021c 40 39 #define SRC_GSCL 0x10220 41 40 #define SRC_DISP1_0 0x1022c 42 41 #define SRC_MAU 0x10240 ··· 68 65 #define DIV_PERIC4 0x10568 69 66 #define DIV_PERIC5 0x1056c 70 67 #define GATE_IP_GSCL 0x10920 68 + #define GATE_IP_DISP1 0x10928 71 69 #define GATE_IP_MFC 0x1092c 72 70 #define GATE_IP_GEN 0x10934 73 71 #define GATE_IP_FSYS 0x10944 ··· 78 74 #define BPLL_CON0 0x20110 79 75 #define SRC_CDREX 0x20200 80 76 #define PLL_DIV2_SEL 0x20a24 81 - #define GATE_IP_DISP1 0x10928 82 - #define GATE_IP_ACP 0x10000 83 77 84 78 /* list of PLLs to be registered */ 85 79 enum exynos5250_plls { 86 80 apll, mpll, cpll, epll, vpll, gpll, bpll, 87 81 nr_plls /* number of PLLs */ 88 - }; 89 - 90 - /* 91 - * Let each supported clock get a unique id. This id is used to lookup the clock 92 - * for device tree based platforms. The clocks are categorized into three 93 - * sections: core, sclk gate and bus interface gate clocks. 94 - * 95 - * When adding a new clock to this list, it is advised to choose a clock 96 - * category and add it to the end of that category. That is because the the 97 - * device tree source file is referring to these ids and any change in the 98 - * sequence number of existing clocks will require corresponding change in the 99 - * device tree files. This limitation would go away when pre-processor support 100 - * for dtc would be available. 101 - */ 102 - enum exynos5250_clks { 103 - none, 104 - 105 - /* core clocks */ 106 - fin_pll, fout_apll, fout_mpll, fout_bpll, fout_gpll, fout_cpll, 107 - fout_epll, fout_vpll, 108 - 109 - /* gate for special clocks (sclk) */ 110 - sclk_cam_bayer = 128, sclk_cam0, sclk_cam1, sclk_gscl_wa, sclk_gscl_wb, 111 - sclk_fimd1, sclk_mipi1, sclk_dp, sclk_hdmi, sclk_pixel, sclk_audio0, 112 - sclk_mmc0, sclk_mmc1, sclk_mmc2, sclk_mmc3, sclk_sata, sclk_usb3, 113 - sclk_jpeg, sclk_uart0, sclk_uart1, sclk_uart2, sclk_uart3, sclk_pwm, 114 - sclk_audio1, sclk_audio2, sclk_spdif, sclk_spi0, sclk_spi1, sclk_spi2, 115 - div_i2s1, div_i2s2, sclk_hdmiphy, 116 - 117 - /* gate clocks */ 118 - gscl0 = 256, gscl1, gscl2, gscl3, gscl_wa, gscl_wb, smmu_gscl0, 119 - smmu_gscl1, smmu_gscl2, smmu_gscl3, mfc, smmu_mfcl, smmu_mfcr, rotator, 120 - jpeg, mdma1, smmu_rotator, smmu_jpeg, smmu_mdma1, pdma0, pdma1, sata, 121 - usbotg, mipi_hsi, sdmmc0, sdmmc1, sdmmc2, sdmmc3, sromc, usb2, usb3, 122 - sata_phyctrl, sata_phyi2c, uart0, uart1, uart2, uart3, uart4, i2c0, 123 - i2c1, i2c2, i2c3, i2c4, i2c5, i2c6, i2c7, i2c_hdmi, adc, spi0, spi1, 124 - spi2, i2s1, i2s2, pcm1, pcm2, pwm, spdif, ac97, hsi2c0, hsi2c1, hsi2c2, 125 - hsi2c3, chipid, sysreg, pmu, cmu_top, cmu_core, cmu_mem, tzpc0, tzpc1, 126 - tzpc2, tzpc3, tzpc4, tzpc5, tzpc6, tzpc7, tzpc8, tzpc9, hdmi_cec, mct, 127 - wdt, rtc, tmu, fimd1, mie1, dsim0, dp, mixer, hdmi, g2d, 128 - 129 - /* mux clocks */ 130 - mout_hdmi = 1024, 131 - 132 - nr_clks, 133 82 }; 134 83 135 84 /* ··· 95 138 SRC_CORE1, 96 139 SRC_TOP0, 97 140 SRC_TOP2, 141 + SRC_TOP3, 98 142 SRC_GSCL, 99 143 SRC_DISP1_0, 100 144 SRC_MAU, ··· 139 181 140 182 /* list of all parent clock list */ 141 183 PNAME(mout_apll_p) = { "fin_pll", "fout_apll", }; 142 - PNAME(mout_cpu_p) = { "mout_apll", "sclk_mpll", }; 184 + PNAME(mout_cpu_p) = { "mout_apll", "mout_mpll", }; 143 185 PNAME(mout_mpll_fout_p) = { "fout_mplldiv2", "fout_mpll" }; 144 186 PNAME(mout_mpll_p) = { "fin_pll", "mout_mpll_fout" }; 145 187 PNAME(mout_bpll_fout_p) = { "fout_bplldiv2", "fout_bpll" }; ··· 148 190 PNAME(mout_vpll_p) = { "mout_vpllsrc", "fout_vpll" }; 149 191 PNAME(mout_cpll_p) = { "fin_pll", "fout_cpll" }; 150 192 PNAME(mout_epll_p) = { "fin_pll", "fout_epll" }; 151 - PNAME(mout_mpll_user_p) = { "fin_pll", "sclk_mpll" }; 152 - PNAME(mout_bpll_user_p) = { "fin_pll", "sclk_bpll" }; 153 - PNAME(mout_aclk166_p) = { "sclk_cpll", "sclk_mpll_user" }; 154 - PNAME(mout_aclk200_p) = { "sclk_mpll_user", "sclk_bpll_user" }; 193 + PNAME(mout_mpll_user_p) = { "fin_pll", "mout_mpll" }; 194 + PNAME(mout_bpll_user_p) = { "fin_pll", "mout_bpll" }; 195 + PNAME(mout_aclk166_p) = { "mout_cpll", "mout_mpll_user" }; 196 + PNAME(mout_aclk200_p) = { "mout_mpll_user", "mout_bpll_user" }; 197 + PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" }; 198 + PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" }; 199 + PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" }; 155 200 PNAME(mout_hdmi_p) = { "div_hdmi_pixel", "sclk_hdmiphy" }; 156 - PNAME(mout_usb3_p) = { "sclk_mpll_user", "sclk_cpll" }; 201 + PNAME(mout_usb3_p) = { "mout_mpll_user", "mout_cpll" }; 157 202 PNAME(mout_group1_p) = { "fin_pll", "fin_pll", "sclk_hdmi27m", 158 203 "sclk_dptxphy", "sclk_uhostphy", "sclk_hdmiphy", 159 - "sclk_mpll_user", "sclk_epll", "sclk_vpll", 160 - "sclk_cpll" }; 204 + "mout_mpll_user", "mout_epll", "mout_vpll", 205 + "mout_cpll", "none", "none", 206 + "none", "none", "none", 207 + "none" }; 161 208 PNAME(mout_audio0_p) = { "cdclk0", "fin_pll", "sclk_hdmi27m", "sclk_dptxphy", 162 - "sclk_uhostphy", "sclk_hdmiphy", 163 - "sclk_mpll_user", "sclk_epll", "sclk_vpll", 164 - "sclk_cpll" }; 209 + "sclk_uhostphy", "fin_pll", 210 + "mout_mpll_user", "mout_epll", "mout_vpll", 211 + "mout_cpll", "none", "none", 212 + "none", "none", "none", 213 + "none" }; 165 214 PNAME(mout_audio1_p) = { "cdclk1", "fin_pll", "sclk_hdmi27m", "sclk_dptxphy", 166 - "sclk_uhostphy", "sclk_hdmiphy", 167 - "sclk_mpll_user", "sclk_epll", "sclk_vpll", 168 - "sclk_cpll" }; 215 + "sclk_uhostphy", "fin_pll", 216 + "mout_mpll_user", "mout_epll", "mout_vpll", 217 + "mout_cpll", "none", "none", 218 + "none", "none", "none", 219 + "none" }; 169 220 PNAME(mout_audio2_p) = { "cdclk2", "fin_pll", "sclk_hdmi27m", "sclk_dptxphy", 170 - "sclk_uhostphy", "sclk_hdmiphy", 171 - "sclk_mpll_user", "sclk_epll", "sclk_vpll", 172 - "sclk_cpll" }; 221 + "sclk_uhostphy", "fin_pll", 222 + "mout_mpll_user", "mout_epll", "mout_vpll", 223 + "mout_cpll", "none", "none", 224 + "none", "none", "none", 225 + "none" }; 173 226 PNAME(mout_spdif_p) = { "sclk_audio0", "sclk_audio1", "sclk_audio2", 174 227 "spdif_extclk" }; 175 228 176 229 /* fixed rate clocks generated outside the soc */ 177 230 static struct samsung_fixed_rate_clock exynos5250_fixed_rate_ext_clks[] __initdata = { 178 - FRATE(fin_pll, "fin_pll", NULL, CLK_IS_ROOT, 0), 231 + FRATE(CLK_FIN_PLL, "fin_pll", NULL, CLK_IS_ROOT, 0), 179 232 }; 180 233 181 234 /* fixed rate clocks generated inside the soc */ 182 235 static struct samsung_fixed_rate_clock exynos5250_fixed_rate_clks[] __initdata = { 183 - FRATE(sclk_hdmiphy, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000), 184 - FRATE(none, "sclk_hdmi27m", NULL, CLK_IS_ROOT, 27000000), 185 - FRATE(none, "sclk_dptxphy", NULL, CLK_IS_ROOT, 24000000), 186 - FRATE(none, "sclk_uhostphy", NULL, CLK_IS_ROOT, 48000000), 236 + FRATE(CLK_SCLK_HDMIPHY, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000), 237 + FRATE(0, "sclk_hdmi27m", NULL, CLK_IS_ROOT, 27000000), 238 + FRATE(0, "sclk_dptxphy", NULL, CLK_IS_ROOT, 24000000), 239 + FRATE(0, "sclk_uhostphy", NULL, CLK_IS_ROOT, 48000000), 187 240 }; 188 241 189 242 static struct samsung_fixed_factor_clock exynos5250_fixed_factor_clks[] __initdata = { 190 - FFACTOR(none, "fout_mplldiv2", "fout_mpll", 1, 2, 0), 191 - FFACTOR(none, "fout_bplldiv2", "fout_bpll", 1, 2, 0), 243 + FFACTOR(0, "fout_mplldiv2", "fout_mpll", 1, 2, 0), 244 + FFACTOR(0, "fout_bplldiv2", "fout_bpll", 1, 2, 0), 192 245 }; 193 246 194 247 static struct samsung_mux_clock exynos5250_pll_pmux_clks[] __initdata = { 195 - MUX(none, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP2, 0, 1), 248 + MUX(0, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP2, 0, 1), 196 249 }; 197 250 198 251 static struct samsung_mux_clock exynos5250_mux_clks[] __initdata = { 199 - MUX_A(none, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, "mout_apll"), 200 - MUX_A(none, "mout_cpu", mout_cpu_p, SRC_CPU, 16, 1, "mout_cpu"), 201 - MUX(none, "mout_mpll_fout", mout_mpll_fout_p, PLL_DIV2_SEL, 4, 1), 202 - MUX_A(none, "sclk_mpll", mout_mpll_p, SRC_CORE1, 8, 1, "mout_mpll"), 203 - MUX(none, "mout_bpll_fout", mout_bpll_fout_p, PLL_DIV2_SEL, 0, 1), 204 - MUX(none, "sclk_bpll", mout_bpll_p, SRC_CDREX, 0, 1), 205 - MUX(none, "sclk_vpll", mout_vpll_p, SRC_TOP2, 16, 1), 206 - MUX(none, "sclk_epll", mout_epll_p, SRC_TOP2, 12, 1), 207 - MUX(none, "sclk_cpll", mout_cpll_p, SRC_TOP2, 8, 1), 208 - MUX(none, "sclk_mpll_user", mout_mpll_user_p, SRC_TOP2, 20, 1), 209 - MUX(none, "sclk_bpll_user", mout_bpll_user_p, SRC_TOP2, 24, 1), 210 - MUX(none, "mout_aclk166", mout_aclk166_p, SRC_TOP0, 8, 1), 211 - MUX(none, "mout_aclk333", mout_aclk166_p, SRC_TOP0, 16, 1), 212 - MUX(none, "mout_aclk200", mout_aclk200_p, SRC_TOP0, 12, 1), 213 - MUX(none, "mout_cam_bayer", mout_group1_p, SRC_GSCL, 12, 4), 214 - MUX(none, "mout_cam0", mout_group1_p, SRC_GSCL, 16, 4), 215 - MUX(none, "mout_cam1", mout_group1_p, SRC_GSCL, 20, 4), 216 - MUX(none, "mout_gscl_wa", mout_group1_p, SRC_GSCL, 24, 4), 217 - MUX(none, "mout_gscl_wb", mout_group1_p, SRC_GSCL, 28, 4), 218 - MUX(none, "mout_fimd1", mout_group1_p, SRC_DISP1_0, 0, 4), 219 - MUX(none, "mout_mipi1", mout_group1_p, SRC_DISP1_0, 12, 4), 220 - MUX(none, "mout_dp", mout_group1_p, SRC_DISP1_0, 16, 4), 221 - MUX(mout_hdmi, "mout_hdmi", mout_hdmi_p, SRC_DISP1_0, 20, 1), 222 - MUX(none, "mout_audio0", mout_audio0_p, SRC_MAU, 0, 4), 223 - MUX(none, "mout_mmc0", mout_group1_p, SRC_FSYS, 0, 4), 224 - MUX(none, "mout_mmc1", mout_group1_p, SRC_FSYS, 4, 4), 225 - MUX(none, "mout_mmc2", mout_group1_p, SRC_FSYS, 8, 4), 226 - MUX(none, "mout_mmc3", mout_group1_p, SRC_FSYS, 12, 4), 227 - MUX(none, "mout_sata", mout_aclk200_p, SRC_FSYS, 24, 1), 228 - MUX(none, "mout_usb3", mout_usb3_p, SRC_FSYS, 28, 1), 229 - MUX(none, "mout_jpeg", mout_group1_p, SRC_GEN, 0, 4), 230 - MUX(none, "mout_uart0", mout_group1_p, SRC_PERIC0, 0, 4), 231 - MUX(none, "mout_uart1", mout_group1_p, SRC_PERIC0, 4, 4), 232 - MUX(none, "mout_uart2", mout_group1_p, SRC_PERIC0, 8, 4), 233 - MUX(none, "mout_uart3", mout_group1_p, SRC_PERIC0, 12, 4), 234 - MUX(none, "mout_pwm", mout_group1_p, SRC_PERIC0, 24, 4), 235 - MUX(none, "mout_audio1", mout_audio1_p, SRC_PERIC1, 0, 4), 236 - MUX(none, "mout_audio2", mout_audio2_p, SRC_PERIC1, 4, 4), 237 - MUX(none, "mout_spdif", mout_spdif_p, SRC_PERIC1, 8, 2), 238 - MUX(none, "mout_spi0", mout_group1_p, SRC_PERIC1, 16, 4), 239 - MUX(none, "mout_spi1", mout_group1_p, SRC_PERIC1, 20, 4), 240 - MUX(none, "mout_spi2", mout_group1_p, SRC_PERIC1, 24, 4), 252 + /* 253 + * NOTE: Following table is sorted by (clock domain, register address, 254 + * bitfield shift) triplet in ascending order. When adding new entries, 255 + * please make sure that the order is kept, to avoid merge conflicts 256 + * and make further work with defined data easier. 257 + */ 258 + 259 + /* 260 + * CMU_CPU 261 + */ 262 + MUX_FA(0, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, 263 + CLK_SET_RATE_PARENT, 0, "mout_apll"), 264 + MUX_A(0, "mout_cpu", mout_cpu_p, SRC_CPU, 16, 1, "mout_cpu"), 265 + 266 + /* 267 + * CMU_CORE 268 + */ 269 + MUX_A(0, "mout_mpll", mout_mpll_p, SRC_CORE1, 8, 1, "mout_mpll"), 270 + 271 + /* 272 + * CMU_TOP 273 + */ 274 + MUX(0, "mout_aclk166", mout_aclk166_p, SRC_TOP0, 8, 1), 275 + MUX(0, "mout_aclk200", mout_aclk200_p, SRC_TOP0, 12, 1), 276 + MUX(0, "mout_aclk333", mout_aclk166_p, SRC_TOP0, 16, 1), 277 + 278 + MUX(0, "mout_cpll", mout_cpll_p, SRC_TOP2, 8, 1), 279 + MUX(0, "mout_epll", mout_epll_p, SRC_TOP2, 12, 1), 280 + MUX(0, "mout_vpll", mout_vpll_p, SRC_TOP2, 16, 1), 281 + MUX(0, "mout_mpll_user", mout_mpll_user_p, SRC_TOP2, 20, 1), 282 + MUX(0, "mout_bpll_user", mout_bpll_user_p, SRC_TOP2, 24, 1), 283 + 284 + MUX(0, "mout_aclk200_disp1_sub", mout_aclk200_sub_p, SRC_TOP3, 4, 1), 285 + MUX(0, "mout_aclk266_gscl_sub", mout_aclk266_sub_p, SRC_TOP3, 8, 1), 286 + MUX(0, "mout_aclk333_sub", mout_aclk333_sub_p, SRC_TOP3, 24, 1), 287 + 288 + MUX(0, "mout_cam_bayer", mout_group1_p, SRC_GSCL, 12, 4), 289 + MUX(0, "mout_cam0", mout_group1_p, SRC_GSCL, 16, 4), 290 + MUX(0, "mout_cam1", mout_group1_p, SRC_GSCL, 20, 4), 291 + MUX(0, "mout_gscl_wa", mout_group1_p, SRC_GSCL, 24, 4), 292 + MUX(0, "mout_gscl_wb", mout_group1_p, SRC_GSCL, 28, 4), 293 + 294 + MUX(0, "mout_fimd1", mout_group1_p, SRC_DISP1_0, 0, 4), 295 + MUX(0, "mout_mipi1", mout_group1_p, SRC_DISP1_0, 12, 4), 296 + MUX(0, "mout_dp", mout_group1_p, SRC_DISP1_0, 16, 4), 297 + MUX(CLK_MOUT_HDMI, "mout_hdmi", mout_hdmi_p, SRC_DISP1_0, 20, 1), 298 + 299 + MUX(0, "mout_audio0", mout_audio0_p, SRC_MAU, 0, 4), 300 + 301 + MUX(0, "mout_mmc0", mout_group1_p, SRC_FSYS, 0, 4), 302 + MUX(0, "mout_mmc1", mout_group1_p, SRC_FSYS, 4, 4), 303 + MUX(0, "mout_mmc2", mout_group1_p, SRC_FSYS, 8, 4), 304 + MUX(0, "mout_mmc3", mout_group1_p, SRC_FSYS, 12, 4), 305 + MUX(0, "mout_sata", mout_aclk200_p, SRC_FSYS, 24, 1), 306 + MUX(0, "mout_usb3", mout_usb3_p, SRC_FSYS, 28, 1), 307 + 308 + MUX(0, "mout_jpeg", mout_group1_p, SRC_GEN, 0, 4), 309 + 310 + MUX(0, "mout_uart0", mout_group1_p, SRC_PERIC0, 0, 4), 311 + MUX(0, "mout_uart1", mout_group1_p, SRC_PERIC0, 4, 4), 312 + MUX(0, "mout_uart2", mout_group1_p, SRC_PERIC0, 8, 4), 313 + MUX(0, "mout_uart3", mout_group1_p, SRC_PERIC0, 12, 4), 314 + MUX(0, "mout_pwm", mout_group1_p, SRC_PERIC0, 24, 4), 315 + 316 + MUX(0, "mout_audio1", mout_audio1_p, SRC_PERIC1, 0, 4), 317 + MUX(0, "mout_audio2", mout_audio2_p, SRC_PERIC1, 4, 4), 318 + MUX(0, "mout_spdif", mout_spdif_p, SRC_PERIC1, 8, 2), 319 + MUX(0, "mout_spi0", mout_group1_p, SRC_PERIC1, 16, 4), 320 + MUX(0, "mout_spi1", mout_group1_p, SRC_PERIC1, 20, 4), 321 + MUX(0, "mout_spi2", mout_group1_p, SRC_PERIC1, 24, 4), 322 + 323 + /* 324 + * CMU_CDREX 325 + */ 326 + MUX(0, "mout_bpll", mout_bpll_p, SRC_CDREX, 0, 1), 327 + 328 + MUX(0, "mout_mpll_fout", mout_mpll_fout_p, PLL_DIV2_SEL, 4, 1), 329 + MUX(0, "mout_bpll_fout", mout_bpll_fout_p, PLL_DIV2_SEL, 0, 1), 241 330 }; 242 331 243 332 static struct samsung_div_clock exynos5250_div_clks[] __initdata = { 244 - DIV(none, "div_arm", "mout_cpu", DIV_CPU0, 0, 3), 245 - DIV(none, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3), 246 - DIV(none, "aclk66_pre", "sclk_mpll_user", DIV_TOP1, 24, 3), 247 - DIV(none, "aclk66", "aclk66_pre", DIV_TOP0, 0, 3), 248 - DIV(none, "aclk266", "sclk_mpll_user", DIV_TOP0, 16, 3), 249 - DIV(none, "aclk166", "mout_aclk166", DIV_TOP0, 8, 3), 250 - DIV(none, "aclk333", "mout_aclk333", DIV_TOP0, 20, 3), 251 - DIV(none, "aclk200", "mout_aclk200", DIV_TOP0, 12, 3), 252 - DIV(none, "div_cam_bayer", "mout_cam_bayer", DIV_GSCL, 12, 4), 253 - DIV(none, "div_cam0", "mout_cam0", DIV_GSCL, 16, 4), 254 - DIV(none, "div_cam1", "mout_cam1", DIV_GSCL, 20, 4), 255 - DIV(none, "div_gscl_wa", "mout_gscl_wa", DIV_GSCL, 24, 4), 256 - DIV(none, "div_gscl_wb", "mout_gscl_wb", DIV_GSCL, 28, 4), 257 - DIV(none, "div_fimd1", "mout_fimd1", DIV_DISP1_0, 0, 4), 258 - DIV(none, "div_mipi1", "mout_mipi1", DIV_DISP1_0, 16, 4), 259 - DIV(none, "div_dp", "mout_dp", DIV_DISP1_0, 24, 4), 260 - DIV(none, "div_jpeg", "mout_jpeg", DIV_GEN, 4, 4), 261 - DIV(none, "div_audio0", "mout_audio0", DIV_MAU, 0, 4), 262 - DIV(none, "div_pcm0", "sclk_audio0", DIV_MAU, 4, 8), 263 - DIV(none, "div_sata", "mout_sata", DIV_FSYS0, 20, 4), 264 - DIV(none, "div_usb3", "mout_usb3", DIV_FSYS0, 24, 4), 265 - DIV(none, "div_mmc0", "mout_mmc0", DIV_FSYS1, 0, 4), 266 - DIV(none, "div_mmc1", "mout_mmc1", DIV_FSYS1, 16, 4), 267 - DIV(none, "div_mmc2", "mout_mmc2", DIV_FSYS2, 0, 4), 268 - DIV(none, "div_mmc3", "mout_mmc3", DIV_FSYS2, 16, 4), 269 - DIV(none, "div_uart0", "mout_uart0", DIV_PERIC0, 0, 4), 270 - DIV(none, "div_uart1", "mout_uart1", DIV_PERIC0, 4, 4), 271 - DIV(none, "div_uart2", "mout_uart2", DIV_PERIC0, 8, 4), 272 - DIV(none, "div_uart3", "mout_uart3", DIV_PERIC0, 12, 4), 273 - DIV(none, "div_spi0", "mout_spi0", DIV_PERIC1, 0, 4), 274 - DIV(none, "div_spi1", "mout_spi1", DIV_PERIC1, 16, 4), 275 - DIV(none, "div_spi2", "mout_spi2", DIV_PERIC2, 0, 4), 276 - DIV(none, "div_pwm", "mout_pwm", DIV_PERIC3, 0, 4), 277 - DIV(none, "div_audio1", "mout_audio1", DIV_PERIC4, 0, 4), 278 - DIV(none, "div_pcm1", "sclk_audio1", DIV_PERIC4, 4, 8), 279 - DIV(none, "div_audio2", "mout_audio2", DIV_PERIC4, 16, 4), 280 - DIV(none, "div_pcm2", "sclk_audio2", DIV_PERIC4, 20, 8), 281 - DIV(div_i2s1, "div_i2s1", "sclk_audio1", DIV_PERIC5, 0, 6), 282 - DIV(div_i2s2, "div_i2s2", "sclk_audio2", DIV_PERIC5, 8, 6), 283 - DIV(sclk_pixel, "div_hdmi_pixel", "sclk_vpll", DIV_DISP1_0, 28, 4), 284 - DIV_A(none, "armclk", "div_arm", DIV_CPU0, 28, 3, "armclk"), 285 - DIV_F(none, "div_mipi1_pre", "div_mipi1", 333 + /* 334 + * NOTE: Following table is sorted by (clock domain, register address, 335 + * bitfield shift) triplet in ascending order. When adding new entries, 336 + * please make sure that the order is kept, to avoid merge conflicts 337 + * and make further work with defined data easier. 338 + */ 339 + 340 + /* 341 + * CMU_CPU 342 + */ 343 + DIV(0, "div_arm", "mout_cpu", DIV_CPU0, 0, 3), 344 + DIV(0, "div_apll", "mout_apll", DIV_CPU0, 24, 3), 345 + DIV_A(0, "div_arm2", "div_arm", DIV_CPU0, 28, 3, "armclk"), 346 + 347 + /* 348 + * CMU_TOP 349 + */ 350 + DIV(0, "div_aclk66", "div_aclk66_pre", DIV_TOP0, 0, 3), 351 + DIV(0, "div_aclk166", "mout_aclk166", DIV_TOP0, 8, 3), 352 + DIV(0, "div_aclk200", "mout_aclk200", DIV_TOP0, 12, 3), 353 + DIV(0, "div_aclk266", "mout_mpll_user", DIV_TOP0, 16, 3), 354 + DIV(0, "div_aclk333", "mout_aclk333", DIV_TOP0, 20, 3), 355 + 356 + DIV(0, "div_aclk66_pre", "mout_mpll_user", DIV_TOP1, 24, 3), 357 + 358 + DIV(0, "div_cam_bayer", "mout_cam_bayer", DIV_GSCL, 12, 4), 359 + DIV(0, "div_cam0", "mout_cam0", DIV_GSCL, 16, 4), 360 + DIV(0, "div_cam1", "mout_cam1", DIV_GSCL, 20, 4), 361 + DIV(0, "div_gscl_wa", "mout_gscl_wa", DIV_GSCL, 24, 4), 362 + DIV(0, "div_gscl_wb", "mout_gscl_wb", DIV_GSCL, 28, 4), 363 + 364 + DIV(0, "div_fimd1", "mout_fimd1", DIV_DISP1_0, 0, 4), 365 + DIV(0, "div_mipi1", "mout_mipi1", DIV_DISP1_0, 16, 4), 366 + DIV_F(0, "div_mipi1_pre", "div_mipi1", 286 367 DIV_DISP1_0, 20, 4, CLK_SET_RATE_PARENT, 0), 287 - DIV_F(none, "div_mmc_pre0", "div_mmc0", 368 + DIV(0, "div_dp", "mout_dp", DIV_DISP1_0, 24, 4), 369 + DIV(CLK_SCLK_PIXEL, "div_hdmi_pixel", "mout_vpll", DIV_DISP1_0, 28, 4), 370 + 371 + DIV(0, "div_jpeg", "mout_jpeg", DIV_GEN, 4, 4), 372 + 373 + DIV(0, "div_audio0", "mout_audio0", DIV_MAU, 0, 4), 374 + DIV(CLK_DIV_PCM0, "div_pcm0", "sclk_audio0", DIV_MAU, 4, 8), 375 + 376 + DIV(0, "div_sata", "mout_sata", DIV_FSYS0, 20, 4), 377 + DIV(0, "div_usb3", "mout_usb3", DIV_FSYS0, 24, 4), 378 + 379 + DIV(0, "div_mmc0", "mout_mmc0", DIV_FSYS1, 0, 4), 380 + DIV_F(0, "div_mmc_pre0", "div_mmc0", 288 381 DIV_FSYS1, 8, 8, CLK_SET_RATE_PARENT, 0), 289 - DIV_F(none, "div_mmc_pre1", "div_mmc1", 382 + DIV(0, "div_mmc1", "mout_mmc1", DIV_FSYS1, 16, 4), 383 + DIV_F(0, "div_mmc_pre1", "div_mmc1", 290 384 DIV_FSYS1, 24, 8, CLK_SET_RATE_PARENT, 0), 291 - DIV_F(none, "div_mmc_pre2", "div_mmc2", 385 + 386 + DIV(0, "div_mmc2", "mout_mmc2", DIV_FSYS2, 0, 4), 387 + DIV_F(0, "div_mmc_pre2", "div_mmc2", 292 388 DIV_FSYS2, 8, 8, CLK_SET_RATE_PARENT, 0), 293 - DIV_F(none, "div_mmc_pre3", "div_mmc3", 389 + DIV(0, "div_mmc3", "mout_mmc3", DIV_FSYS2, 16, 4), 390 + DIV_F(0, "div_mmc_pre3", "div_mmc3", 294 391 DIV_FSYS2, 24, 8, CLK_SET_RATE_PARENT, 0), 295 - DIV_F(none, "div_spi_pre0", "div_spi0", 392 + 393 + DIV(0, "div_uart0", "mout_uart0", DIV_PERIC0, 0, 4), 394 + DIV(0, "div_uart1", "mout_uart1", DIV_PERIC0, 4, 4), 395 + DIV(0, "div_uart2", "mout_uart2", DIV_PERIC0, 8, 4), 396 + DIV(0, "div_uart3", "mout_uart3", DIV_PERIC0, 12, 4), 397 + 398 + DIV(0, "div_spi0", "mout_spi0", DIV_PERIC1, 0, 4), 399 + DIV_F(0, "div_spi_pre0", "div_spi0", 296 400 DIV_PERIC1, 8, 8, CLK_SET_RATE_PARENT, 0), 297 - DIV_F(none, "div_spi_pre1", "div_spi1", 401 + DIV(0, "div_spi1", "mout_spi1", DIV_PERIC1, 16, 4), 402 + DIV_F(0, "div_spi_pre1", "div_spi1", 298 403 DIV_PERIC1, 24, 8, CLK_SET_RATE_PARENT, 0), 299 - DIV_F(none, "div_spi_pre2", "div_spi2", 404 + 405 + DIV(0, "div_spi2", "mout_spi2", DIV_PERIC2, 0, 4), 406 + DIV_F(0, "div_spi_pre2", "div_spi2", 300 407 DIV_PERIC2, 8, 8, CLK_SET_RATE_PARENT, 0), 408 + 409 + DIV(0, "div_pwm", "mout_pwm", DIV_PERIC3, 0, 4), 410 + 411 + DIV(0, "div_audio1", "mout_audio1", DIV_PERIC4, 0, 4), 412 + DIV(0, "div_pcm1", "sclk_audio1", DIV_PERIC4, 4, 8), 413 + DIV(0, "div_audio2", "mout_audio2", DIV_PERIC4, 16, 4), 414 + DIV(0, "div_pcm2", "sclk_audio2", DIV_PERIC4, 20, 8), 415 + 416 + DIV(CLK_DIV_I2S1, "div_i2s1", "sclk_audio1", DIV_PERIC5, 0, 6), 417 + DIV(CLK_DIV_I2S2, "div_i2s2", "sclk_audio2", DIV_PERIC5, 8, 6), 301 418 }; 302 419 303 420 static struct samsung_gate_clock exynos5250_gate_clks[] __initdata = { 304 - GATE(gscl0, "gscl0", "none", GATE_IP_GSCL, 0, 0, 0), 305 - GATE(gscl1, "gscl1", "none", GATE_IP_GSCL, 1, 0, 0), 306 - GATE(gscl2, "gscl2", "aclk266", GATE_IP_GSCL, 2, 0, 0), 307 - GATE(gscl3, "gscl3", "aclk266", GATE_IP_GSCL, 3, 0, 0), 308 - GATE(gscl_wa, "gscl_wa", "div_gscl_wa", GATE_IP_GSCL, 5, 0, 0), 309 - GATE(gscl_wb, "gscl_wb", "div_gscl_wb", GATE_IP_GSCL, 6, 0, 0), 310 - GATE(smmu_gscl0, "smmu_gscl0", "aclk266", GATE_IP_GSCL, 7, 0, 0), 311 - GATE(smmu_gscl1, "smmu_gscl1", "aclk266", GATE_IP_GSCL, 8, 0, 0), 312 - GATE(smmu_gscl2, "smmu_gscl2", "aclk266", GATE_IP_GSCL, 9, 0, 0), 313 - GATE(smmu_gscl3, "smmu_gscl3", "aclk266", GATE_IP_GSCL, 10, 0, 0), 314 - GATE(mfc, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0), 315 - GATE(smmu_mfcl, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0), 316 - GATE(smmu_mfcr, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), 317 - GATE(rotator, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0), 318 - GATE(jpeg, "jpeg", "aclk166", GATE_IP_GEN, 2, 0, 0), 319 - GATE(mdma1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0), 320 - GATE(smmu_rotator, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0), 321 - GATE(smmu_jpeg, "smmu_jpeg", "aclk166", GATE_IP_GEN, 7, 0, 0), 322 - GATE(smmu_mdma1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), 323 - GATE(pdma0, "pdma0", "aclk200", GATE_IP_FSYS, 1, 0, 0), 324 - GATE(pdma1, "pdma1", "aclk200", GATE_IP_FSYS, 2, 0, 0), 325 - GATE(sata, "sata", "aclk200", GATE_IP_FSYS, 6, 0, 0), 326 - GATE(usbotg, "usbotg", "aclk200", GATE_IP_FSYS, 7, 0, 0), 327 - GATE(mipi_hsi, "mipi_hsi", "aclk200", GATE_IP_FSYS, 8, 0, 0), 328 - GATE(sdmmc0, "sdmmc0", "aclk200", GATE_IP_FSYS, 12, 0, 0), 329 - GATE(sdmmc1, "sdmmc1", "aclk200", GATE_IP_FSYS, 13, 0, 0), 330 - GATE(sdmmc2, "sdmmc2", "aclk200", GATE_IP_FSYS, 14, 0, 0), 331 - GATE(sdmmc3, "sdmmc3", "aclk200", GATE_IP_FSYS, 15, 0, 0), 332 - GATE(sromc, "sromc", "aclk200", GATE_IP_FSYS, 17, 0, 0), 333 - GATE(usb2, "usb2", "aclk200", GATE_IP_FSYS, 18, 0, 0), 334 - GATE(usb3, "usb3", "aclk200", GATE_IP_FSYS, 19, 0, 0), 335 - GATE(sata_phyctrl, "sata_phyctrl", "aclk200", GATE_IP_FSYS, 24, 0, 0), 336 - GATE(sata_phyi2c, "sata_phyi2c", "aclk200", GATE_IP_FSYS, 25, 0, 0), 337 - GATE(uart0, "uart0", "aclk66", GATE_IP_PERIC, 0, 0, 0), 338 - GATE(uart1, "uart1", "aclk66", GATE_IP_PERIC, 1, 0, 0), 339 - GATE(uart2, "uart2", "aclk66", GATE_IP_PERIC, 2, 0, 0), 340 - GATE(uart3, "uart3", "aclk66", GATE_IP_PERIC, 3, 0, 0), 341 - GATE(uart4, "uart4", "aclk66", GATE_IP_PERIC, 4, 0, 0), 342 - GATE(i2c0, "i2c0", "aclk66", GATE_IP_PERIC, 6, 0, 0), 343 - GATE(i2c1, "i2c1", "aclk66", GATE_IP_PERIC, 7, 0, 0), 344 - GATE(i2c2, "i2c2", "aclk66", GATE_IP_PERIC, 8, 0, 0), 345 - GATE(i2c3, "i2c3", "aclk66", GATE_IP_PERIC, 9, 0, 0), 346 - GATE(i2c4, "i2c4", "aclk66", GATE_IP_PERIC, 10, 0, 0), 347 - GATE(i2c5, "i2c5", "aclk66", GATE_IP_PERIC, 11, 0, 0), 348 - GATE(i2c6, "i2c6", "aclk66", GATE_IP_PERIC, 12, 0, 0), 349 - GATE(i2c7, "i2c7", "aclk66", GATE_IP_PERIC, 13, 0, 0), 350 - GATE(i2c_hdmi, "i2c_hdmi", "aclk66", GATE_IP_PERIC, 14, 0, 0), 351 - GATE(adc, "adc", "aclk66", GATE_IP_PERIC, 15, 0, 0), 352 - GATE(spi0, "spi0", "aclk66", GATE_IP_PERIC, 16, 0, 0), 353 - GATE(spi1, "spi1", "aclk66", GATE_IP_PERIC, 17, 0, 0), 354 - GATE(spi2, "spi2", "aclk66", GATE_IP_PERIC, 18, 0, 0), 355 - GATE(i2s1, "i2s1", "aclk66", GATE_IP_PERIC, 20, 0, 0), 356 - GATE(i2s2, "i2s2", "aclk66", GATE_IP_PERIC, 21, 0, 0), 357 - GATE(pcm1, "pcm1", "aclk66", GATE_IP_PERIC, 22, 0, 0), 358 - GATE(pcm2, "pcm2", "aclk66", GATE_IP_PERIC, 23, 0, 0), 359 - GATE(pwm, "pwm", "aclk66", GATE_IP_PERIC, 24, 0, 0), 360 - GATE(spdif, "spdif", "aclk66", GATE_IP_PERIC, 26, 0, 0), 361 - GATE(ac97, "ac97", "aclk66", GATE_IP_PERIC, 27, 0, 0), 362 - GATE(hsi2c0, "hsi2c0", "aclk66", GATE_IP_PERIC, 28, 0, 0), 363 - GATE(hsi2c1, "hsi2c1", "aclk66", GATE_IP_PERIC, 29, 0, 0), 364 - GATE(hsi2c2, "hsi2c2", "aclk66", GATE_IP_PERIC, 30, 0, 0), 365 - GATE(hsi2c3, "hsi2c3", "aclk66", GATE_IP_PERIC, 31, 0, 0), 366 - GATE(chipid, "chipid", "aclk66", GATE_IP_PERIS, 0, 0, 0), 367 - GATE(sysreg, "sysreg", "aclk66", GATE_IP_PERIS, 1, 0, 0), 368 - GATE(pmu, "pmu", "aclk66", GATE_IP_PERIS, 2, CLK_IGNORE_UNUSED, 0), 369 - GATE(tzpc0, "tzpc0", "aclk66", GATE_IP_PERIS, 6, 0, 0), 370 - GATE(tzpc1, "tzpc1", "aclk66", GATE_IP_PERIS, 7, 0, 0), 371 - GATE(tzpc2, "tzpc2", "aclk66", GATE_IP_PERIS, 8, 0, 0), 372 - GATE(tzpc3, "tzpc3", "aclk66", GATE_IP_PERIS, 9, 0, 0), 373 - GATE(tzpc4, "tzpc4", "aclk66", GATE_IP_PERIS, 10, 0, 0), 374 - GATE(tzpc5, "tzpc5", "aclk66", GATE_IP_PERIS, 11, 0, 0), 375 - GATE(tzpc6, "tzpc6", "aclk66", GATE_IP_PERIS, 12, 0, 0), 376 - GATE(tzpc7, "tzpc7", "aclk66", GATE_IP_PERIS, 13, 0, 0), 377 - GATE(tzpc8, "tzpc8", "aclk66", GATE_IP_PERIS, 14, 0, 0), 378 - GATE(tzpc9, "tzpc9", "aclk66", GATE_IP_PERIS, 15, 0, 0), 379 - GATE(hdmi_cec, "hdmi_cec", "aclk66", GATE_IP_PERIS, 16, 0, 0), 380 - GATE(mct, "mct", "aclk66", GATE_IP_PERIS, 18, 0, 0), 381 - GATE(wdt, "wdt", "aclk66", GATE_IP_PERIS, 19, 0, 0), 382 - GATE(rtc, "rtc", "aclk66", GATE_IP_PERIS, 20, 0, 0), 383 - GATE(tmu, "tmu", "aclk66", GATE_IP_PERIS, 21, 0, 0), 384 - GATE(cmu_top, "cmu_top", "aclk66", 385 - GATE_IP_PERIS, 3, CLK_IGNORE_UNUSED, 0), 386 - GATE(cmu_core, "cmu_core", "aclk66", 387 - GATE_IP_PERIS, 4, CLK_IGNORE_UNUSED, 0), 388 - GATE(cmu_mem, "cmu_mem", "aclk66", 389 - GATE_IP_PERIS, 5, CLK_IGNORE_UNUSED, 0), 390 - GATE(sclk_cam_bayer, "sclk_cam_bayer", "div_cam_bayer", 421 + /* 422 + * NOTE: Following table is sorted by (clock domain, register address, 423 + * bitfield shift) triplet in ascending order. When adding new entries, 424 + * please make sure that the order is kept, to avoid merge conflicts 425 + * and make further work with defined data easier. 426 + */ 427 + 428 + /* 429 + * CMU_ACP 430 + */ 431 + GATE(CLK_MDMA0, "mdma0", "div_aclk266", GATE_IP_ACP, 1, 0, 0), 432 + GATE(CLK_G2D, "g2d", "div_aclk200", GATE_IP_ACP, 3, 0, 0), 433 + GATE(CLK_SMMU_MDMA0, "smmu_mdma0", "div_aclk266", GATE_IP_ACP, 5, 0, 0), 434 + 435 + /* 436 + * CMU_TOP 437 + */ 438 + GATE(CLK_SCLK_CAM_BAYER, "sclk_cam_bayer", "div_cam_bayer", 391 439 SRC_MASK_GSCL, 12, CLK_SET_RATE_PARENT, 0), 392 - GATE(sclk_cam0, "sclk_cam0", "div_cam0", 440 + GATE(CLK_SCLK_CAM0, "sclk_cam0", "div_cam0", 393 441 SRC_MASK_GSCL, 16, CLK_SET_RATE_PARENT, 0), 394 - GATE(sclk_cam1, "sclk_cam1", "div_cam1", 442 + GATE(CLK_SCLK_CAM1, "sclk_cam1", "div_cam1", 395 443 SRC_MASK_GSCL, 20, CLK_SET_RATE_PARENT, 0), 396 - GATE(sclk_gscl_wa, "sclk_gscl_wa", "div_gscl_wa", 444 + GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "div_gscl_wa", 397 445 SRC_MASK_GSCL, 24, CLK_SET_RATE_PARENT, 0), 398 - GATE(sclk_gscl_wb, "sclk_gscl_wb", "div_gscl_wb", 446 + GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "div_gscl_wb", 399 447 SRC_MASK_GSCL, 28, CLK_SET_RATE_PARENT, 0), 400 - GATE(sclk_fimd1, "sclk_fimd1", "div_fimd1", 448 + 449 + GATE(CLK_SCLK_FIMD1, "sclk_fimd1", "div_fimd1", 401 450 SRC_MASK_DISP1_0, 0, CLK_SET_RATE_PARENT, 0), 402 - GATE(sclk_mipi1, "sclk_mipi1", "div_mipi1", 451 + GATE(CLK_SCLK_MIPI1, "sclk_mipi1", "div_mipi1", 403 452 SRC_MASK_DISP1_0, 12, CLK_SET_RATE_PARENT, 0), 404 - GATE(sclk_dp, "sclk_dp", "div_dp", 453 + GATE(CLK_SCLK_DP, "sclk_dp", "div_dp", 405 454 SRC_MASK_DISP1_0, 16, CLK_SET_RATE_PARENT, 0), 406 - GATE(sclk_hdmi, "sclk_hdmi", "mout_hdmi", 455 + GATE(CLK_SCLK_HDMI, "sclk_hdmi", "mout_hdmi", 407 456 SRC_MASK_DISP1_0, 20, 0, 0), 408 - GATE(sclk_audio0, "sclk_audio0", "div_audio0", 457 + 458 + GATE(CLK_SCLK_AUDIO0, "sclk_audio0", "div_audio0", 409 459 SRC_MASK_MAU, 0, CLK_SET_RATE_PARENT, 0), 410 - GATE(sclk_mmc0, "sclk_mmc0", "div_mmc_pre0", 460 + 461 + GATE(CLK_SCLK_MMC0, "sclk_mmc0", "div_mmc_pre0", 411 462 SRC_MASK_FSYS, 0, CLK_SET_RATE_PARENT, 0), 412 - GATE(sclk_mmc1, "sclk_mmc1", "div_mmc_pre1", 463 + GATE(CLK_SCLK_MMC1, "sclk_mmc1", "div_mmc_pre1", 413 464 SRC_MASK_FSYS, 4, CLK_SET_RATE_PARENT, 0), 414 - GATE(sclk_mmc2, "sclk_mmc2", "div_mmc_pre2", 465 + GATE(CLK_SCLK_MMC2, "sclk_mmc2", "div_mmc_pre2", 415 466 SRC_MASK_FSYS, 8, CLK_SET_RATE_PARENT, 0), 416 - GATE(sclk_mmc3, "sclk_mmc3", "div_mmc_pre3", 467 + GATE(CLK_SCLK_MMC3, "sclk_mmc3", "div_mmc_pre3", 417 468 SRC_MASK_FSYS, 12, CLK_SET_RATE_PARENT, 0), 418 - GATE(sclk_sata, "sclk_sata", "div_sata", 469 + GATE(CLK_SCLK_SATA, "sclk_sata", "div_sata", 419 470 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), 420 - GATE(sclk_usb3, "sclk_usb3", "div_usb3", 471 + GATE(CLK_SCLK_USB3, "sclk_usb3", "div_usb3", 421 472 SRC_MASK_FSYS, 28, CLK_SET_RATE_PARENT, 0), 422 - GATE(sclk_jpeg, "sclk_jpeg", "div_jpeg", 473 + 474 + GATE(CLK_SCLK_JPEG, "sclk_jpeg", "div_jpeg", 423 475 SRC_MASK_GEN, 0, CLK_SET_RATE_PARENT, 0), 424 - GATE(sclk_uart0, "sclk_uart0", "div_uart0", 476 + 477 + GATE(CLK_SCLK_UART0, "sclk_uart0", "div_uart0", 425 478 SRC_MASK_PERIC0, 0, CLK_SET_RATE_PARENT, 0), 426 - GATE(sclk_uart1, "sclk_uart1", "div_uart1", 479 + GATE(CLK_SCLK_UART1, "sclk_uart1", "div_uart1", 427 480 SRC_MASK_PERIC0, 4, CLK_SET_RATE_PARENT, 0), 428 - GATE(sclk_uart2, "sclk_uart2", "div_uart2", 481 + GATE(CLK_SCLK_UART2, "sclk_uart2", "div_uart2", 429 482 SRC_MASK_PERIC0, 8, CLK_SET_RATE_PARENT, 0), 430 - GATE(sclk_uart3, "sclk_uart3", "div_uart3", 483 + GATE(CLK_SCLK_UART3, "sclk_uart3", "div_uart3", 431 484 SRC_MASK_PERIC0, 12, CLK_SET_RATE_PARENT, 0), 432 - GATE(sclk_pwm, "sclk_pwm", "div_pwm", 485 + GATE(CLK_SCLK_PWM, "sclk_pwm", "div_pwm", 433 486 SRC_MASK_PERIC0, 24, CLK_SET_RATE_PARENT, 0), 434 - GATE(sclk_audio1, "sclk_audio1", "div_audio1", 487 + 488 + GATE(CLK_SCLK_AUDIO1, "sclk_audio1", "div_audio1", 435 489 SRC_MASK_PERIC1, 0, CLK_SET_RATE_PARENT, 0), 436 - GATE(sclk_audio2, "sclk_audio2", "div_audio2", 490 + GATE(CLK_SCLK_AUDIO2, "sclk_audio2", "div_audio2", 437 491 SRC_MASK_PERIC1, 4, CLK_SET_RATE_PARENT, 0), 438 - GATE(sclk_spdif, "sclk_spdif", "mout_spdif", 492 + GATE(CLK_SCLK_SPDIF, "sclk_spdif", "mout_spdif", 439 493 SRC_MASK_PERIC1, 4, 0, 0), 440 - GATE(sclk_spi0, "sclk_spi0", "div_spi_pre0", 494 + GATE(CLK_SCLK_SPI0, "sclk_spi0", "div_spi_pre0", 441 495 SRC_MASK_PERIC1, 16, CLK_SET_RATE_PARENT, 0), 442 - GATE(sclk_spi1, "sclk_spi1", "div_spi_pre1", 496 + GATE(CLK_SCLK_SPI1, "sclk_spi1", "div_spi_pre1", 443 497 SRC_MASK_PERIC1, 20, CLK_SET_RATE_PARENT, 0), 444 - GATE(sclk_spi2, "sclk_spi2", "div_spi_pre2", 498 + GATE(CLK_SCLK_SPI2, "sclk_spi2", "div_spi_pre2", 445 499 SRC_MASK_PERIC1, 24, CLK_SET_RATE_PARENT, 0), 446 - GATE(fimd1, "fimd1", "aclk200", GATE_IP_DISP1, 0, 0, 0), 447 - GATE(mie1, "mie1", "aclk200", GATE_IP_DISP1, 1, 0, 0), 448 - GATE(dsim0, "dsim0", "aclk200", GATE_IP_DISP1, 3, 0, 0), 449 - GATE(dp, "dp", "aclk200", GATE_IP_DISP1, 4, 0, 0), 450 - GATE(mixer, "mixer", "mout_aclk200_disp1", GATE_IP_DISP1, 5, 0, 0), 451 - GATE(hdmi, "hdmi", "mout_aclk200_disp1", GATE_IP_DISP1, 6, 0, 0), 452 - GATE(g2d, "g2d", "aclk200", GATE_IP_ACP, 3, 0, 0), 500 + 501 + GATE(CLK_GSCL0, "gscl0", "mout_aclk266_gscl_sub", GATE_IP_GSCL, 0, 0, 502 + 0), 503 + GATE(CLK_GSCL1, "gscl1", "mout_aclk266_gscl_sub", GATE_IP_GSCL, 1, 0, 504 + 0), 505 + GATE(CLK_GSCL2, "gscl2", "mout_aclk266_gscl_sub", GATE_IP_GSCL, 2, 0, 506 + 0), 507 + GATE(CLK_GSCL3, "gscl3", "mout_aclk266_gscl_sub", GATE_IP_GSCL, 3, 0, 508 + 0), 509 + GATE(CLK_GSCL_WA, "gscl_wa", "div_gscl_wa", GATE_IP_GSCL, 5, 0, 0), 510 + GATE(CLK_GSCL_WB, "gscl_wb", "div_gscl_wb", GATE_IP_GSCL, 6, 0, 0), 511 + GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "mout_aclk266_gscl_sub", 512 + GATE_IP_GSCL, 7, 0, 0), 513 + GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "mout_aclk266_gscl_sub", 514 + GATE_IP_GSCL, 8, 0, 0), 515 + GATE(CLK_SMMU_GSCL2, "smmu_gscl2", "mout_aclk266_gscl_sub", 516 + GATE_IP_GSCL, 9, 0, 0), 517 + GATE(CLK_SMMU_GSCL3, "smmu_gscl3", "mout_aclk266_gscl_sub", 518 + GATE_IP_GSCL, 10, 0, 0), 519 + 520 + GATE(CLK_FIMD1, "fimd1", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 0, 0, 521 + 0), 522 + GATE(CLK_MIE1, "mie1", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 1, 0, 523 + 0), 524 + GATE(CLK_DSIM0, "dsim0", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 3, 0, 525 + 0), 526 + GATE(CLK_DP, "dp", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 4, 0, 0), 527 + GATE(CLK_MIXER, "mixer", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 5, 0, 528 + 0), 529 + GATE(CLK_HDMI, "hdmi", "mout_aclk200_disp1_sub", GATE_IP_DISP1, 6, 0, 530 + 0), 531 + 532 + GATE(CLK_MFC, "mfc", "mout_aclk333_sub", GATE_IP_MFC, 0, 0, 0), 533 + GATE(CLK_SMMU_MFCR, "smmu_mfcr", "mout_aclk333_sub", GATE_IP_MFC, 1, 0, 534 + 0), 535 + GATE(CLK_SMMU_MFCL, "smmu_mfcl", "mout_aclk333_sub", GATE_IP_MFC, 2, 0, 536 + 0), 537 + 538 + GATE(CLK_ROTATOR, "rotator", "div_aclk266", GATE_IP_GEN, 1, 0, 0), 539 + GATE(CLK_JPEG, "jpeg", "div_aclk166", GATE_IP_GEN, 2, 0, 0), 540 + GATE(CLK_MDMA1, "mdma1", "div_aclk266", GATE_IP_GEN, 4, 0, 0), 541 + GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "div_aclk266", GATE_IP_GEN, 6, 0, 542 + 0), 543 + GATE(CLK_SMMU_JPEG, "smmu_jpeg", "div_aclk166", GATE_IP_GEN, 7, 0, 0), 544 + GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "div_aclk266", GATE_IP_GEN, 9, 0, 0), 545 + 546 + GATE(CLK_PDMA0, "pdma0", "div_aclk200", GATE_IP_FSYS, 1, 0, 0), 547 + GATE(CLK_PDMA1, "pdma1", "div_aclk200", GATE_IP_FSYS, 2, 0, 0), 548 + GATE(CLK_SATA, "sata", "div_aclk200", GATE_IP_FSYS, 6, 0, 0), 549 + GATE(CLK_USBOTG, "usbotg", "div_aclk200", GATE_IP_FSYS, 7, 0, 0), 550 + GATE(CLK_MIPI_HSI, "mipi_hsi", "div_aclk200", GATE_IP_FSYS, 8, 0, 0), 551 + GATE(CLK_SDMMC0, "sdmmc0", "div_aclk200", GATE_IP_FSYS, 12, 0, 0), 552 + GATE(CLK_SDMMC1, "sdmmc1", "div_aclk200", GATE_IP_FSYS, 13, 0, 0), 553 + GATE(CLK_SDMMC2, "sdmmc2", "div_aclk200", GATE_IP_FSYS, 14, 0, 0), 554 + GATE(CLK_SDMMC3, "sdmmc3", "div_aclk200", GATE_IP_FSYS, 15, 0, 0), 555 + GATE(CLK_SROMC, "sromc", "div_aclk200", GATE_IP_FSYS, 17, 0, 0), 556 + GATE(CLK_USB2, "usb2", "div_aclk200", GATE_IP_FSYS, 18, 0, 0), 557 + GATE(CLK_USB3, "usb3", "div_aclk200", GATE_IP_FSYS, 19, 0, 0), 558 + GATE(CLK_SATA_PHYCTRL, "sata_phyctrl", "div_aclk200", 559 + GATE_IP_FSYS, 24, 0, 0), 560 + GATE(CLK_SATA_PHYI2C, "sata_phyi2c", "div_aclk200", GATE_IP_FSYS, 25, 0, 561 + 0), 562 + 563 + GATE(CLK_UART0, "uart0", "div_aclk66", GATE_IP_PERIC, 0, 0, 0), 564 + GATE(CLK_UART1, "uart1", "div_aclk66", GATE_IP_PERIC, 1, 0, 0), 565 + GATE(CLK_UART2, "uart2", "div_aclk66", GATE_IP_PERIC, 2, 0, 0), 566 + GATE(CLK_UART3, "uart3", "div_aclk66", GATE_IP_PERIC, 3, 0, 0), 567 + GATE(CLK_UART4, "uart4", "div_aclk66", GATE_IP_PERIC, 4, 0, 0), 568 + GATE(CLK_I2C0, "i2c0", "div_aclk66", GATE_IP_PERIC, 6, 0, 0), 569 + GATE(CLK_I2C1, "i2c1", "div_aclk66", GATE_IP_PERIC, 7, 0, 0), 570 + GATE(CLK_I2C2, "i2c2", "div_aclk66", GATE_IP_PERIC, 8, 0, 0), 571 + GATE(CLK_I2C3, "i2c3", "div_aclk66", GATE_IP_PERIC, 9, 0, 0), 572 + GATE(CLK_I2C4, "i2c4", "div_aclk66", GATE_IP_PERIC, 10, 0, 0), 573 + GATE(CLK_I2C5, "i2c5", "div_aclk66", GATE_IP_PERIC, 11, 0, 0), 574 + GATE(CLK_I2C6, "i2c6", "div_aclk66", GATE_IP_PERIC, 12, 0, 0), 575 + GATE(CLK_I2C7, "i2c7", "div_aclk66", GATE_IP_PERIC, 13, 0, 0), 576 + GATE(CLK_I2C_HDMI, "i2c_hdmi", "div_aclk66", GATE_IP_PERIC, 14, 0, 0), 577 + GATE(CLK_ADC, "adc", "div_aclk66", GATE_IP_PERIC, 15, 0, 0), 578 + GATE(CLK_SPI0, "spi0", "div_aclk66", GATE_IP_PERIC, 16, 0, 0), 579 + GATE(CLK_SPI1, "spi1", "div_aclk66", GATE_IP_PERIC, 17, 0, 0), 580 + GATE(CLK_SPI2, "spi2", "div_aclk66", GATE_IP_PERIC, 18, 0, 0), 581 + GATE(CLK_I2S1, "i2s1", "div_aclk66", GATE_IP_PERIC, 20, 0, 0), 582 + GATE(CLK_I2S2, "i2s2", "div_aclk66", GATE_IP_PERIC, 21, 0, 0), 583 + GATE(CLK_PCM1, "pcm1", "div_aclk66", GATE_IP_PERIC, 22, 0, 0), 584 + GATE(CLK_PCM2, "pcm2", "div_aclk66", GATE_IP_PERIC, 23, 0, 0), 585 + GATE(CLK_PWM, "pwm", "div_aclk66", GATE_IP_PERIC, 24, 0, 0), 586 + GATE(CLK_SPDIF, "spdif", "div_aclk66", GATE_IP_PERIC, 26, 0, 0), 587 + GATE(CLK_AC97, "ac97", "div_aclk66", GATE_IP_PERIC, 27, 0, 0), 588 + GATE(CLK_HSI2C0, "hsi2c0", "div_aclk66", GATE_IP_PERIC, 28, 0, 0), 589 + GATE(CLK_HSI2C1, "hsi2c1", "div_aclk66", GATE_IP_PERIC, 29, 0, 0), 590 + GATE(CLK_HSI2C2, "hsi2c2", "div_aclk66", GATE_IP_PERIC, 30, 0, 0), 591 + GATE(CLK_HSI2C3, "hsi2c3", "div_aclk66", GATE_IP_PERIC, 31, 0, 0), 592 + 593 + GATE(CLK_CHIPID, "chipid", "div_aclk66", GATE_IP_PERIS, 0, 0, 0), 594 + GATE(CLK_SYSREG, "sysreg", "div_aclk66", 595 + GATE_IP_PERIS, 1, CLK_IGNORE_UNUSED, 0), 596 + GATE(CLK_PMU, "pmu", "div_aclk66", GATE_IP_PERIS, 2, CLK_IGNORE_UNUSED, 597 + 0), 598 + GATE(CLK_CMU_TOP, "cmu_top", "div_aclk66", 599 + GATE_IP_PERIS, 3, CLK_IGNORE_UNUSED, 0), 600 + GATE(CLK_CMU_CORE, "cmu_core", "div_aclk66", 601 + GATE_IP_PERIS, 4, CLK_IGNORE_UNUSED, 0), 602 + GATE(CLK_CMU_MEM, "cmu_mem", "div_aclk66", 603 + GATE_IP_PERIS, 5, CLK_IGNORE_UNUSED, 0), 604 + GATE(CLK_TZPC0, "tzpc0", "div_aclk66", GATE_IP_PERIS, 6, 0, 0), 605 + GATE(CLK_TZPC1, "tzpc1", "div_aclk66", GATE_IP_PERIS, 7, 0, 0), 606 + GATE(CLK_TZPC2, "tzpc2", "div_aclk66", GATE_IP_PERIS, 8, 0, 0), 607 + GATE(CLK_TZPC3, "tzpc3", "div_aclk66", GATE_IP_PERIS, 9, 0, 0), 608 + GATE(CLK_TZPC4, "tzpc4", "div_aclk66", GATE_IP_PERIS, 10, 0, 0), 609 + GATE(CLK_TZPC5, "tzpc5", "div_aclk66", GATE_IP_PERIS, 11, 0, 0), 610 + GATE(CLK_TZPC6, "tzpc6", "div_aclk66", GATE_IP_PERIS, 12, 0, 0), 611 + GATE(CLK_TZPC7, "tzpc7", "div_aclk66", GATE_IP_PERIS, 13, 0, 0), 612 + GATE(CLK_TZPC8, "tzpc8", "div_aclk66", GATE_IP_PERIS, 14, 0, 0), 613 + GATE(CLK_TZPC9, "tzpc9", "div_aclk66", GATE_IP_PERIS, 15, 0, 0), 614 + GATE(CLK_HDMI_CEC, "hdmi_cec", "div_aclk66", GATE_IP_PERIS, 16, 0, 0), 615 + GATE(CLK_MCT, "mct", "div_aclk66", GATE_IP_PERIS, 18, 0, 0), 616 + GATE(CLK_WDT, "wdt", "div_aclk66", GATE_IP_PERIS, 19, 0, 0), 617 + GATE(CLK_RTC, "rtc", "div_aclk66", GATE_IP_PERIS, 20, 0, 0), 618 + GATE(CLK_TMU, "tmu", "div_aclk66", GATE_IP_PERIS, 21, 0, 0), 453 619 }; 454 620 455 621 static struct samsung_pll_rate_table vpll_24mhz_tbl[] __initdata = { ··· 599 517 { }, 600 518 }; 601 519 520 + static struct samsung_pll_rate_table apll_24mhz_tbl[] __initdata = { 521 + /* sorted in descending order */ 522 + /* PLL_35XX_RATE(rate, m, p, s) */ 523 + PLL_35XX_RATE(1700000000, 425, 6, 0), 524 + PLL_35XX_RATE(1600000000, 200, 3, 0), 525 + PLL_35XX_RATE(1500000000, 250, 4, 0), 526 + PLL_35XX_RATE(1400000000, 175, 3, 0), 527 + PLL_35XX_RATE(1300000000, 325, 6, 0), 528 + PLL_35XX_RATE(1200000000, 200, 4, 0), 529 + PLL_35XX_RATE(1100000000, 275, 6, 0), 530 + PLL_35XX_RATE(1000000000, 125, 3, 0), 531 + PLL_35XX_RATE(900000000, 150, 4, 0), 532 + PLL_35XX_RATE(800000000, 100, 3, 0), 533 + PLL_35XX_RATE(700000000, 175, 3, 1), 534 + PLL_35XX_RATE(600000000, 200, 4, 1), 535 + PLL_35XX_RATE(500000000, 125, 3, 1), 536 + PLL_35XX_RATE(400000000, 100, 3, 1), 537 + PLL_35XX_RATE(300000000, 200, 4, 2), 538 + PLL_35XX_RATE(200000000, 100, 3, 2), 539 + }; 540 + 602 541 static struct samsung_pll_clock exynos5250_plls[nr_plls] __initdata = { 603 - [apll] = PLL_A(pll_35xx, fout_apll, "fout_apll", "fin_pll", APLL_LOCK, 604 - APLL_CON0, "fout_apll", NULL), 605 - [mpll] = PLL_A(pll_35xx, fout_mpll, "fout_mpll", "fin_pll", MPLL_LOCK, 606 - MPLL_CON0, "fout_mpll", NULL), 607 - [bpll] = PLL(pll_35xx, fout_bpll, "fout_bpll", "fin_pll", BPLL_LOCK, 542 + [apll] = PLL_A(pll_35xx, CLK_FOUT_APLL, "fout_apll", "fin_pll", 543 + APLL_LOCK, APLL_CON0, "fout_apll", NULL), 544 + [mpll] = PLL_A(pll_35xx, CLK_FOUT_MPLL, "fout_mpll", "fin_pll", 545 + MPLL_LOCK, MPLL_CON0, "fout_mpll", NULL), 546 + [bpll] = PLL(pll_35xx, CLK_FOUT_BPLL, "fout_bpll", "fin_pll", BPLL_LOCK, 608 547 BPLL_CON0, NULL), 609 - [gpll] = PLL(pll_35xx, fout_gpll, "fout_gpll", "fin_pll", GPLL_LOCK, 548 + [gpll] = PLL(pll_35xx, CLK_FOUT_GPLL, "fout_gpll", "fin_pll", GPLL_LOCK, 610 549 GPLL_CON0, NULL), 611 - [cpll] = PLL(pll_35xx, fout_cpll, "fout_cpll", "fin_pll", CPLL_LOCK, 550 + [cpll] = PLL(pll_35xx, CLK_FOUT_CPLL, "fout_cpll", "fin_pll", CPLL_LOCK, 612 551 CPLL_CON0, NULL), 613 - [epll] = PLL(pll_36xx, fout_epll, "fout_epll", "fin_pll", EPLL_LOCK, 552 + [epll] = PLL(pll_36xx, CLK_FOUT_EPLL, "fout_epll", "fin_pll", EPLL_LOCK, 614 553 EPLL_CON0, NULL), 615 - [vpll] = PLL(pll_36xx, fout_vpll, "fout_vpll", "mout_vpllsrc", 554 + [vpll] = PLL(pll_36xx, CLK_FOUT_VPLL, "fout_vpll", "mout_vpllsrc", 616 555 VPLL_LOCK, VPLL_CON0, NULL), 617 556 }; 618 557 ··· 655 552 panic("%s: unable to determine soc\n", __func__); 656 553 } 657 554 658 - samsung_clk_init(np, reg_base, nr_clks, 555 + samsung_clk_init(np, reg_base, CLK_NR_CLKS, 659 556 exynos5250_clk_regs, ARRAY_SIZE(exynos5250_clk_regs), 660 557 NULL, 0); 661 558 samsung_clk_of_register_fixed_ext(exynos5250_fixed_rate_ext_clks, ··· 664 561 samsung_clk_register_mux(exynos5250_pll_pmux_clks, 665 562 ARRAY_SIZE(exynos5250_pll_pmux_clks)); 666 563 667 - if (_get_rate("fin_pll") == 24 * MHZ) 564 + if (_get_rate("fin_pll") == 24 * MHZ) { 668 565 exynos5250_plls[epll].rate_table = epll_24mhz_tbl; 566 + exynos5250_plls[apll].rate_table = apll_24mhz_tbl; 567 + } 669 568 670 569 if (_get_rate("mout_vpllsrc") == 24 * MHZ) 671 570 exynos5250_plls[vpll].rate_table = vpll_24mhz_tbl; ··· 686 581 ARRAY_SIZE(exynos5250_gate_clks)); 687 582 688 583 pr_info("Exynos5250: clock setup completed, armclk=%ld\n", 689 - _get_rate("armclk")); 584 + _get_rate("div_arm2")); 690 585 } 691 586 CLK_OF_DECLARE(exynos5250_clk, "samsung,exynos5250-clock", exynos5250_clk_init);
+293 -323
drivers/clk/samsung/clk-exynos5420.c
··· 10 10 * Common Clock Framework support for Exynos5420 SoC. 11 11 */ 12 12 13 + #include <dt-bindings/clock/exynos5420.h> 13 14 #include <linux/clk.h> 14 15 #include <linux/clkdev.h> 15 16 #include <linux/clk-provider.h> ··· 106 105 apll, cpll, dpll, epll, rpll, ipll, spll, vpll, mpll, 107 106 bpll, kpll, 108 107 nr_plls /* number of PLLs */ 109 - }; 110 - 111 - enum exynos5420_clks { 112 - none, 113 - 114 - /* core clocks */ 115 - fin_pll, fout_apll, fout_cpll, fout_dpll, fout_epll, fout_rpll, 116 - fout_ipll, fout_spll, fout_vpll, fout_mpll, fout_bpll, fout_kpll, 117 - 118 - /* gate for special clocks (sclk) */ 119 - sclk_uart0 = 128, sclk_uart1, sclk_uart2, sclk_uart3, sclk_mmc0, 120 - sclk_mmc1, sclk_mmc2, sclk_spi0, sclk_spi1, sclk_spi2, sclk_i2s1, 121 - sclk_i2s2, sclk_pcm1, sclk_pcm2, sclk_spdif, sclk_hdmi, sclk_pixel, 122 - sclk_dp1, sclk_mipi1, sclk_fimd1, sclk_maudio0, sclk_maupcm0, 123 - sclk_usbd300, sclk_usbd301, sclk_usbphy300, sclk_usbphy301, sclk_unipro, 124 - sclk_pwm, sclk_gscl_wa, sclk_gscl_wb, sclk_hdmiphy, 125 - 126 - /* gate clocks */ 127 - aclk66_peric = 256, uart0, uart1, uart2, uart3, i2c0, i2c1, i2c2, i2c3, 128 - i2c4, i2c5, i2c6, i2c7, i2c_hdmi, tsadc, spi0, spi1, spi2, keyif, i2s1, 129 - i2s2, pcm1, pcm2, pwm, spdif, i2c8, i2c9, i2c10, aclk66_psgen = 300, 130 - chipid, sysreg, tzpc0, tzpc1, tzpc2, tzpc3, tzpc4, tzpc5, tzpc6, tzpc7, 131 - tzpc8, tzpc9, hdmi_cec, seckey, mct, wdt, rtc, tmu, tmu_gpu, 132 - pclk66_gpio = 330, aclk200_fsys2 = 350, mmc0, mmc1, mmc2, sromc, ufs, 133 - aclk200_fsys = 360, tsi, pdma0, pdma1, rtic, usbh20, usbd300, usbd301, 134 - aclk400_mscl = 380, mscl0, mscl1, mscl2, smmu_mscl0, smmu_mscl1, 135 - smmu_mscl2, aclk333 = 400, mfc, smmu_mfcl, smmu_mfcr, 136 - aclk200_disp1 = 410, dsim1, dp1, hdmi, aclk300_disp1 = 420, fimd1, 137 - smmu_fimd1, aclk166 = 430, mixer, aclk266 = 440, rotator, mdma1, 138 - smmu_rotator, smmu_mdma1, aclk300_jpeg = 450, jpeg, jpeg2, smmu_jpeg, 139 - aclk300_gscl = 460, smmu_gscl0, smmu_gscl1, gscl_wa, gscl_wb, gscl0, 140 - gscl1, clk_3aa, aclk266_g2d = 470, sss, slim_sss, mdma0, 141 - aclk333_g2d = 480, g2d, aclk333_432_gscl = 490, smmu_3aa, smmu_fimcl0, 142 - smmu_fimcl1, smmu_fimcl3, fimc_lite3, aclk_g3d = 500, g3d, smmu_mixer, 143 - 144 - /* mux clocks */ 145 - mout_hdmi = 640, 146 - 147 - /* divider clocks */ 148 - dout_pixel = 768, 149 - 150 - nr_clks, 151 108 }; 152 109 153 110 /* ··· 257 298 258 299 /* fixed rate clocks generated outside the soc */ 259 300 static struct samsung_fixed_rate_clock exynos5420_fixed_rate_ext_clks[] __initdata = { 260 - FRATE(fin_pll, "fin_pll", NULL, CLK_IS_ROOT, 0), 301 + FRATE(CLK_FIN_PLL, "fin_pll", NULL, CLK_IS_ROOT, 0), 261 302 }; 262 303 263 304 /* fixed rate clocks generated inside the soc */ 264 305 static struct samsung_fixed_rate_clock exynos5420_fixed_rate_clks[] __initdata = { 265 - FRATE(sclk_hdmiphy, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000), 266 - FRATE(none, "sclk_pwi", NULL, CLK_IS_ROOT, 24000000), 267 - FRATE(none, "sclk_usbh20", NULL, CLK_IS_ROOT, 48000000), 268 - FRATE(none, "mphy_refclk_ixtal24", NULL, CLK_IS_ROOT, 48000000), 269 - FRATE(none, "sclk_usbh20_scan_clk", NULL, CLK_IS_ROOT, 480000000), 306 + FRATE(CLK_SCLK_HDMIPHY, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000), 307 + FRATE(0, "sclk_pwi", NULL, CLK_IS_ROOT, 24000000), 308 + FRATE(0, "sclk_usbh20", NULL, CLK_IS_ROOT, 48000000), 309 + FRATE(0, "mphy_refclk_ixtal24", NULL, CLK_IS_ROOT, 48000000), 310 + FRATE(0, "sclk_usbh20_scan_clk", NULL, CLK_IS_ROOT, 480000000), 270 311 }; 271 312 272 313 static struct samsung_fixed_factor_clock exynos5420_fixed_factor_clks[] __initdata = { 273 - FFACTOR(none, "sclk_hsic_12m", "fin_pll", 1, 2, 0), 314 + FFACTOR(0, "sclk_hsic_12m", "fin_pll", 1, 2, 0), 274 315 }; 275 316 276 317 static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { 277 - MUX(none, "mout_mspll_kfc", mspll_cpu_p, SRC_TOP7, 8, 2), 278 - MUX(none, "mout_mspll_cpu", mspll_cpu_p, SRC_TOP7, 12, 2), 279 - MUX(none, "mout_apll", apll_p, SRC_CPU, 0, 1), 280 - MUX(none, "mout_cpu", cpu_p, SRC_CPU, 16, 1), 281 - MUX(none, "mout_kpll", kpll_p, SRC_KFC, 0, 1), 282 - MUX(none, "mout_cpu_kfc", kfc_p, SRC_KFC, 16, 1), 318 + MUX(0, "mout_mspll_kfc", mspll_cpu_p, SRC_TOP7, 8, 2), 319 + MUX(0, "mout_mspll_cpu", mspll_cpu_p, SRC_TOP7, 12, 2), 320 + MUX(0, "mout_apll", apll_p, SRC_CPU, 0, 1), 321 + MUX(0, "mout_cpu", cpu_p, SRC_CPU, 16, 1), 322 + MUX(0, "mout_kpll", kpll_p, SRC_KFC, 0, 1), 323 + MUX(0, "mout_cpu_kfc", kfc_p, SRC_KFC, 16, 1), 283 324 284 - MUX(none, "sclk_bpll", bpll_p, SRC_CDREX, 0, 1), 325 + MUX(0, "sclk_bpll", bpll_p, SRC_CDREX, 0, 1), 285 326 286 - MUX_A(none, "mout_aclk400_mscl", group1_p, 327 + MUX_A(0, "mout_aclk400_mscl", group1_p, 287 328 SRC_TOP0, 4, 2, "aclk400_mscl"), 288 - MUX(none, "mout_aclk200", group1_p, SRC_TOP0, 8, 2), 289 - MUX(none, "mout_aclk200_fsys2", group1_p, SRC_TOP0, 12, 2), 290 - MUX(none, "mout_aclk200_fsys", group1_p, SRC_TOP0, 28, 2), 329 + MUX(0, "mout_aclk200", group1_p, SRC_TOP0, 8, 2), 330 + MUX(0, "mout_aclk200_fsys2", group1_p, SRC_TOP0, 12, 2), 331 + MUX(0, "mout_aclk200_fsys", group1_p, SRC_TOP0, 28, 2), 291 332 292 - MUX(none, "mout_aclk333_432_gscl", group4_p, SRC_TOP1, 0, 2), 293 - MUX(none, "mout_aclk66", group1_p, SRC_TOP1, 8, 2), 294 - MUX(none, "mout_aclk266", group1_p, SRC_TOP1, 20, 2), 295 - MUX(none, "mout_aclk166", group1_p, SRC_TOP1, 24, 2), 296 - MUX(none, "mout_aclk333", group1_p, SRC_TOP1, 28, 2), 333 + MUX(0, "mout_aclk333_432_gscl", group4_p, SRC_TOP1, 0, 2), 334 + MUX(0, "mout_aclk66", group1_p, SRC_TOP1, 8, 2), 335 + MUX(0, "mout_aclk266", group1_p, SRC_TOP1, 20, 2), 336 + MUX(0, "mout_aclk166", group1_p, SRC_TOP1, 24, 2), 337 + MUX(0, "mout_aclk333", group1_p, SRC_TOP1, 28, 2), 297 338 298 - MUX(none, "mout_aclk333_g2d", group1_p, SRC_TOP2, 8, 2), 299 - MUX(none, "mout_aclk266_g2d", group1_p, SRC_TOP2, 12, 2), 300 - MUX(none, "mout_aclk_g3d", group5_p, SRC_TOP2, 16, 1), 301 - MUX(none, "mout_aclk300_jpeg", group1_p, SRC_TOP2, 20, 2), 302 - MUX(none, "mout_aclk300_disp1", group1_p, SRC_TOP2, 24, 2), 303 - MUX(none, "mout_aclk300_gscl", group1_p, SRC_TOP2, 28, 2), 339 + MUX(0, "mout_aclk333_g2d", group1_p, SRC_TOP2, 8, 2), 340 + MUX(0, "mout_aclk266_g2d", group1_p, SRC_TOP2, 12, 2), 341 + MUX(0, "mout_aclk_g3d", group5_p, SRC_TOP2, 16, 1), 342 + MUX(0, "mout_aclk300_jpeg", group1_p, SRC_TOP2, 20, 2), 343 + MUX(0, "mout_aclk300_disp1", group1_p, SRC_TOP2, 24, 2), 344 + MUX(0, "mout_aclk300_gscl", group1_p, SRC_TOP2, 28, 2), 304 345 305 - MUX(none, "mout_user_aclk400_mscl", user_aclk400_mscl_p, 346 + MUX(0, "mout_user_aclk400_mscl", user_aclk400_mscl_p, 306 347 SRC_TOP3, 4, 1), 307 - MUX_A(none, "mout_aclk200_disp1", aclk200_disp1_p, 348 + MUX_A(0, "mout_aclk200_disp1", aclk200_disp1_p, 308 349 SRC_TOP3, 8, 1, "aclk200_disp1"), 309 - MUX(none, "mout_user_aclk200_fsys2", user_aclk200_fsys2_p, 350 + MUX(0, "mout_user_aclk200_fsys2", user_aclk200_fsys2_p, 310 351 SRC_TOP3, 12, 1), 311 - MUX(none, "mout_user_aclk200_fsys", user_aclk200_fsys_p, 352 + MUX(0, "mout_user_aclk200_fsys", user_aclk200_fsys_p, 312 353 SRC_TOP3, 28, 1), 313 354 314 - MUX(none, "mout_user_aclk333_432_gscl", user_aclk333_432_gscl_p, 355 + MUX(0, "mout_user_aclk333_432_gscl", user_aclk333_432_gscl_p, 315 356 SRC_TOP4, 0, 1), 316 - MUX(none, "mout_aclk66_peric", aclk66_peric_p, SRC_TOP4, 8, 1), 317 - MUX(none, "mout_user_aclk266", user_aclk266_p, SRC_TOP4, 20, 1), 318 - MUX(none, "mout_user_aclk166", user_aclk166_p, SRC_TOP4, 24, 1), 319 - MUX(none, "mout_user_aclk333", user_aclk333_p, SRC_TOP4, 28, 1), 357 + MUX(0, "mout_aclk66_peric", aclk66_peric_p, SRC_TOP4, 8, 1), 358 + MUX(0, "mout_user_aclk266", user_aclk266_p, SRC_TOP4, 20, 1), 359 + MUX(0, "mout_user_aclk166", user_aclk166_p, SRC_TOP4, 24, 1), 360 + MUX(0, "mout_user_aclk333", user_aclk333_p, SRC_TOP4, 28, 1), 320 361 321 - MUX(none, "mout_aclk66_psgen", aclk66_peric_p, SRC_TOP5, 4, 1), 322 - MUX(none, "mout_user_aclk333_g2d", user_aclk333_g2d_p, SRC_TOP5, 8, 1), 323 - MUX(none, "mout_user_aclk266_g2d", user_aclk266_g2d_p, SRC_TOP5, 12, 1), 324 - MUX_A(none, "mout_user_aclk_g3d", user_aclk_g3d_p, 362 + MUX(0, "mout_aclk66_psgen", aclk66_peric_p, SRC_TOP5, 4, 1), 363 + MUX(0, "mout_user_aclk333_g2d", user_aclk333_g2d_p, SRC_TOP5, 8, 1), 364 + MUX(0, "mout_user_aclk266_g2d", user_aclk266_g2d_p, SRC_TOP5, 12, 1), 365 + MUX_A(0, "mout_user_aclk_g3d", user_aclk_g3d_p, 325 366 SRC_TOP5, 16, 1, "aclkg3d"), 326 - MUX(none, "mout_user_aclk300_jpeg", user_aclk300_jpeg_p, 367 + MUX(0, "mout_user_aclk300_jpeg", user_aclk300_jpeg_p, 327 368 SRC_TOP5, 20, 1), 328 - MUX(none, "mout_user_aclk300_disp1", user_aclk300_disp1_p, 369 + MUX(0, "mout_user_aclk300_disp1", user_aclk300_disp1_p, 329 370 SRC_TOP5, 24, 1), 330 - MUX(none, "mout_user_aclk300_gscl", user_aclk300_gscl_p, 371 + MUX(0, "mout_user_aclk300_gscl", user_aclk300_gscl_p, 331 372 SRC_TOP5, 28, 1), 332 373 333 - MUX(none, "sclk_mpll", mpll_p, SRC_TOP6, 0, 1), 334 - MUX(none, "sclk_vpll", vpll_p, SRC_TOP6, 4, 1), 335 - MUX(none, "sclk_spll", spll_p, SRC_TOP6, 8, 1), 336 - MUX(none, "sclk_ipll", ipll_p, SRC_TOP6, 12, 1), 337 - MUX(none, "sclk_rpll", rpll_p, SRC_TOP6, 16, 1), 338 - MUX(none, "sclk_epll", epll_p, SRC_TOP6, 20, 1), 339 - MUX(none, "sclk_dpll", dpll_p, SRC_TOP6, 24, 1), 340 - MUX(none, "sclk_cpll", cpll_p, SRC_TOP6, 28, 1), 374 + MUX(0, "sclk_mpll", mpll_p, SRC_TOP6, 0, 1), 375 + MUX(0, "sclk_vpll", vpll_p, SRC_TOP6, 4, 1), 376 + MUX(0, "sclk_spll", spll_p, SRC_TOP6, 8, 1), 377 + MUX(0, "sclk_ipll", ipll_p, SRC_TOP6, 12, 1), 378 + MUX(0, "sclk_rpll", rpll_p, SRC_TOP6, 16, 1), 379 + MUX(0, "sclk_epll", epll_p, SRC_TOP6, 20, 1), 380 + MUX(0, "sclk_dpll", dpll_p, SRC_TOP6, 24, 1), 381 + MUX(0, "sclk_cpll", cpll_p, SRC_TOP6, 28, 1), 341 382 342 - MUX(none, "mout_sw_aclk400_mscl", sw_aclk400_mscl_p, SRC_TOP10, 4, 1), 343 - MUX(none, "mout_sw_aclk200", sw_aclk200_p, SRC_TOP10, 8, 1), 344 - MUX(none, "mout_sw_aclk200_fsys2", sw_aclk200_fsys2_p, 383 + MUX(0, "mout_sw_aclk400_mscl", sw_aclk400_mscl_p, SRC_TOP10, 4, 1), 384 + MUX(0, "mout_sw_aclk200", sw_aclk200_p, SRC_TOP10, 8, 1), 385 + MUX(0, "mout_sw_aclk200_fsys2", sw_aclk200_fsys2_p, 345 386 SRC_TOP10, 12, 1), 346 - MUX(none, "mout_sw_aclk200_fsys", sw_aclk200_fsys_p, SRC_TOP10, 28, 1), 387 + MUX(0, "mout_sw_aclk200_fsys", sw_aclk200_fsys_p, SRC_TOP10, 28, 1), 347 388 348 - MUX(none, "mout_sw_aclk333_432_gscl", sw_aclk333_432_gscl_p, 389 + MUX(0, "mout_sw_aclk333_432_gscl", sw_aclk333_432_gscl_p, 349 390 SRC_TOP11, 0, 1), 350 - MUX(none, "mout_sw_aclk66", sw_aclk66_p, SRC_TOP11, 8, 1), 351 - MUX(none, "mout_sw_aclk266", sw_aclk266_p, SRC_TOP11, 20, 1), 352 - MUX(none, "mout_sw_aclk166", sw_aclk166_p, SRC_TOP11, 24, 1), 353 - MUX(none, "mout_sw_aclk333", sw_aclk333_p, SRC_TOP11, 28, 1), 391 + MUX(0, "mout_sw_aclk66", sw_aclk66_p, SRC_TOP11, 8, 1), 392 + MUX(0, "mout_sw_aclk266", sw_aclk266_p, SRC_TOP11, 20, 1), 393 + MUX(0, "mout_sw_aclk166", sw_aclk166_p, SRC_TOP11, 24, 1), 394 + MUX(0, "mout_sw_aclk333", sw_aclk333_p, SRC_TOP11, 28, 1), 354 395 355 - MUX(none, "mout_sw_aclk333_g2d", sw_aclk333_g2d_p, SRC_TOP12, 8, 1), 356 - MUX(none, "mout_sw_aclk266_g2d", sw_aclk266_g2d_p, SRC_TOP12, 12, 1), 357 - MUX(none, "mout_sw_aclk_g3d", sw_aclk_g3d_p, SRC_TOP12, 16, 1), 358 - MUX(none, "mout_sw_aclk300_jpeg", sw_aclk300_jpeg_p, SRC_TOP12, 20, 1), 359 - MUX(none, "mout_sw_aclk300_disp1", sw_aclk300_disp1_p, 396 + MUX(0, "mout_sw_aclk333_g2d", sw_aclk333_g2d_p, SRC_TOP12, 8, 1), 397 + MUX(0, "mout_sw_aclk266_g2d", sw_aclk266_g2d_p, SRC_TOP12, 12, 1), 398 + MUX(0, "mout_sw_aclk_g3d", sw_aclk_g3d_p, SRC_TOP12, 16, 1), 399 + MUX(0, "mout_sw_aclk300_jpeg", sw_aclk300_jpeg_p, SRC_TOP12, 20, 1), 400 + MUX(0, "mout_sw_aclk300_disp1", sw_aclk300_disp1_p, 360 401 SRC_TOP12, 24, 1), 361 - MUX(none, "mout_sw_aclk300_gscl", sw_aclk300_gscl_p, SRC_TOP12, 28, 1), 402 + MUX(0, "mout_sw_aclk300_gscl", sw_aclk300_gscl_p, SRC_TOP12, 28, 1), 362 403 363 404 /* DISP1 Block */ 364 - MUX(none, "mout_fimd1", group3_p, SRC_DISP10, 4, 1), 365 - MUX(none, "mout_mipi1", group2_p, SRC_DISP10, 16, 3), 366 - MUX(none, "mout_dp1", group2_p, SRC_DISP10, 20, 3), 367 - MUX(none, "mout_pixel", group2_p, SRC_DISP10, 24, 3), 368 - MUX(mout_hdmi, "mout_hdmi", hdmi_p, SRC_DISP10, 28, 1), 405 + MUX(0, "mout_fimd1", group3_p, SRC_DISP10, 4, 1), 406 + MUX(0, "mout_mipi1", group2_p, SRC_DISP10, 16, 3), 407 + MUX(0, "mout_dp1", group2_p, SRC_DISP10, 20, 3), 408 + MUX(0, "mout_pixel", group2_p, SRC_DISP10, 24, 3), 409 + MUX(CLK_MOUT_HDMI, "mout_hdmi", hdmi_p, SRC_DISP10, 28, 1), 369 410 370 411 /* MAU Block */ 371 - MUX(none, "mout_maudio0", maudio0_p, SRC_MAU, 28, 3), 412 + MUX(0, "mout_maudio0", maudio0_p, SRC_MAU, 28, 3), 372 413 373 414 /* FSYS Block */ 374 - MUX(none, "mout_usbd301", group2_p, SRC_FSYS, 4, 3), 375 - MUX(none, "mout_mmc0", group2_p, SRC_FSYS, 8, 3), 376 - MUX(none, "mout_mmc1", group2_p, SRC_FSYS, 12, 3), 377 - MUX(none, "mout_mmc2", group2_p, SRC_FSYS, 16, 3), 378 - MUX(none, "mout_usbd300", group2_p, SRC_FSYS, 20, 3), 379 - MUX(none, "mout_unipro", group2_p, SRC_FSYS, 24, 3), 415 + MUX(0, "mout_usbd301", group2_p, SRC_FSYS, 4, 3), 416 + MUX(0, "mout_mmc0", group2_p, SRC_FSYS, 8, 3), 417 + MUX(0, "mout_mmc1", group2_p, SRC_FSYS, 12, 3), 418 + MUX(0, "mout_mmc2", group2_p, SRC_FSYS, 16, 3), 419 + MUX(0, "mout_usbd300", group2_p, SRC_FSYS, 20, 3), 420 + MUX(0, "mout_unipro", group2_p, SRC_FSYS, 24, 3), 380 421 381 422 /* PERIC Block */ 382 - MUX(none, "mout_uart0", group2_p, SRC_PERIC0, 4, 3), 383 - MUX(none, "mout_uart1", group2_p, SRC_PERIC0, 8, 3), 384 - MUX(none, "mout_uart2", group2_p, SRC_PERIC0, 12, 3), 385 - MUX(none, "mout_uart3", group2_p, SRC_PERIC0, 16, 3), 386 - MUX(none, "mout_pwm", group2_p, SRC_PERIC0, 24, 3), 387 - MUX(none, "mout_spdif", spdif_p, SRC_PERIC0, 28, 3), 388 - MUX(none, "mout_audio0", audio0_p, SRC_PERIC1, 8, 3), 389 - MUX(none, "mout_audio1", audio1_p, SRC_PERIC1, 12, 3), 390 - MUX(none, "mout_audio2", audio2_p, SRC_PERIC1, 16, 3), 391 - MUX(none, "mout_spi0", group2_p, SRC_PERIC1, 20, 3), 392 - MUX(none, "mout_spi1", group2_p, SRC_PERIC1, 24, 3), 393 - MUX(none, "mout_spi2", group2_p, SRC_PERIC1, 28, 3), 423 + MUX(0, "mout_uart0", group2_p, SRC_PERIC0, 4, 3), 424 + MUX(0, "mout_uart1", group2_p, SRC_PERIC0, 8, 3), 425 + MUX(0, "mout_uart2", group2_p, SRC_PERIC0, 12, 3), 426 + MUX(0, "mout_uart3", group2_p, SRC_PERIC0, 16, 3), 427 + MUX(0, "mout_pwm", group2_p, SRC_PERIC0, 24, 3), 428 + MUX(0, "mout_spdif", spdif_p, SRC_PERIC0, 28, 3), 429 + MUX(0, "mout_audio0", audio0_p, SRC_PERIC1, 8, 3), 430 + MUX(0, "mout_audio1", audio1_p, SRC_PERIC1, 12, 3), 431 + MUX(0, "mout_audio2", audio2_p, SRC_PERIC1, 16, 3), 432 + MUX(0, "mout_spi0", group2_p, SRC_PERIC1, 20, 3), 433 + MUX(0, "mout_spi1", group2_p, SRC_PERIC1, 24, 3), 434 + MUX(0, "mout_spi2", group2_p, SRC_PERIC1, 28, 3), 394 435 }; 395 436 396 437 static struct samsung_div_clock exynos5420_div_clks[] __initdata = { 397 - DIV(none, "div_arm", "mout_cpu", DIV_CPU0, 0, 3), 398 - DIV(none, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3), 399 - DIV(none, "armclk2", "div_arm", DIV_CPU0, 28, 3), 400 - DIV(none, "div_kfc", "mout_cpu_kfc", DIV_KFC0, 0, 3), 401 - DIV(none, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3), 438 + DIV(0, "div_arm", "mout_cpu", DIV_CPU0, 0, 3), 439 + DIV(0, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3), 440 + DIV(0, "armclk2", "div_arm", DIV_CPU0, 28, 3), 441 + DIV(0, "div_kfc", "mout_cpu_kfc", DIV_KFC0, 0, 3), 442 + DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3), 402 443 403 - DIV(none, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3), 404 - DIV(none, "dout_aclk200", "mout_aclk200", DIV_TOP0, 8, 3), 405 - DIV(none, "dout_aclk200_fsys2", "mout_aclk200_fsys2", DIV_TOP0, 12, 3), 406 - DIV(none, "dout_pclk200_fsys", "mout_pclk200_fsys", DIV_TOP0, 24, 3), 407 - DIV(none, "dout_aclk200_fsys", "mout_aclk200_fsys", DIV_TOP0, 28, 3), 444 + DIV(0, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3), 445 + DIV(0, "dout_aclk200", "mout_aclk200", DIV_TOP0, 8, 3), 446 + DIV(0, "dout_aclk200_fsys2", "mout_aclk200_fsys2", DIV_TOP0, 12, 3), 447 + DIV(0, "dout_pclk200_fsys", "mout_pclk200_fsys", DIV_TOP0, 24, 3), 448 + DIV(0, "dout_aclk200_fsys", "mout_aclk200_fsys", DIV_TOP0, 28, 3), 408 449 409 - DIV(none, "dout_aclk333_432_gscl", "mout_aclk333_432_gscl", 450 + DIV(0, "dout_aclk333_432_gscl", "mout_aclk333_432_gscl", 410 451 DIV_TOP1, 0, 3), 411 - DIV(none, "dout_aclk66", "mout_aclk66", DIV_TOP1, 8, 6), 412 - DIV(none, "dout_aclk266", "mout_aclk266", DIV_TOP1, 20, 3), 413 - DIV(none, "dout_aclk166", "mout_aclk166", DIV_TOP1, 24, 3), 414 - DIV(none, "dout_aclk333", "mout_aclk333", DIV_TOP1, 28, 3), 452 + DIV(0, "dout_aclk66", "mout_aclk66", DIV_TOP1, 8, 6), 453 + DIV(0, "dout_aclk266", "mout_aclk266", DIV_TOP1, 20, 3), 454 + DIV(0, "dout_aclk166", "mout_aclk166", DIV_TOP1, 24, 3), 455 + DIV(0, "dout_aclk333", "mout_aclk333", DIV_TOP1, 28, 3), 415 456 416 - DIV(none, "dout_aclk333_g2d", "mout_aclk333_g2d", DIV_TOP2, 8, 3), 417 - DIV(none, "dout_aclk266_g2d", "mout_aclk266_g2d", DIV_TOP2, 12, 3), 418 - DIV(none, "dout_aclk_g3d", "mout_aclk_g3d", DIV_TOP2, 16, 3), 419 - DIV(none, "dout_aclk300_jpeg", "mout_aclk300_jpeg", DIV_TOP2, 20, 3), 420 - DIV_A(none, "dout_aclk300_disp1", "mout_aclk300_disp1", 457 + DIV(0, "dout_aclk333_g2d", "mout_aclk333_g2d", DIV_TOP2, 8, 3), 458 + DIV(0, "dout_aclk266_g2d", "mout_aclk266_g2d", DIV_TOP2, 12, 3), 459 + DIV(0, "dout_aclk_g3d", "mout_aclk_g3d", DIV_TOP2, 16, 3), 460 + DIV(0, "dout_aclk300_jpeg", "mout_aclk300_jpeg", DIV_TOP2, 20, 3), 461 + DIV_A(0, "dout_aclk300_disp1", "mout_aclk300_disp1", 421 462 DIV_TOP2, 24, 3, "aclk300_disp1"), 422 - DIV(none, "dout_aclk300_gscl", "mout_aclk300_gscl", DIV_TOP2, 28, 3), 463 + DIV(0, "dout_aclk300_gscl", "mout_aclk300_gscl", DIV_TOP2, 28, 3), 423 464 424 465 /* DISP1 Block */ 425 - DIV(none, "dout_fimd1", "mout_fimd1", DIV_DISP10, 0, 4), 426 - DIV(none, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8), 427 - DIV(none, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4), 428 - DIV(dout_pixel, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4), 466 + DIV(0, "dout_fimd1", "mout_fimd1", DIV_DISP10, 0, 4), 467 + DIV(0, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8), 468 + DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4), 469 + DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4), 429 470 430 471 /* Audio Block */ 431 - DIV(none, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4), 432 - DIV(none, "dout_maupcm0", "dout_maudio0", DIV_MAU, 24, 8), 472 + DIV(0, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4), 473 + DIV(0, "dout_maupcm0", "dout_maudio0", DIV_MAU, 24, 8), 433 474 434 475 /* USB3.0 */ 435 - DIV(none, "dout_usbphy301", "mout_usbd301", DIV_FSYS0, 12, 4), 436 - DIV(none, "dout_usbphy300", "mout_usbd300", DIV_FSYS0, 16, 4), 437 - DIV(none, "dout_usbd301", "mout_usbd301", DIV_FSYS0, 20, 4), 438 - DIV(none, "dout_usbd300", "mout_usbd300", DIV_FSYS0, 24, 4), 476 + DIV(0, "dout_usbphy301", "mout_usbd301", DIV_FSYS0, 12, 4), 477 + DIV(0, "dout_usbphy300", "mout_usbd300", DIV_FSYS0, 16, 4), 478 + DIV(0, "dout_usbd301", "mout_usbd301", DIV_FSYS0, 20, 4), 479 + DIV(0, "dout_usbd300", "mout_usbd300", DIV_FSYS0, 24, 4), 439 480 440 481 /* MMC */ 441 - DIV(none, "dout_mmc0", "mout_mmc0", DIV_FSYS1, 0, 10), 442 - DIV(none, "dout_mmc1", "mout_mmc1", DIV_FSYS1, 10, 10), 443 - DIV(none, "dout_mmc2", "mout_mmc2", DIV_FSYS1, 20, 10), 482 + DIV(0, "dout_mmc0", "mout_mmc0", DIV_FSYS1, 0, 10), 483 + DIV(0, "dout_mmc1", "mout_mmc1", DIV_FSYS1, 10, 10), 484 + DIV(0, "dout_mmc2", "mout_mmc2", DIV_FSYS1, 20, 10), 444 485 445 - DIV(none, "dout_unipro", "mout_unipro", DIV_FSYS2, 24, 8), 486 + DIV(0, "dout_unipro", "mout_unipro", DIV_FSYS2, 24, 8), 446 487 447 488 /* UART and PWM */ 448 - DIV(none, "dout_uart0", "mout_uart0", DIV_PERIC0, 8, 4), 449 - DIV(none, "dout_uart1", "mout_uart1", DIV_PERIC0, 12, 4), 450 - DIV(none, "dout_uart2", "mout_uart2", DIV_PERIC0, 16, 4), 451 - DIV(none, "dout_uart3", "mout_uart3", DIV_PERIC0, 20, 4), 452 - DIV(none, "dout_pwm", "mout_pwm", DIV_PERIC0, 28, 4), 489 + DIV(0, "dout_uart0", "mout_uart0", DIV_PERIC0, 8, 4), 490 + DIV(0, "dout_uart1", "mout_uart1", DIV_PERIC0, 12, 4), 491 + DIV(0, "dout_uart2", "mout_uart2", DIV_PERIC0, 16, 4), 492 + DIV(0, "dout_uart3", "mout_uart3", DIV_PERIC0, 20, 4), 493 + DIV(0, "dout_pwm", "mout_pwm", DIV_PERIC0, 28, 4), 453 494 454 495 /* SPI */ 455 - DIV(none, "dout_spi0", "mout_spi0", DIV_PERIC1, 20, 4), 456 - DIV(none, "dout_spi1", "mout_spi1", DIV_PERIC1, 24, 4), 457 - DIV(none, "dout_spi2", "mout_spi2", DIV_PERIC1, 28, 4), 496 + DIV(0, "dout_spi0", "mout_spi0", DIV_PERIC1, 20, 4), 497 + DIV(0, "dout_spi1", "mout_spi1", DIV_PERIC1, 24, 4), 498 + DIV(0, "dout_spi2", "mout_spi2", DIV_PERIC1, 28, 4), 458 499 459 500 /* PCM */ 460 - DIV(none, "dout_pcm1", "dout_audio1", DIV_PERIC2, 16, 8), 461 - DIV(none, "dout_pcm2", "dout_audio2", DIV_PERIC2, 24, 8), 501 + DIV(0, "dout_pcm1", "dout_audio1", DIV_PERIC2, 16, 8), 502 + DIV(0, "dout_pcm2", "dout_audio2", DIV_PERIC2, 24, 8), 462 503 463 504 /* Audio - I2S */ 464 - DIV(none, "dout_i2s1", "dout_audio1", DIV_PERIC3, 6, 6), 465 - DIV(none, "dout_i2s2", "dout_audio2", DIV_PERIC3, 12, 6), 466 - DIV(none, "dout_audio0", "mout_audio0", DIV_PERIC3, 20, 4), 467 - DIV(none, "dout_audio1", "mout_audio1", DIV_PERIC3, 24, 4), 468 - DIV(none, "dout_audio2", "mout_audio2", DIV_PERIC3, 28, 4), 505 + DIV(0, "dout_i2s1", "dout_audio1", DIV_PERIC3, 6, 6), 506 + DIV(0, "dout_i2s2", "dout_audio2", DIV_PERIC3, 12, 6), 507 + DIV(0, "dout_audio0", "mout_audio0", DIV_PERIC3, 20, 4), 508 + DIV(0, "dout_audio1", "mout_audio1", DIV_PERIC3, 24, 4), 509 + DIV(0, "dout_audio2", "mout_audio2", DIV_PERIC3, 28, 4), 469 510 470 511 /* SPI Pre-Ratio */ 471 - DIV(none, "dout_pre_spi0", "dout_spi0", DIV_PERIC4, 8, 8), 472 - DIV(none, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), 473 - DIV(none, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), 512 + DIV(0, "dout_pre_spi0", "dout_spi0", DIV_PERIC4, 8, 8), 513 + DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), 514 + DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), 474 515 }; 475 516 476 517 static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { 477 518 /* TODO: Re-verify the CG bits for all the gate clocks */ 478 - GATE_A(mct, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0, 0, "mct"), 519 + GATE_A(CLK_MCT, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0, 0, 520 + "mct"), 479 521 480 522 GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys", 481 523 GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0), ··· 505 545 GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0), 506 546 507 547 /* sclk */ 508 - GATE(sclk_uart0, "sclk_uart0", "dout_uart0", 548 + GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0", 509 549 GATE_TOP_SCLK_PERIC, 0, CLK_SET_RATE_PARENT, 0), 510 - GATE(sclk_uart1, "sclk_uart1", "dout_uart1", 550 + GATE(CLK_SCLK_UART1, "sclk_uart1", "dout_uart1", 511 551 GATE_TOP_SCLK_PERIC, 1, CLK_SET_RATE_PARENT, 0), 512 - GATE(sclk_uart2, "sclk_uart2", "dout_uart2", 552 + GATE(CLK_SCLK_UART2, "sclk_uart2", "dout_uart2", 513 553 GATE_TOP_SCLK_PERIC, 2, CLK_SET_RATE_PARENT, 0), 514 - GATE(sclk_uart3, "sclk_uart3", "dout_uart3", 554 + GATE(CLK_SCLK_UART3, "sclk_uart3", "dout_uart3", 515 555 GATE_TOP_SCLK_PERIC, 3, CLK_SET_RATE_PARENT, 0), 516 - GATE(sclk_spi0, "sclk_spi0", "dout_pre_spi0", 556 + GATE(CLK_SCLK_SPI0, "sclk_spi0", "dout_pre_spi0", 517 557 GATE_TOP_SCLK_PERIC, 6, CLK_SET_RATE_PARENT, 0), 518 - GATE(sclk_spi1, "sclk_spi1", "dout_pre_spi1", 558 + GATE(CLK_SCLK_SPI1, "sclk_spi1", "dout_pre_spi1", 519 559 GATE_TOP_SCLK_PERIC, 7, CLK_SET_RATE_PARENT, 0), 520 - GATE(sclk_spi2, "sclk_spi2", "dout_pre_spi2", 560 + GATE(CLK_SCLK_SPI2, "sclk_spi2", "dout_pre_spi2", 521 561 GATE_TOP_SCLK_PERIC, 8, CLK_SET_RATE_PARENT, 0), 522 - GATE(sclk_spdif, "sclk_spdif", "mout_spdif", 562 + GATE(CLK_SCLK_SPDIF, "sclk_spdif", "mout_spdif", 523 563 GATE_TOP_SCLK_PERIC, 9, CLK_SET_RATE_PARENT, 0), 524 - GATE(sclk_pwm, "sclk_pwm", "dout_pwm", 564 + GATE(CLK_SCLK_PWM, "sclk_pwm", "dout_pwm", 525 565 GATE_TOP_SCLK_PERIC, 11, CLK_SET_RATE_PARENT, 0), 526 - GATE(sclk_pcm1, "sclk_pcm1", "dout_pcm1", 566 + GATE(CLK_SCLK_PCM1, "sclk_pcm1", "dout_pcm1", 527 567 GATE_TOP_SCLK_PERIC, 15, CLK_SET_RATE_PARENT, 0), 528 - GATE(sclk_pcm2, "sclk_pcm2", "dout_pcm2", 568 + GATE(CLK_SCLK_PCM2, "sclk_pcm2", "dout_pcm2", 529 569 GATE_TOP_SCLK_PERIC, 16, CLK_SET_RATE_PARENT, 0), 530 - GATE(sclk_i2s1, "sclk_i2s1", "dout_i2s1", 570 + GATE(CLK_SCLK_I2S1, "sclk_i2s1", "dout_i2s1", 531 571 GATE_TOP_SCLK_PERIC, 17, CLK_SET_RATE_PARENT, 0), 532 - GATE(sclk_i2s2, "sclk_i2s2", "dout_i2s2", 572 + GATE(CLK_SCLK_I2S2, "sclk_i2s2", "dout_i2s2", 533 573 GATE_TOP_SCLK_PERIC, 18, CLK_SET_RATE_PARENT, 0), 534 574 535 - GATE(sclk_mmc0, "sclk_mmc0", "dout_mmc0", 575 + GATE(CLK_SCLK_MMC0, "sclk_mmc0", "dout_mmc0", 536 576 GATE_TOP_SCLK_FSYS, 0, CLK_SET_RATE_PARENT, 0), 537 - GATE(sclk_mmc1, "sclk_mmc1", "dout_mmc1", 577 + GATE(CLK_SCLK_MMC1, "sclk_mmc1", "dout_mmc1", 538 578 GATE_TOP_SCLK_FSYS, 1, CLK_SET_RATE_PARENT, 0), 539 - GATE(sclk_mmc2, "sclk_mmc2", "dout_mmc2", 579 + GATE(CLK_SCLK_MMC2, "sclk_mmc2", "dout_mmc2", 540 580 GATE_TOP_SCLK_FSYS, 2, CLK_SET_RATE_PARENT, 0), 541 - GATE(sclk_usbphy301, "sclk_usbphy301", "dout_usbphy301", 581 + GATE(CLK_SCLK_USBPHY301, "sclk_usbphy301", "dout_usbphy301", 542 582 GATE_TOP_SCLK_FSYS, 7, CLK_SET_RATE_PARENT, 0), 543 - GATE(sclk_usbphy300, "sclk_usbphy300", "dout_usbphy300", 583 + GATE(CLK_SCLK_USBPHY300, "sclk_usbphy300", "dout_usbphy300", 544 584 GATE_TOP_SCLK_FSYS, 8, CLK_SET_RATE_PARENT, 0), 545 - GATE(sclk_usbd300, "sclk_usbd300", "dout_usbd300", 585 + GATE(CLK_SCLK_USBD300, "sclk_usbd300", "dout_usbd300", 546 586 GATE_TOP_SCLK_FSYS, 9, CLK_SET_RATE_PARENT, 0), 547 - GATE(sclk_usbd301, "sclk_usbd301", "dout_usbd301", 587 + GATE(CLK_SCLK_USBD301, "sclk_usbd301", "dout_usbd301", 548 588 GATE_TOP_SCLK_FSYS, 10, CLK_SET_RATE_PARENT, 0), 549 589 550 - GATE(sclk_usbd301, "sclk_unipro", "dout_unipro", 590 + GATE(CLK_SCLK_USBD301, "sclk_unipro", "dout_unipro", 551 591 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), 552 592 553 - GATE(sclk_gscl_wa, "sclk_gscl_wa", "aclK333_432_gscl", 593 + GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "aclK333_432_gscl", 554 594 GATE_TOP_SCLK_GSCL, 6, CLK_SET_RATE_PARENT, 0), 555 - GATE(sclk_gscl_wb, "sclk_gscl_wb", "aclk333_432_gscl", 595 + GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "aclk333_432_gscl", 556 596 GATE_TOP_SCLK_GSCL, 7, CLK_SET_RATE_PARENT, 0), 557 597 558 598 /* Display */ 559 - GATE(sclk_fimd1, "sclk_fimd1", "dout_fimd1", 599 + GATE(CLK_SCLK_FIMD1, "sclk_fimd1", "dout_fimd1", 560 600 GATE_TOP_SCLK_DISP1, 0, CLK_SET_RATE_PARENT, 0), 561 - GATE(sclk_mipi1, "sclk_mipi1", "dout_mipi1", 601 + GATE(CLK_SCLK_MIPI1, "sclk_mipi1", "dout_mipi1", 562 602 GATE_TOP_SCLK_DISP1, 3, CLK_SET_RATE_PARENT, 0), 563 - GATE(sclk_hdmi, "sclk_hdmi", "mout_hdmi", 603 + GATE(CLK_SCLK_HDMI, "sclk_hdmi", "mout_hdmi", 564 604 GATE_TOP_SCLK_DISP1, 9, CLK_SET_RATE_PARENT, 0), 565 - GATE(sclk_pixel, "sclk_pixel", "dout_hdmi_pixel", 605 + GATE(CLK_SCLK_PIXEL, "sclk_pixel", "dout_hdmi_pixel", 566 606 GATE_TOP_SCLK_DISP1, 10, CLK_SET_RATE_PARENT, 0), 567 - GATE(sclk_dp1, "sclk_dp1", "dout_dp1", 607 + GATE(CLK_SCLK_DP1, "sclk_dp1", "dout_dp1", 568 608 GATE_TOP_SCLK_DISP1, 20, CLK_SET_RATE_PARENT, 0), 569 609 570 610 /* Maudio Block */ 571 - GATE(sclk_maudio0, "sclk_maudio0", "dout_maudio0", 611 + GATE(CLK_SCLK_MAUDIO0, "sclk_maudio0", "dout_maudio0", 572 612 GATE_TOP_SCLK_MAU, 0, CLK_SET_RATE_PARENT, 0), 573 - GATE(sclk_maupcm0, "sclk_maupcm0", "dout_maupcm0", 613 + GATE(CLK_SCLK_MAUPCM0, "sclk_maupcm0", "dout_maupcm0", 574 614 GATE_TOP_SCLK_MAU, 1, CLK_SET_RATE_PARENT, 0), 575 615 /* FSYS */ 576 - GATE(tsi, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0), 577 - GATE(pdma0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0), 578 - GATE(pdma1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0), 579 - GATE(ufs, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0), 580 - GATE(rtic, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0), 581 - GATE(mmc0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0), 582 - GATE(mmc1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0), 583 - GATE(mmc2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0), 584 - GATE(sromc, "sromc", "aclk200_fsys2", 616 + GATE(CLK_TSI, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0), 617 + GATE(CLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0), 618 + GATE(CLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0), 619 + GATE(CLK_UFS, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0), 620 + GATE(CLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0), 621 + GATE(CLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0), 622 + GATE(CLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0), 623 + GATE(CLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0), 624 + GATE(CLK_SROMC, "sromc", "aclk200_fsys2", 585 625 GATE_BUS_FSYS0, 19, CLK_IGNORE_UNUSED, 0), 586 - GATE(usbh20, "usbh20", "aclk200_fsys", GATE_BUS_FSYS0, 20, 0, 0), 587 - GATE(usbd300, "usbd300", "aclk200_fsys", GATE_BUS_FSYS0, 21, 0, 0), 588 - GATE(usbd301, "usbd301", "aclk200_fsys", GATE_BUS_FSYS0, 28, 0, 0), 626 + GATE(CLK_USBH20, "usbh20", "aclk200_fsys", GATE_BUS_FSYS0, 20, 0, 0), 627 + GATE(CLK_USBD300, "usbd300", "aclk200_fsys", GATE_BUS_FSYS0, 21, 0, 0), 628 + GATE(CLK_USBD301, "usbd301", "aclk200_fsys", GATE_BUS_FSYS0, 28, 0, 0), 589 629 590 630 /* UART */ 591 - GATE(uart0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0), 592 - GATE(uart1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0), 593 - GATE_A(uart2, "uart2", "aclk66_peric", 631 + GATE(CLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0), 632 + GATE(CLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0), 633 + GATE_A(CLK_UART2, "uart2", "aclk66_peric", 594 634 GATE_BUS_PERIC, 6, CLK_IGNORE_UNUSED, 0, "uart2"), 595 - GATE(uart3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0), 635 + GATE(CLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0), 596 636 /* I2C */ 597 - GATE(i2c0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0), 598 - GATE(i2c1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0), 599 - GATE(i2c2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0), 600 - GATE(i2c3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0), 601 - GATE(i2c4, "i2c4", "aclk66_peric", GATE_BUS_PERIC, 13, 0, 0), 602 - GATE(i2c5, "i2c5", "aclk66_peric", GATE_BUS_PERIC, 14, 0, 0), 603 - GATE(i2c6, "i2c6", "aclk66_peric", GATE_BUS_PERIC, 15, 0, 0), 604 - GATE(i2c7, "i2c7", "aclk66_peric", GATE_BUS_PERIC, 16, 0, 0), 605 - GATE(i2c_hdmi, "i2c_hdmi", "aclk66_peric", GATE_BUS_PERIC, 17, 0, 0), 606 - GATE(tsadc, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0), 637 + GATE(CLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0), 638 + GATE(CLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0), 639 + GATE(CLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0), 640 + GATE(CLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0), 641 + GATE(CLK_I2C4, "i2c4", "aclk66_peric", GATE_BUS_PERIC, 13, 0, 0), 642 + GATE(CLK_I2C5, "i2c5", "aclk66_peric", GATE_BUS_PERIC, 14, 0, 0), 643 + GATE(CLK_I2C6, "i2c6", "aclk66_peric", GATE_BUS_PERIC, 15, 0, 0), 644 + GATE(CLK_I2C7, "i2c7", "aclk66_peric", GATE_BUS_PERIC, 16, 0, 0), 645 + GATE(CLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric", GATE_BUS_PERIC, 17, 0, 646 + 0), 647 + GATE(CLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0), 607 648 /* SPI */ 608 - GATE(spi0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0), 609 - GATE(spi1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0), 610 - GATE(spi2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0), 611 - GATE(keyif, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0), 649 + GATE(CLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0), 650 + GATE(CLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0), 651 + GATE(CLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0), 652 + GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0), 612 653 /* I2S */ 613 - GATE(i2s1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0), 614 - GATE(i2s2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0), 654 + GATE(CLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0), 655 + GATE(CLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0), 615 656 /* PCM */ 616 - GATE(pcm1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0), 617 - GATE(pcm2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0), 657 + GATE(CLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0), 658 + GATE(CLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0), 618 659 /* PWM */ 619 - GATE(pwm, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0), 660 + GATE(CLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0), 620 661 /* SPDIF */ 621 - GATE(spdif, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0), 662 + GATE(CLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0), 622 663 623 - GATE(i2c8, "i2c8", "aclk66_peric", GATE_BUS_PERIC1, 0, 0, 0), 624 - GATE(i2c9, "i2c9", "aclk66_peric", GATE_BUS_PERIC1, 1, 0, 0), 625 - GATE(i2c10, "i2c10", "aclk66_peric", GATE_BUS_PERIC1, 2, 0, 0), 664 + GATE(CLK_I2C8, "i2c8", "aclk66_peric", GATE_BUS_PERIC1, 0, 0, 0), 665 + GATE(CLK_I2C9, "i2c9", "aclk66_peric", GATE_BUS_PERIC1, 1, 0, 0), 666 + GATE(CLK_I2C10, "i2c10", "aclk66_peric", GATE_BUS_PERIC1, 2, 0, 0), 626 667 627 - GATE(chipid, "chipid", "aclk66_psgen", 668 + GATE(CLK_CHIPID, "chipid", "aclk66_psgen", 628 669 GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0), 629 - GATE(sysreg, "sysreg", "aclk66_psgen", 670 + GATE(CLK_SYSREG, "sysreg", "aclk66_psgen", 630 671 GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0), 631 - GATE(tzpc0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0, 0), 632 - GATE(tzpc1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0, 0), 633 - GATE(tzpc2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0, 0), 634 - GATE(tzpc3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0, 0), 635 - GATE(tzpc4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0, 0), 636 - GATE(tzpc5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0, 0), 637 - GATE(tzpc6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0, 0), 638 - GATE(tzpc7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0, 0), 639 - GATE(tzpc8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0, 0), 640 - GATE(tzpc9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0, 0), 672 + GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0, 0), 673 + GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0, 0), 674 + GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0, 0), 675 + GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0, 0), 676 + GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0, 0), 677 + GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0, 0), 678 + GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0, 0), 679 + GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0, 0), 680 + GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0, 0), 681 + GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0, 0), 641 682 642 - GATE(hdmi_cec, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0, 0), 643 - GATE(seckey, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0), 644 - GATE(wdt, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0), 645 - GATE(rtc, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0), 646 - GATE(tmu, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0), 647 - GATE(tmu_gpu, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0), 683 + GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0, 684 + 0), 685 + GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0), 686 + GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0), 687 + GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0), 688 + GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0), 689 + GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0), 648 690 649 - GATE(gscl0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0), 650 - GATE(gscl1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0), 651 - GATE(clk_3aa, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0, 0), 691 + GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0), 692 + GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0), 693 + GATE(CLK_CLK_3AA, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0, 0), 652 694 653 - GATE(smmu_3aa, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0, 0), 654 - GATE(smmu_fimcl0, "smmu_fimcl0", "aclk333_432_gscl", 695 + GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0, 696 + 0), 697 + GATE(CLK_SMMU_FIMCL0, "smmu_fimcl0", "aclk333_432_gscl", 655 698 GATE_IP_GSCL1, 3, 0, 0), 656 - GATE(smmu_fimcl1, "smmu_fimcl1", "aclk333_432_gscl", 699 + GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "aclk333_432_gscl", 657 700 GATE_IP_GSCL1, 4, 0, 0), 658 - GATE(smmu_gscl0, "smmu_gscl0", "aclk300_gscl", GATE_IP_GSCL1, 6, 0, 0), 659 - GATE(smmu_gscl1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0, 0), 660 - GATE(gscl_wa, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0, 0), 661 - GATE(gscl_wb, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0), 662 - GATE(smmu_fimcl3, "smmu_fimcl3,", "aclk333_432_gscl", 701 + GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "aclk300_gscl", GATE_IP_GSCL1, 6, 0, 702 + 0), 703 + GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0, 704 + 0), 705 + GATE(CLK_GSCL_WA, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0, 0), 706 + GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0), 707 + GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl", 663 708 GATE_IP_GSCL1, 16, 0, 0), 664 - GATE(fimc_lite3, "fimc_lite3", "aclk333_432_gscl", 709 + GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl", 665 710 GATE_IP_GSCL1, 17, 0, 0), 666 711 667 - GATE(fimd1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0), 668 - GATE(dsim1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0), 669 - GATE(dp1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0), 670 - GATE(mixer, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0), 671 - GATE(hdmi, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0), 672 - GATE(smmu_fimd1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0, 0), 712 + GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0), 713 + GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0), 714 + GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0), 715 + GATE(CLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0), 716 + GATE(CLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0), 717 + GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0, 718 + 0), 673 719 674 - GATE(mfc, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0), 675 - GATE(smmu_mfcl, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0), 676 - GATE(smmu_mfcr, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), 720 + GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0), 721 + GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0), 722 + GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), 677 723 678 - GATE(g3d, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0), 724 + GATE(CLK_G3D, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0), 679 725 680 - GATE(rotator, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0), 681 - GATE(jpeg, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0), 682 - GATE(jpeg2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0), 683 - GATE(mdma1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0), 684 - GATE(smmu_rotator, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0), 685 - GATE(smmu_jpeg, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0), 686 - GATE(smmu_mdma1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), 726 + GATE(CLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0), 727 + GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0), 728 + GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0), 729 + GATE(CLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0), 730 + GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0), 731 + GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0), 732 + GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), 687 733 688 - GATE(mscl0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0), 689 - GATE(mscl1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0), 690 - GATE(mscl2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0), 691 - GATE(smmu_mscl0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0, 0), 692 - GATE(smmu_mscl1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0, 0), 693 - GATE(smmu_mscl2, "smmu_mscl2", "aclk400_mscl", GATE_IP_MSCL, 10, 0, 0), 694 - GATE(smmu_mixer, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0, 0), 734 + GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0), 735 + GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0), 736 + GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0), 737 + GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0, 738 + 0), 739 + GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0, 740 + 0), 741 + GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "aclk400_mscl", GATE_IP_MSCL, 10, 0, 742 + 0), 743 + GATE(CLK_SMMU_MIXER, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0, 744 + 0), 695 745 }; 696 746 697 747 static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = { 698 - [apll] = PLL(pll_2550, fout_apll, "fout_apll", "fin_pll", APLL_LOCK, 748 + [apll] = PLL(pll_2550, CLK_FOUT_APLL, "fout_apll", "fin_pll", APLL_LOCK, 699 749 APLL_CON0, NULL), 700 - [cpll] = PLL(pll_2550, fout_cpll, "fout_cpll", "fin_pll", CPLL_LOCK, 750 + [cpll] = PLL(pll_2550, CLK_FOUT_CPLL, "fout_cpll", "fin_pll", CPLL_LOCK, 701 751 CPLL_CON0, NULL), 702 - [dpll] = PLL(pll_2550, fout_dpll, "fout_dpll", "fin_pll", DPLL_LOCK, 752 + [dpll] = PLL(pll_2550, CLK_FOUT_DPLL, "fout_dpll", "fin_pll", DPLL_LOCK, 703 753 DPLL_CON0, NULL), 704 - [epll] = PLL(pll_2650, fout_epll, "fout_epll", "fin_pll", EPLL_LOCK, 754 + [epll] = PLL(pll_2650, CLK_FOUT_EPLL, "fout_epll", "fin_pll", EPLL_LOCK, 705 755 EPLL_CON0, NULL), 706 - [rpll] = PLL(pll_2650, fout_rpll, "fout_rpll", "fin_pll", RPLL_LOCK, 756 + [rpll] = PLL(pll_2650, CLK_FOUT_RPLL, "fout_rpll", "fin_pll", RPLL_LOCK, 707 757 RPLL_CON0, NULL), 708 - [ipll] = PLL(pll_2550, fout_ipll, "fout_ipll", "fin_pll", IPLL_LOCK, 758 + [ipll] = PLL(pll_2550, CLK_FOUT_IPLL, "fout_ipll", "fin_pll", IPLL_LOCK, 709 759 IPLL_CON0, NULL), 710 - [spll] = PLL(pll_2550, fout_spll, "fout_spll", "fin_pll", SPLL_LOCK, 760 + [spll] = PLL(pll_2550, CLK_FOUT_SPLL, "fout_spll", "fin_pll", SPLL_LOCK, 711 761 SPLL_CON0, NULL), 712 - [vpll] = PLL(pll_2550, fout_vpll, "fout_vpll", "fin_pll", VPLL_LOCK, 762 + [vpll] = PLL(pll_2550, CLK_FOUT_VPLL, "fout_vpll", "fin_pll", VPLL_LOCK, 713 763 VPLL_CON0, NULL), 714 - [mpll] = PLL(pll_2550, fout_mpll, "fout_mpll", "fin_pll", MPLL_LOCK, 764 + [mpll] = PLL(pll_2550, CLK_FOUT_MPLL, "fout_mpll", "fin_pll", MPLL_LOCK, 715 765 MPLL_CON0, NULL), 716 - [bpll] = PLL(pll_2550, fout_bpll, "fout_bpll", "fin_pll", BPLL_LOCK, 766 + [bpll] = PLL(pll_2550, CLK_FOUT_BPLL, "fout_bpll", "fin_pll", BPLL_LOCK, 717 767 BPLL_CON0, NULL), 718 - [kpll] = PLL(pll_2550, fout_kpll, "fout_kpll", "fin_pll", KPLL_LOCK, 768 + [kpll] = PLL(pll_2550, CLK_FOUT_KPLL, "fout_kpll", "fin_pll", KPLL_LOCK, 719 769 KPLL_CON0, NULL), 720 770 }; 721 771 ··· 747 777 panic("%s: unable to determine soc\n", __func__); 748 778 } 749 779 750 - samsung_clk_init(np, reg_base, nr_clks, 780 + samsung_clk_init(np, reg_base, CLK_NR_CLKS, 751 781 exynos5420_clk_regs, ARRAY_SIZE(exynos5420_clk_regs), 752 782 NULL, 0); 753 783 samsung_clk_of_register_fixed_ext(exynos5420_fixed_rate_ext_clks,
+34 -47
drivers/clk/samsung/clk-exynos5440.c
··· 9 9 * Common Clock Framework support for Exynos5440 SoC. 10 10 */ 11 11 12 + #include <dt-bindings/clock/exynos5440.h> 12 13 #include <linux/clk.h> 13 14 #include <linux/clkdev.h> 14 15 #include <linux/clk-provider.h> ··· 23 22 #define CPU_CLK_STATUS 0xfc 24 23 #define MISC_DOUT1 0x558 25 24 26 - /* 27 - * Let each supported clock get a unique id. This id is used to lookup the clock 28 - * for device tree based platforms. 29 - */ 30 - enum exynos5440_clks { 31 - none, xtal, arm_clk, 32 - 33 - spi_baud = 16, pb0_250, pr0_250, pr1_250, b_250, b_125, b_200, sata, 34 - usb, gmac0, cs250, pb0_250_o, pr0_250_o, pr1_250_o, b_250_o, b_125_o, 35 - b_200_o, sata_o, usb_o, gmac0_o, cs250_o, 36 - 37 - nr_clks, 38 - }; 39 - 40 25 /* parent clock name list */ 41 26 PNAME(mout_armclk_p) = { "cplla", "cpllb" }; 42 27 PNAME(mout_spi_p) = { "div125", "div200" }; 43 28 44 29 /* fixed rate clocks generated outside the soc */ 45 30 static struct samsung_fixed_rate_clock exynos5440_fixed_rate_ext_clks[] __initdata = { 46 - FRATE(none, "xtal", NULL, CLK_IS_ROOT, 0), 31 + FRATE(0, "xtal", NULL, CLK_IS_ROOT, 0), 47 32 }; 48 33 49 34 /* fixed rate clocks */ 50 35 static struct samsung_fixed_rate_clock exynos5440_fixed_rate_clks[] __initdata = { 51 - FRATE(none, "ppll", NULL, CLK_IS_ROOT, 1000000000), 52 - FRATE(none, "usb_phy0", NULL, CLK_IS_ROOT, 60000000), 53 - FRATE(none, "usb_phy1", NULL, CLK_IS_ROOT, 60000000), 54 - FRATE(none, "usb_ohci12", NULL, CLK_IS_ROOT, 12000000), 55 - FRATE(none, "usb_ohci48", NULL, CLK_IS_ROOT, 48000000), 36 + FRATE(0, "ppll", NULL, CLK_IS_ROOT, 1000000000), 37 + FRATE(0, "usb_phy0", NULL, CLK_IS_ROOT, 60000000), 38 + FRATE(0, "usb_phy1", NULL, CLK_IS_ROOT, 60000000), 39 + FRATE(0, "usb_ohci12", NULL, CLK_IS_ROOT, 12000000), 40 + FRATE(0, "usb_ohci48", NULL, CLK_IS_ROOT, 48000000), 56 41 }; 57 42 58 43 /* fixed factor clocks */ 59 44 static struct samsung_fixed_factor_clock exynos5440_fixed_factor_clks[] __initdata = { 60 - FFACTOR(none, "div250", "ppll", 1, 4, 0), 61 - FFACTOR(none, "div200", "ppll", 1, 5, 0), 62 - FFACTOR(none, "div125", "div250", 1, 2, 0), 45 + FFACTOR(0, "div250", "ppll", 1, 4, 0), 46 + FFACTOR(0, "div200", "ppll", 1, 5, 0), 47 + FFACTOR(0, "div125", "div250", 1, 2, 0), 63 48 }; 64 49 65 50 /* mux clocks */ 66 51 static struct samsung_mux_clock exynos5440_mux_clks[] __initdata = { 67 - MUX(none, "mout_spi", mout_spi_p, MISC_DOUT1, 5, 1), 68 - MUX_A(arm_clk, "arm_clk", mout_armclk_p, 52 + MUX(0, "mout_spi", mout_spi_p, MISC_DOUT1, 5, 1), 53 + MUX_A(CLK_ARM_CLK, "arm_clk", mout_armclk_p, 69 54 CPU_CLK_STATUS, 0, 1, "armclk"), 70 55 }; 71 56 72 57 /* divider clocks */ 73 58 static struct samsung_div_clock exynos5440_div_clks[] __initdata = { 74 - DIV(spi_baud, "div_spi", "mout_spi", MISC_DOUT1, 3, 2), 59 + DIV(CLK_SPI_BAUD, "div_spi", "mout_spi", MISC_DOUT1, 3, 2), 75 60 }; 76 61 77 62 /* gate clocks */ 78 63 static struct samsung_gate_clock exynos5440_gate_clks[] __initdata = { 79 - GATE(pb0_250, "pb0_250", "div250", CLKEN_OV_VAL, 3, 0, 0), 80 - GATE(pr0_250, "pr0_250", "div250", CLKEN_OV_VAL, 4, 0, 0), 81 - GATE(pr1_250, "pr1_250", "div250", CLKEN_OV_VAL, 5, 0, 0), 82 - GATE(b_250, "b_250", "div250", CLKEN_OV_VAL, 9, 0, 0), 83 - GATE(b_125, "b_125", "div125", CLKEN_OV_VAL, 10, 0, 0), 84 - GATE(b_200, "b_200", "div200", CLKEN_OV_VAL, 11, 0, 0), 85 - GATE(sata, "sata", "div200", CLKEN_OV_VAL, 12, 0, 0), 86 - GATE(usb, "usb", "div200", CLKEN_OV_VAL, 13, 0, 0), 87 - GATE(gmac0, "gmac0", "div200", CLKEN_OV_VAL, 14, 0, 0), 88 - GATE(cs250, "cs250", "div250", CLKEN_OV_VAL, 19, 0, 0), 89 - GATE(pb0_250_o, "pb0_250_o", "pb0_250", CLKEN_OV_VAL, 3, 0, 0), 90 - GATE(pr0_250_o, "pr0_250_o", "pr0_250", CLKEN_OV_VAL, 4, 0, 0), 91 - GATE(pr1_250_o, "pr1_250_o", "pr1_250", CLKEN_OV_VAL, 5, 0, 0), 92 - GATE(b_250_o, "b_250_o", "b_250", CLKEN_OV_VAL, 9, 0, 0), 93 - GATE(b_125_o, "b_125_o", "b_125", CLKEN_OV_VAL, 10, 0, 0), 94 - GATE(b_200_o, "b_200_o", "b_200", CLKEN_OV_VAL, 11, 0, 0), 95 - GATE(sata_o, "sata_o", "sata", CLKEN_OV_VAL, 12, 0, 0), 96 - GATE(usb_o, "usb_o", "usb", CLKEN_OV_VAL, 13, 0, 0), 97 - GATE(gmac0_o, "gmac0_o", "gmac", CLKEN_OV_VAL, 14, 0, 0), 98 - GATE(cs250_o, "cs250_o", "cs250", CLKEN_OV_VAL, 19, 0, 0), 64 + GATE(CLK_PB0_250, "pb0_250", "div250", CLKEN_OV_VAL, 3, 0, 0), 65 + GATE(CLK_PR0_250, "pr0_250", "div250", CLKEN_OV_VAL, 4, 0, 0), 66 + GATE(CLK_PR1_250, "pr1_250", "div250", CLKEN_OV_VAL, 5, 0, 0), 67 + GATE(CLK_B_250, "b_250", "div250", CLKEN_OV_VAL, 9, 0, 0), 68 + GATE(CLK_B_125, "b_125", "div125", CLKEN_OV_VAL, 10, 0, 0), 69 + GATE(CLK_B_200, "b_200", "div200", CLKEN_OV_VAL, 11, 0, 0), 70 + GATE(CLK_SATA, "sata", "div200", CLKEN_OV_VAL, 12, 0, 0), 71 + GATE(CLK_USB, "usb", "div200", CLKEN_OV_VAL, 13, 0, 0), 72 + GATE(CLK_GMAC0, "gmac0", "div200", CLKEN_OV_VAL, 14, 0, 0), 73 + GATE(CLK_CS250, "cs250", "div250", CLKEN_OV_VAL, 19, 0, 0), 74 + GATE(CLK_PB0_250_O, "pb0_250_o", "pb0_250", CLKEN_OV_VAL, 3, 0, 0), 75 + GATE(CLK_PR0_250_O, "pr0_250_o", "pr0_250", CLKEN_OV_VAL, 4, 0, 0), 76 + GATE(CLK_PR1_250_O, "pr1_250_o", "pr1_250", CLKEN_OV_VAL, 5, 0, 0), 77 + GATE(CLK_B_250_O, "b_250_o", "b_250", CLKEN_OV_VAL, 9, 0, 0), 78 + GATE(CLK_B_125_O, "b_125_o", "b_125", CLKEN_OV_VAL, 10, 0, 0), 79 + GATE(CLK_B_200_O, "b_200_o", "b_200", CLKEN_OV_VAL, 11, 0, 0), 80 + GATE(CLK_SATA_O, "sata_o", "sata", CLKEN_OV_VAL, 12, 0, 0), 81 + GATE(CLK_USB_O, "usb_o", "usb", CLKEN_OV_VAL, 13, 0, 0), 82 + GATE(CLK_GMAC0_O, "gmac0_o", "gmac", CLKEN_OV_VAL, 14, 0, 0), 83 + GATE(CLK_CS250_O, "cs250_o", "cs250", CLKEN_OV_VAL, 19, 0, 0), 99 84 }; 100 85 101 86 static struct of_device_id ext_clk_match[] __initdata = { ··· 101 114 return; 102 115 } 103 116 104 - samsung_clk_init(np, reg_base, nr_clks, NULL, 0, NULL, 0); 117 + samsung_clk_init(np, reg_base, CLK_NR_CLKS, NULL, 0, NULL, 0); 105 118 samsung_clk_of_register_fixed_ext(exynos5440_fixed_rate_ext_clks, 106 119 ARRAY_SIZE(exynos5440_fixed_rate_ext_clks), ext_clk_match); 107 120
+2 -1
include/dt-bindings/clk/exynos-audss-clk.h
··· 19 19 #define EXYNOS_SCLK_I2S 7 20 20 #define EXYNOS_PCM_BUS 8 21 21 #define EXYNOS_SCLK_PCM 9 22 + #define EXYNOS_ADMA 10 22 23 23 - #define EXYNOS_AUDSS_MAX_CLKS 10 24 + #define EXYNOS_AUDSS_MAX_CLKS 11 24 25 25 26 #endif
+244
include/dt-bindings/clock/exynos4.h
··· 1 + /* 2 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. 3 + * Author: Andrzej Haja <a.hajda@samsung.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * Device Tree binding constants for Exynos4 clock controller. 10 + */ 11 + 12 + #ifndef _DT_BINDINGS_CLOCK_EXYNOS_4_H 13 + #define _DT_BINDINGS_CLOCK_EXYNOS_4_H 14 + 15 + /* core clocks */ 16 + #define CLK_XXTI 1 17 + #define CLK_XUSBXTI 2 18 + #define CLK_FIN_PLL 3 19 + #define CLK_FOUT_APLL 4 20 + #define CLK_FOUT_MPLL 5 21 + #define CLK_FOUT_EPLL 6 22 + #define CLK_FOUT_VPLL 7 23 + #define CLK_SCLK_APLL 8 24 + #define CLK_SCLK_MPLL 9 25 + #define CLK_SCLK_EPLL 10 26 + #define CLK_SCLK_VPLL 11 27 + #define CLK_ARM_CLK 12 28 + #define CLK_ACLK200 13 29 + #define CLK_ACLK100 14 30 + #define CLK_ACLK160 15 31 + #define CLK_ACLK133 16 32 + #define CLK_MOUT_MPLL_USER_T 17 /* Exynos4x12 only */ 33 + #define CLK_MOUT_MPLL_USER_C 18 /* Exynos4x12 only */ 34 + #define CLK_MOUT_CORE 19 35 + #define CLK_MOUT_APLL 20 36 + 37 + /* gate for special clocks (sclk) */ 38 + #define CLK_SCLK_FIMC0 128 39 + #define CLK_SCLK_FIMC1 129 40 + #define CLK_SCLK_FIMC2 130 41 + #define CLK_SCLK_FIMC3 131 42 + #define CLK_SCLK_CAM0 132 43 + #define CLK_SCLK_CAM1 133 44 + #define CLK_SCLK_CSIS0 134 45 + #define CLK_SCLK_CSIS1 135 46 + #define CLK_SCLK_HDMI 136 47 + #define CLK_SCLK_MIXER 137 48 + #define CLK_SCLK_DAC 138 49 + #define CLK_SCLK_PIXEL 139 50 + #define CLK_SCLK_FIMD0 140 51 + #define CLK_SCLK_MDNIE0 141 /* Exynos4412 only */ 52 + #define CLK_SCLK_MDNIE_PWM0 142 53 + #define CLK_SCLK_MIPI0 143 54 + #define CLK_SCLK_AUDIO0 144 55 + #define CLK_SCLK_MMC0 145 56 + #define CLK_SCLK_MMC1 146 57 + #define CLK_SCLK_MMC2 147 58 + #define CLK_SCLK_MMC3 148 59 + #define CLK_SCLK_MMC4 149 60 + #define CLK_SCLK_SATA 150 /* Exynos4210 only */ 61 + #define CLK_SCLK_UART0 151 62 + #define CLK_SCLK_UART1 152 63 + #define CLK_SCLK_UART2 153 64 + #define CLK_SCLK_UART3 154 65 + #define CLK_SCLK_UART4 155 66 + #define CLK_SCLK_AUDIO1 156 67 + #define CLK_SCLK_AUDIO2 157 68 + #define CLK_SCLK_SPDIF 158 69 + #define CLK_SCLK_SPI0 159 70 + #define CLK_SCLK_SPI1 160 71 + #define CLK_SCLK_SPI2 161 72 + #define CLK_SCLK_SLIMBUS 162 73 + #define CLK_SCLK_FIMD1 163 /* Exynos4210 only */ 74 + #define CLK_SCLK_MIPI1 164 /* Exynos4210 only */ 75 + #define CLK_SCLK_PCM1 165 76 + #define CLK_SCLK_PCM2 166 77 + #define CLK_SCLK_I2S1 167 78 + #define CLK_SCLK_I2S2 168 79 + #define CLK_SCLK_MIPIHSI 169 /* Exynos4412 only */ 80 + #define CLK_SCLK_MFC 170 81 + #define CLK_SCLK_PCM0 171 82 + #define CLK_SCLK_G3D 172 83 + #define CLK_SCLK_PWM_ISP 173 /* Exynos4x12 only */ 84 + #define CLK_SCLK_SPI0_ISP 174 /* Exynos4x12 only */ 85 + #define CLK_SCLK_SPI1_ISP 175 /* Exynos4x12 only */ 86 + #define CLK_SCLK_UART_ISP 176 /* Exynos4x12 only */ 87 + #define CLK_SCLK_FIMG2D 177 88 + 89 + /* gate clocks */ 90 + #define CLK_FIMC0 256 91 + #define CLK_FIMC1 257 92 + #define CLK_FIMC2 258 93 + #define CLK_FIMC3 259 94 + #define CLK_CSIS0 260 95 + #define CLK_CSIS1 261 96 + #define CLK_JPEG 262 97 + #define CLK_SMMU_FIMC0 263 98 + #define CLK_SMMU_FIMC1 264 99 + #define CLK_SMMU_FIMC2 265 100 + #define CLK_SMMU_FIMC3 266 101 + #define CLK_SMMU_JPEG 267 102 + #define CLK_VP 268 103 + #define CLK_MIXER 269 104 + #define CLK_TVENC 270 /* Exynos4210 only */ 105 + #define CLK_HDMI 271 106 + #define CLK_SMMU_TV 272 107 + #define CLK_MFC 273 108 + #define CLK_SMMU_MFCL 274 109 + #define CLK_SMMU_MFCR 275 110 + #define CLK_G3D 276 111 + #define CLK_G2D 277 112 + #define CLK_ROTATOR 278 /* Exynos4210 only */ 113 + #define CLK_MDMA 279 /* Exynos4210 only */ 114 + #define CLK_SMMU_G2D 280 /* Exynos4210 only */ 115 + #define CLK_SMMU_ROTATOR 281 /* Exynos4210 only */ 116 + #define CLK_SMMU_MDMA 282 /* Exynos4210 only */ 117 + #define CLK_FIMD0 283 118 + #define CLK_MIE0 284 119 + #define CLK_MDNIE0 285 /* Exynos4412 only */ 120 + #define CLK_DSIM0 286 121 + #define CLK_SMMU_FIMD0 287 122 + #define CLK_FIMD1 288 /* Exynos4210 only */ 123 + #define CLK_MIE1 289 /* Exynos4210 only */ 124 + #define CLK_DSIM1 290 /* Exynos4210 only */ 125 + #define CLK_SMMU_FIMD1 291 /* Exynos4210 only */ 126 + #define CLK_PDMA0 292 127 + #define CLK_PDMA1 293 128 + #define CLK_PCIE_PHY 294 129 + #define CLK_SATA_PHY 295 /* Exynos4210 only */ 130 + #define CLK_TSI 296 131 + #define CLK_SDMMC0 297 132 + #define CLK_SDMMC1 298 133 + #define CLK_SDMMC2 299 134 + #define CLK_SDMMC3 300 135 + #define CLK_SDMMC4 301 136 + #define CLK_SATA 302 /* Exynos4210 only */ 137 + #define CLK_SROMC 303 138 + #define CLK_USB_HOST 304 139 + #define CLK_USB_DEVICE 305 140 + #define CLK_PCIE 306 141 + #define CLK_ONENAND 307 142 + #define CLK_NFCON 308 143 + #define CLK_SMMU_PCIE 309 144 + #define CLK_GPS 310 145 + #define CLK_SMMU_GPS 311 146 + #define CLK_UART0 312 147 + #define CLK_UART1 313 148 + #define CLK_UART2 314 149 + #define CLK_UART3 315 150 + #define CLK_UART4 316 151 + #define CLK_I2C0 317 152 + #define CLK_I2C1 318 153 + #define CLK_I2C2 319 154 + #define CLK_I2C3 320 155 + #define CLK_I2C4 321 156 + #define CLK_I2C5 322 157 + #define CLK_I2C6 323 158 + #define CLK_I2C7 324 159 + #define CLK_I2C_HDMI 325 160 + #define CLK_TSADC 326 161 + #define CLK_SPI0 327 162 + #define CLK_SPI1 328 163 + #define CLK_SPI2 329 164 + #define CLK_I2S1 330 165 + #define CLK_I2S2 331 166 + #define CLK_PCM0 332 167 + #define CLK_I2S0 333 168 + #define CLK_PCM1 334 169 + #define CLK_PCM2 335 170 + #define CLK_PWM 336 171 + #define CLK_SLIMBUS 337 172 + #define CLK_SPDIF 338 173 + #define CLK_AC97 339 174 + #define CLK_MODEMIF 340 175 + #define CLK_CHIPID 341 176 + #define CLK_SYSREG 342 177 + #define CLK_HDMI_CEC 343 178 + #define CLK_MCT 344 179 + #define CLK_WDT 345 180 + #define CLK_RTC 346 181 + #define CLK_KEYIF 347 182 + #define CLK_AUDSS 348 183 + #define CLK_MIPI_HSI 349 /* Exynos4210 only */ 184 + #define CLK_MDMA2 350 /* Exynos4210 only */ 185 + #define CLK_PIXELASYNCM0 351 186 + #define CLK_PIXELASYNCM1 352 187 + #define CLK_FIMC_LITE0 353 /* Exynos4x12 only */ 188 + #define CLK_FIMC_LITE1 354 /* Exynos4x12 only */ 189 + #define CLK_PPMUISPX 355 /* Exynos4x12 only */ 190 + #define CLK_PPMUISPMX 356 /* Exynos4x12 only */ 191 + #define CLK_FIMC_ISP 357 /* Exynos4x12 only */ 192 + #define CLK_FIMC_DRC 358 /* Exynos4x12 only */ 193 + #define CLK_FIMC_FD 359 /* Exynos4x12 only */ 194 + #define CLK_MCUISP 360 /* Exynos4x12 only */ 195 + #define CLK_GICISP 361 /* Exynos4x12 only */ 196 + #define CLK_SMMU_ISP 362 /* Exynos4x12 only */ 197 + #define CLK_SMMU_DRC 363 /* Exynos4x12 only */ 198 + #define CLK_SMMU_FD 364 /* Exynos4x12 only */ 199 + #define CLK_SMMU_LITE0 365 /* Exynos4x12 only */ 200 + #define CLK_SMMU_LITE1 366 /* Exynos4x12 only */ 201 + #define CLK_MCUCTL_ISP 367 /* Exynos4x12 only */ 202 + #define CLK_MPWM_ISP 368 /* Exynos4x12 only */ 203 + #define CLK_I2C0_ISP 369 /* Exynos4x12 only */ 204 + #define CLK_I2C1_ISP 370 /* Exynos4x12 only */ 205 + #define CLK_MTCADC_ISP 371 /* Exynos4x12 only */ 206 + #define CLK_PWM_ISP 372 /* Exynos4x12 only */ 207 + #define CLK_WDT_ISP 373 /* Exynos4x12 only */ 208 + #define CLK_UART_ISP 374 /* Exynos4x12 only */ 209 + #define CLK_ASYNCAXIM 375 /* Exynos4x12 only */ 210 + #define CLK_SMMU_ISPCX 376 /* Exynos4x12 only */ 211 + #define CLK_SPI0_ISP 377 /* Exynos4x12 only */ 212 + #define CLK_SPI1_ISP 378 /* Exynos4x12 only */ 213 + #define CLK_PWM_ISP_SCLK 379 /* Exynos4x12 only */ 214 + #define CLK_SPI0_ISP_SCLK 380 /* Exynos4x12 only */ 215 + #define CLK_SPI1_ISP_SCLK 381 /* Exynos4x12 only */ 216 + #define CLK_UART_ISP_SCLK 382 /* Exynos4x12 only */ 217 + #define CLK_TMU_APBIF 383 218 + 219 + /* mux clocks */ 220 + #define CLK_MOUT_FIMC0 384 221 + #define CLK_MOUT_FIMC1 385 222 + #define CLK_MOUT_FIMC2 386 223 + #define CLK_MOUT_FIMC3 387 224 + #define CLK_MOUT_CAM0 388 225 + #define CLK_MOUT_CAM1 389 226 + #define CLK_MOUT_CSIS0 390 227 + #define CLK_MOUT_CSIS1 391 228 + #define CLK_MOUT_G3D0 392 229 + #define CLK_MOUT_G3D1 393 230 + #define CLK_MOUT_G3D 394 231 + #define CLK_ACLK400_MCUISP 395 /* Exynos4x12 only */ 232 + 233 + /* div clocks */ 234 + #define CLK_DIV_ISP0 450 /* Exynos4x12 only */ 235 + #define CLK_DIV_ISP1 451 /* Exynos4x12 only */ 236 + #define CLK_DIV_MCUISP0 452 /* Exynos4x12 only */ 237 + #define CLK_DIV_MCUISP1 453 /* Exynos4x12 only */ 238 + #define CLK_DIV_ACLK200 454 /* Exynos4x12 only */ 239 + #define CLK_DIV_ACLK400_MCUISP 455 /* Exynos4x12 only */ 240 + 241 + /* must be greater than maximal clock id */ 242 + #define CLK_NR_CLKS 456 243 + 244 + #endif /* _DT_BINDINGS_CLOCK_EXYNOS_4_H */
+160
include/dt-bindings/clock/exynos5250.h
··· 1 + /* 2 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. 3 + * Author: Andrzej Haja <a.hajda@samsung.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * Device Tree binding constants for Exynos5250 clock controller. 10 + */ 11 + 12 + #ifndef _DT_BINDINGS_CLOCK_EXYNOS_5250_H 13 + #define _DT_BINDINGS_CLOCK_EXYNOS_5250_H 14 + 15 + /* core clocks */ 16 + #define CLK_FIN_PLL 1 17 + #define CLK_FOUT_APLL 2 18 + #define CLK_FOUT_MPLL 3 19 + #define CLK_FOUT_BPLL 4 20 + #define CLK_FOUT_GPLL 5 21 + #define CLK_FOUT_CPLL 6 22 + #define CLK_FOUT_EPLL 7 23 + #define CLK_FOUT_VPLL 8 24 + 25 + /* gate for special clocks (sclk) */ 26 + #define CLK_SCLK_CAM_BAYER 128 27 + #define CLK_SCLK_CAM0 129 28 + #define CLK_SCLK_CAM1 130 29 + #define CLK_SCLK_GSCL_WA 131 30 + #define CLK_SCLK_GSCL_WB 132 31 + #define CLK_SCLK_FIMD1 133 32 + #define CLK_SCLK_MIPI1 134 33 + #define CLK_SCLK_DP 135 34 + #define CLK_SCLK_HDMI 136 35 + #define CLK_SCLK_PIXEL 137 36 + #define CLK_SCLK_AUDIO0 138 37 + #define CLK_SCLK_MMC0 139 38 + #define CLK_SCLK_MMC1 140 39 + #define CLK_SCLK_MMC2 141 40 + #define CLK_SCLK_MMC3 142 41 + #define CLK_SCLK_SATA 143 42 + #define CLK_SCLK_USB3 144 43 + #define CLK_SCLK_JPEG 145 44 + #define CLK_SCLK_UART0 146 45 + #define CLK_SCLK_UART1 147 46 + #define CLK_SCLK_UART2 148 47 + #define CLK_SCLK_UART3 149 48 + #define CLK_SCLK_PWM 150 49 + #define CLK_SCLK_AUDIO1 151 50 + #define CLK_SCLK_AUDIO2 152 51 + #define CLK_SCLK_SPDIF 153 52 + #define CLK_SCLK_SPI0 154 53 + #define CLK_SCLK_SPI1 155 54 + #define CLK_SCLK_SPI2 156 55 + #define CLK_DIV_I2S1 157 56 + #define CLK_DIV_I2S2 158 57 + #define CLK_SCLK_HDMIPHY 159 58 + #define CLK_DIV_PCM0 160 59 + 60 + /* gate clocks */ 61 + #define CLK_GSCL0 256 62 + #define CLK_GSCL1 257 63 + #define CLK_GSCL2 258 64 + #define CLK_GSCL3 259 65 + #define CLK_GSCL_WA 260 66 + #define CLK_GSCL_WB 261 67 + #define CLK_SMMU_GSCL0 262 68 + #define CLK_SMMU_GSCL1 263 69 + #define CLK_SMMU_GSCL2 264 70 + #define CLK_SMMU_GSCL3 265 71 + #define CLK_MFC 266 72 + #define CLK_SMMU_MFCL 267 73 + #define CLK_SMMU_MFCR 268 74 + #define CLK_ROTATOR 269 75 + #define CLK_JPEG 270 76 + #define CLK_MDMA1 271 77 + #define CLK_SMMU_ROTATOR 272 78 + #define CLK_SMMU_JPEG 273 79 + #define CLK_SMMU_MDMA1 274 80 + #define CLK_PDMA0 275 81 + #define CLK_PDMA1 276 82 + #define CLK_SATA 277 83 + #define CLK_USBOTG 278 84 + #define CLK_MIPI_HSI 279 85 + #define CLK_SDMMC0 280 86 + #define CLK_SDMMC1 281 87 + #define CLK_SDMMC2 282 88 + #define CLK_SDMMC3 283 89 + #define CLK_SROMC 284 90 + #define CLK_USB2 285 91 + #define CLK_USB3 286 92 + #define CLK_SATA_PHYCTRL 287 93 + #define CLK_SATA_PHYI2C 288 94 + #define CLK_UART0 289 95 + #define CLK_UART1 290 96 + #define CLK_UART2 291 97 + #define CLK_UART3 292 98 + #define CLK_UART4 293 99 + #define CLK_I2C0 294 100 + #define CLK_I2C1 295 101 + #define CLK_I2C2 296 102 + #define CLK_I2C3 297 103 + #define CLK_I2C4 298 104 + #define CLK_I2C5 299 105 + #define CLK_I2C6 300 106 + #define CLK_I2C7 301 107 + #define CLK_I2C_HDMI 302 108 + #define CLK_ADC 303 109 + #define CLK_SPI0 304 110 + #define CLK_SPI1 305 111 + #define CLK_SPI2 306 112 + #define CLK_I2S1 307 113 + #define CLK_I2S2 308 114 + #define CLK_PCM1 309 115 + #define CLK_PCM2 310 116 + #define CLK_PWM 311 117 + #define CLK_SPDIF 312 118 + #define CLK_AC97 313 119 + #define CLK_HSI2C0 314 120 + #define CLK_HSI2C1 315 121 + #define CLK_HSI2C2 316 122 + #define CLK_HSI2C3 317 123 + #define CLK_CHIPID 318 124 + #define CLK_SYSREG 319 125 + #define CLK_PMU 320 126 + #define CLK_CMU_TOP 321 127 + #define CLK_CMU_CORE 322 128 + #define CLK_CMU_MEM 323 129 + #define CLK_TZPC0 324 130 + #define CLK_TZPC1 325 131 + #define CLK_TZPC2 326 132 + #define CLK_TZPC3 327 133 + #define CLK_TZPC4 328 134 + #define CLK_TZPC5 329 135 + #define CLK_TZPC6 330 136 + #define CLK_TZPC7 331 137 + #define CLK_TZPC8 332 138 + #define CLK_TZPC9 333 139 + #define CLK_HDMI_CEC 334 140 + #define CLK_MCT 335 141 + #define CLK_WDT 336 142 + #define CLK_RTC 337 143 + #define CLK_TMU 338 144 + #define CLK_FIMD1 339 145 + #define CLK_MIE1 340 146 + #define CLK_DSIM0 341 147 + #define CLK_DP 342 148 + #define CLK_MIXER 343 149 + #define CLK_HDMI 344 150 + #define CLK_G2D 345 151 + #define CLK_MDMA0 346 152 + #define CLK_SMMU_MDMA0 347 153 + 154 + /* mux clocks */ 155 + #define CLK_MOUT_HDMI 1024 156 + 157 + /* must be greater than maximal clock id */ 158 + #define CLK_NR_CLKS 1025 159 + 160 + #endif /* _DT_BINDINGS_CLOCK_EXYNOS_5250_H */
+188
include/dt-bindings/clock/exynos5420.h
··· 1 + /* 2 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. 3 + * Author: Andrzej Haja <a.hajda@samsung.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * Device Tree binding constants for Exynos5420 clock controller. 10 + */ 11 + 12 + #ifndef _DT_BINDINGS_CLOCK_EXYNOS_5420_H 13 + #define _DT_BINDINGS_CLOCK_EXYNOS_5420_H 14 + 15 + /* core clocks */ 16 + #define CLK_FIN_PLL 1 17 + #define CLK_FOUT_APLL 2 18 + #define CLK_FOUT_CPLL 3 19 + #define CLK_FOUT_DPLL 4 20 + #define CLK_FOUT_EPLL 5 21 + #define CLK_FOUT_RPLL 6 22 + #define CLK_FOUT_IPLL 7 23 + #define CLK_FOUT_SPLL 8 24 + #define CLK_FOUT_VPLL 9 25 + #define CLK_FOUT_MPLL 10 26 + #define CLK_FOUT_BPLL 11 27 + #define CLK_FOUT_KPLL 12 28 + 29 + /* gate for special clocks (sclk) */ 30 + #define CLK_SCLK_UART0 128 31 + #define CLK_SCLK_UART1 129 32 + #define CLK_SCLK_UART2 130 33 + #define CLK_SCLK_UART3 131 34 + #define CLK_SCLK_MMC0 132 35 + #define CLK_SCLK_MMC1 133 36 + #define CLK_SCLK_MMC2 134 37 + #define CLK_SCLK_SPI0 135 38 + #define CLK_SCLK_SPI1 136 39 + #define CLK_SCLK_SPI2 137 40 + #define CLK_SCLK_I2S1 138 41 + #define CLK_SCLK_I2S2 139 42 + #define CLK_SCLK_PCM1 140 43 + #define CLK_SCLK_PCM2 141 44 + #define CLK_SCLK_SPDIF 142 45 + #define CLK_SCLK_HDMI 143 46 + #define CLK_SCLK_PIXEL 144 47 + #define CLK_SCLK_DP1 145 48 + #define CLK_SCLK_MIPI1 146 49 + #define CLK_SCLK_FIMD1 147 50 + #define CLK_SCLK_MAUDIO0 148 51 + #define CLK_SCLK_MAUPCM0 149 52 + #define CLK_SCLK_USBD300 150 53 + #define CLK_SCLK_USBD301 151 54 + #define CLK_SCLK_USBPHY300 152 55 + #define CLK_SCLK_USBPHY301 153 56 + #define CLK_SCLK_UNIPRO 154 57 + #define CLK_SCLK_PWM 155 58 + #define CLK_SCLK_GSCL_WA 156 59 + #define CLK_SCLK_GSCL_WB 157 60 + #define CLK_SCLK_HDMIPHY 158 61 + 62 + /* gate clocks */ 63 + #define CLK_ACLK66_PERIC 256 64 + #define CLK_UART0 257 65 + #define CLK_UART1 258 66 + #define CLK_UART2 259 67 + #define CLK_UART3 260 68 + #define CLK_I2C0 261 69 + #define CLK_I2C1 262 70 + #define CLK_I2C2 263 71 + #define CLK_I2C3 264 72 + #define CLK_I2C4 265 73 + #define CLK_I2C5 266 74 + #define CLK_I2C6 267 75 + #define CLK_I2C7 268 76 + #define CLK_I2C_HDMI 269 77 + #define CLK_TSADC 270 78 + #define CLK_SPI0 271 79 + #define CLK_SPI1 272 80 + #define CLK_SPI2 273 81 + #define CLK_KEYIF 274 82 + #define CLK_I2S1 275 83 + #define CLK_I2S2 276 84 + #define CLK_PCM1 277 85 + #define CLK_PCM2 278 86 + #define CLK_PWM 279 87 + #define CLK_SPDIF 280 88 + #define CLK_I2C8 281 89 + #define CLK_I2C9 282 90 + #define CLK_I2C10 283 91 + #define CLK_ACLK66_PSGEN 300 92 + #define CLK_CHIPID 301 93 + #define CLK_SYSREG 302 94 + #define CLK_TZPC0 303 95 + #define CLK_TZPC1 304 96 + #define CLK_TZPC2 305 97 + #define CLK_TZPC3 306 98 + #define CLK_TZPC4 307 99 + #define CLK_TZPC5 308 100 + #define CLK_TZPC6 309 101 + #define CLK_TZPC7 310 102 + #define CLK_TZPC8 311 103 + #define CLK_TZPC9 312 104 + #define CLK_HDMI_CEC 313 105 + #define CLK_SECKEY 314 106 + #define CLK_MCT 315 107 + #define CLK_WDT 316 108 + #define CLK_RTC 317 109 + #define CLK_TMU 318 110 + #define CLK_TMU_GPU 319 111 + #define CLK_PCLK66_GPIO 330 112 + #define CLK_ACLK200_FSYS2 350 113 + #define CLK_MMC0 351 114 + #define CLK_MMC1 352 115 + #define CLK_MMC2 353 116 + #define CLK_SROMC 354 117 + #define CLK_UFS 355 118 + #define CLK_ACLK200_FSYS 360 119 + #define CLK_TSI 361 120 + #define CLK_PDMA0 362 121 + #define CLK_PDMA1 363 122 + #define CLK_RTIC 364 123 + #define CLK_USBH20 365 124 + #define CLK_USBD300 366 125 + #define CLK_USBD301 367 126 + #define CLK_ACLK400_MSCL 380 127 + #define CLK_MSCL0 381 128 + #define CLK_MSCL1 382 129 + #define CLK_MSCL2 383 130 + #define CLK_SMMU_MSCL0 384 131 + #define CLK_SMMU_MSCL1 385 132 + #define CLK_SMMU_MSCL2 386 133 + #define CLK_ACLK333 400 134 + #define CLK_MFC 401 135 + #define CLK_SMMU_MFCL 402 136 + #define CLK_SMMU_MFCR 403 137 + #define CLK_ACLK200_DISP1 410 138 + #define CLK_DSIM1 411 139 + #define CLK_DP1 412 140 + #define CLK_HDMI 413 141 + #define CLK_ACLK300_DISP1 420 142 + #define CLK_FIMD1 421 143 + #define CLK_SMMU_FIMD1 422 144 + #define CLK_ACLK166 430 145 + #define CLK_MIXER 431 146 + #define CLK_ACLK266 440 147 + #define CLK_ROTATOR 441 148 + #define CLK_MDMA1 442 149 + #define CLK_SMMU_ROTATOR 443 150 + #define CLK_SMMU_MDMA1 444 151 + #define CLK_ACLK300_JPEG 450 152 + #define CLK_JPEG 451 153 + #define CLK_JPEG2 452 154 + #define CLK_SMMU_JPEG 453 155 + #define CLK_ACLK300_GSCL 460 156 + #define CLK_SMMU_GSCL0 461 157 + #define CLK_SMMU_GSCL1 462 158 + #define CLK_GSCL_WA 463 159 + #define CLK_GSCL_WB 464 160 + #define CLK_GSCL0 465 161 + #define CLK_GSCL1 466 162 + #define CLK_CLK_3AA 467 163 + #define CLK_ACLK266_G2D 470 164 + #define CLK_SSS 471 165 + #define CLK_SLIM_SSS 472 166 + #define CLK_MDMA0 473 167 + #define CLK_ACLK333_G2D 480 168 + #define CLK_G2D 481 169 + #define CLK_ACLK333_432_GSCL 490 170 + #define CLK_SMMU_3AA 491 171 + #define CLK_SMMU_FIMCL0 492 172 + #define CLK_SMMU_FIMCL1 493 173 + #define CLK_SMMU_FIMCL3 494 174 + #define CLK_FIMC_LITE3 495 175 + #define CLK_ACLK_G3D 500 176 + #define CLK_G3D 501 177 + #define CLK_SMMU_MIXER 502 178 + 179 + /* mux clocks */ 180 + #define CLK_MOUT_HDMI 640 181 + 182 + /* divider clocks */ 183 + #define CLK_DOUT_PIXEL 768 184 + 185 + /* must be greater than maximal clock id */ 186 + #define CLK_NR_CLKS 769 187 + 188 + #endif /* _DT_BINDINGS_CLOCK_EXYNOS_5420_H */
+42
include/dt-bindings/clock/exynos5440.h
··· 1 + /* 2 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. 3 + * Author: Andrzej Haja <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * Device Tree binding constants for Exynos5440 clock controller. 10 + */ 11 + 12 + #ifndef _DT_BINDINGS_CLOCK_EXYNOS_5440_H 13 + #define _DT_BINDINGS_CLOCK_EXYNOS_5440_H 14 + 15 + #define CLK_XTAL 1 16 + #define CLK_ARM_CLK 2 17 + #define CLK_SPI_BAUD 16 18 + #define CLK_PB0_250 17 19 + #define CLK_PR0_250 18 20 + #define CLK_PR1_250 19 21 + #define CLK_B_250 20 22 + #define CLK_B_125 21 23 + #define CLK_B_200 22 24 + #define CLK_SATA 23 25 + #define CLK_USB 24 26 + #define CLK_GMAC0 25 27 + #define CLK_CS250 26 28 + #define CLK_PB0_250_O 27 29 + #define CLK_PR0_250_O 28 30 + #define CLK_PR1_250_O 29 31 + #define CLK_B_250_O 30 32 + #define CLK_B_125_O 31 33 + #define CLK_B_200_O 32 34 + #define CLK_SATA_O 33 35 + #define CLK_USB_O 34 36 + #define CLK_GMAC0_O 35 37 + #define CLK_CS250_O 36 38 + 39 + /* must be greater than maximal clock id */ 40 + #define CLK_NR_CLKS 37 41 + 42 + #endif /* _DT_BINDINGS_CLOCK_EXYNOS_5440_H */