forked from Minki/linux
Samsung clock fixes for v3.16.
This pull request contains fixes for various issues found while testing -rc versions of Linux 3.16. Mostly two kinds of patches: * Fixes of incorrectly defined clocks 1)a37c82a
clk: samsung: exynos4: Remove SRC_MASK_ISP gates Issue present since v3.10. 2)0b1643b
clk/exynos5250: fix bit number for tv sysmmu clock Issue present since v3.16. 3)44ff025
clk: exynos5420: Remove aclk66_peric from the clock tree description Issue present since v3.11. * Adding things missed by original patches 1)cec1cde
clk: samsung: fix several typos to fix boot on s3c2410 2)34ece9e
clk: samsung: add more aliases for s3c24xx Both issues present since the driver was added in v3.16. 3)a92dda4
clk: s3c64xx: Hookup SPI clocks correctly Issue present since v3.12. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABAgAGBQJTtDYTAAoJEIv3Hb8G/XrulvoQAJSaAnP4IzKmMwB85yyZmfeg ROYQnk9ig2vQjwN2XY9gUmGnkNIhn+oskurScSCDL3egdxaFGyeRK3JiNYWfLHWp p868MUf9xV+MJhlDBatfAU7B2CZ6hEm0+350cm2+PVAjxRW35zTHpHwU1dWXTMMi hQCvcMke3aNi7aMPpzZK+TFxWcGuRHXGwA4aozLby4J56s328ZQ38HQSMkeaMi+A FgcW3+5WmFW7L82Hw2ZKIQ3XLlVLHCA9mGlLZpqQP93zoQZv50IrAm5ldKI6kkS2 AQtbpJMv3Eld3hzyKUeL15W3ozvUXKS+0eLmOlHq02sdLYr2ZtF3bPG3xbyaMp49 bFRLjTKoCyEdUCbF99wrO8qaJL+aA52JZ/nwppc0eXr+8wjIA1dvvzUoVQQMqjOX kk1AdOj8+hVqsy2vuMRlejJZZ9Yle5+4r+580CTmVrR/sJknAzdqiRTH48OjEffo 6G7STja8Xf4o9S86HtOCFxtsDCrv6ndK0g5JJ2ctnBlIj/PIdykMnZDN2LmVCLmO teOuRH6OSJqsxqo5vwTQltsoNoiRM6YbtOA1vixh62tyP5Zo9O0J7Z77I05FlO7D ct+BD6jNNj21GGQrKC+AJxqc3zPPI+Nyapcl6BbytB85KY6kqKopMR3vZKRmdXjY 01TSSaTZWm8CbSIBiG6w =eE4V -----END PGP SIGNATURE----- Merge tag 'for_3.16/samsung-clk-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tfiga/samsung-clk into clk-fixes-samsung Samsung clock fixes for v3.16. This pull request contains fixes for various issues found while testing -rc versions of Linux 3.16. Mostly two kinds of patches: * Fixes of incorrectly defined clocks 1)a37c82a
clk: samsung: exynos4: Remove SRC_MASK_ISP gates Issue present since v3.10. 2)0b1643b
clk/exynos5250: fix bit number for tv sysmmu clock Issue present since v3.16. 3)44ff025
clk: exynos5420: Remove aclk66_peric from the clock tree description Issue present since v3.11. * Adding things missed by original patches 1)cec1cde
clk: samsung: fix several typos to fix boot on s3c2410 2)34ece9e
clk: samsung: add more aliases for s3c24xx Both issues present since the driver was added in v3.16. 3)a92dda4
clk: s3c64xx: Hookup SPI clocks correctly Issue present since v3.12.
This commit is contained in:
commit
4924b8a2fa
@ -925,21 +925,13 @@ static struct samsung_gate_clock exynos4x12_gate_clks[] __initdata = {
|
||||
GATE(CLK_RTC, "rtc", "aclk100", E4X12_GATE_IP_PERIR, 15,
|
||||
0, 0),
|
||||
GATE(CLK_KEYIF, "keyif", "aclk100", E4X12_GATE_IP_PERIR, 16, 0, 0),
|
||||
GATE(CLK_SCLK_PWM_ISP, "sclk_pwm_isp", "div_pwm_isp",
|
||||
E4X12_SRC_MASK_ISP, 0, CLK_SET_RATE_PARENT, 0),
|
||||
GATE(CLK_SCLK_SPI0_ISP, "sclk_spi0_isp", "div_spi0_isp_pre",
|
||||
E4X12_SRC_MASK_ISP, 4, CLK_SET_RATE_PARENT, 0),
|
||||
GATE(CLK_SCLK_SPI1_ISP, "sclk_spi1_isp", "div_spi1_isp_pre",
|
||||
E4X12_SRC_MASK_ISP, 8, CLK_SET_RATE_PARENT, 0),
|
||||
GATE(CLK_SCLK_UART_ISP, "sclk_uart_isp", "div_uart_isp",
|
||||
E4X12_SRC_MASK_ISP, 12, CLK_SET_RATE_PARENT, 0),
|
||||
GATE(CLK_PWM_ISP_SCLK, "pwm_isp_sclk", "sclk_pwm_isp",
|
||||
GATE(CLK_PWM_ISP_SCLK, "pwm_isp_sclk", "div_pwm_isp",
|
||||
E4X12_GATE_IP_ISP, 0, 0, 0),
|
||||
GATE(CLK_SPI0_ISP_SCLK, "spi0_isp_sclk", "sclk_spi0_isp",
|
||||
GATE(CLK_SPI0_ISP_SCLK, "spi0_isp_sclk", "div_spi0_isp_pre",
|
||||
E4X12_GATE_IP_ISP, 1, 0, 0),
|
||||
GATE(CLK_SPI1_ISP_SCLK, "spi1_isp_sclk", "sclk_spi1_isp",
|
||||
GATE(CLK_SPI1_ISP_SCLK, "spi1_isp_sclk", "div_spi1_isp_pre",
|
||||
E4X12_GATE_IP_ISP, 2, 0, 0),
|
||||
GATE(CLK_UART_ISP_SCLK, "uart_isp_sclk", "sclk_uart_isp",
|
||||
GATE(CLK_UART_ISP_SCLK, "uart_isp_sclk", "div_uart_isp",
|
||||
E4X12_GATE_IP_ISP, 3, 0, 0),
|
||||
GATE(CLK_WDT, "watchdog", "aclk100", E4X12_GATE_IP_PERIR, 14, 0, 0),
|
||||
GATE(CLK_PCM0, "pcm0", "aclk100", E4X12_GATE_IP_MAUDIO, 2,
|
||||
|
@ -661,7 +661,7 @@ static struct samsung_gate_clock exynos5250_gate_clks[] __initdata = {
|
||||
GATE(CLK_RTC, "rtc", "div_aclk66", GATE_IP_PERIS, 20, 0, 0),
|
||||
GATE(CLK_TMU, "tmu", "div_aclk66", GATE_IP_PERIS, 21, 0, 0),
|
||||
GATE(CLK_SMMU_TV, "smmu_tv", "mout_aclk200_disp1_sub",
|
||||
GATE_IP_DISP1, 2, 0, 0),
|
||||
GATE_IP_DISP1, 9, 0, 0),
|
||||
GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "mout_aclk200_disp1_sub",
|
||||
GATE_IP_DISP1, 8, 0, 0),
|
||||
GATE(CLK_SMMU_2D, "smmu_2d", "div_aclk200", GATE_IP_ACP, 7, 0, 0),
|
||||
|
@ -890,8 +890,6 @@ static struct samsung_gate_clock exynos5x_gate_clks[] __initdata = {
|
||||
GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
|
||||
GATE(0, "aclk66_psgen", "mout_user_aclk66_psgen",
|
||||
GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
|
||||
GATE(CLK_ACLK66_PERIC, "aclk66_peric", "mout_user_aclk66_peric",
|
||||
GATE_BUS_TOP, 11, CLK_IGNORE_UNUSED, 0),
|
||||
GATE(0, "aclk266_isp", "mout_user_aclk266_isp",
|
||||
GATE_BUS_TOP, 13, 0, 0),
|
||||
GATE(0, "aclk166", "mout_user_aclk166",
|
||||
@ -994,34 +992,61 @@ static struct samsung_gate_clock exynos5x_gate_clks[] __initdata = {
|
||||
SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0),
|
||||
|
||||
/* PERIC Block */
|
||||
GATE(CLK_UART0, "uart0", "aclk66_peric", GATE_IP_PERIC, 0, 0, 0),
|
||||
GATE(CLK_UART1, "uart1", "aclk66_peric", GATE_IP_PERIC, 1, 0, 0),
|
||||
GATE(CLK_UART2, "uart2", "aclk66_peric", GATE_IP_PERIC, 2, 0, 0),
|
||||
GATE(CLK_UART3, "uart3", "aclk66_peric", GATE_IP_PERIC, 3, 0, 0),
|
||||
GATE(CLK_I2C0, "i2c0", "aclk66_peric", GATE_IP_PERIC, 6, 0, 0),
|
||||
GATE(CLK_I2C1, "i2c1", "aclk66_peric", GATE_IP_PERIC, 7, 0, 0),
|
||||
GATE(CLK_I2C2, "i2c2", "aclk66_peric", GATE_IP_PERIC, 8, 0, 0),
|
||||
GATE(CLK_I2C3, "i2c3", "aclk66_peric", GATE_IP_PERIC, 9, 0, 0),
|
||||
GATE(CLK_USI0, "usi0", "aclk66_peric", GATE_IP_PERIC, 10, 0, 0),
|
||||
GATE(CLK_USI1, "usi1", "aclk66_peric", GATE_IP_PERIC, 11, 0, 0),
|
||||
GATE(CLK_USI2, "usi2", "aclk66_peric", GATE_IP_PERIC, 12, 0, 0),
|
||||
GATE(CLK_USI3, "usi3", "aclk66_peric", GATE_IP_PERIC, 13, 0, 0),
|
||||
GATE(CLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric", GATE_IP_PERIC, 14, 0, 0),
|
||||
GATE(CLK_TSADC, "tsadc", "aclk66_peric", GATE_IP_PERIC, 15, 0, 0),
|
||||
GATE(CLK_SPI0, "spi0", "aclk66_peric", GATE_IP_PERIC, 16, 0, 0),
|
||||
GATE(CLK_SPI1, "spi1", "aclk66_peric", GATE_IP_PERIC, 17, 0, 0),
|
||||
GATE(CLK_SPI2, "spi2", "aclk66_peric", GATE_IP_PERIC, 18, 0, 0),
|
||||
GATE(CLK_I2S1, "i2s1", "aclk66_peric", GATE_IP_PERIC, 20, 0, 0),
|
||||
GATE(CLK_I2S2, "i2s2", "aclk66_peric", GATE_IP_PERIC, 21, 0, 0),
|
||||
GATE(CLK_PCM1, "pcm1", "aclk66_peric", GATE_IP_PERIC, 22, 0, 0),
|
||||
GATE(CLK_PCM2, "pcm2", "aclk66_peric", GATE_IP_PERIC, 23, 0, 0),
|
||||
GATE(CLK_PWM, "pwm", "aclk66_peric", GATE_IP_PERIC, 24, 0, 0),
|
||||
GATE(CLK_SPDIF, "spdif", "aclk66_peric", GATE_IP_PERIC, 26, 0, 0),
|
||||
GATE(CLK_USI4, "usi4", "aclk66_peric", GATE_IP_PERIC, 28, 0, 0),
|
||||
GATE(CLK_USI5, "usi5", "aclk66_peric", GATE_IP_PERIC, 30, 0, 0),
|
||||
GATE(CLK_USI6, "usi6", "aclk66_peric", GATE_IP_PERIC, 31, 0, 0),
|
||||
GATE(CLK_UART0, "uart0", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 0, 0, 0),
|
||||
GATE(CLK_UART1, "uart1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 1, 0, 0),
|
||||
GATE(CLK_UART2, "uart2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 2, 0, 0),
|
||||
GATE(CLK_UART3, "uart3", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 3, 0, 0),
|
||||
GATE(CLK_I2C0, "i2c0", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 6, 0, 0),
|
||||
GATE(CLK_I2C1, "i2c1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 7, 0, 0),
|
||||
GATE(CLK_I2C2, "i2c2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 8, 0, 0),
|
||||
GATE(CLK_I2C3, "i2c3", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 9, 0, 0),
|
||||
GATE(CLK_USI0, "usi0", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 10, 0, 0),
|
||||
GATE(CLK_USI1, "usi1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 11, 0, 0),
|
||||
GATE(CLK_USI2, "usi2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 12, 0, 0),
|
||||
GATE(CLK_USI3, "usi3", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 13, 0, 0),
|
||||
GATE(CLK_I2C_HDMI, "i2c_hdmi", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 14, 0, 0),
|
||||
GATE(CLK_TSADC, "tsadc", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 15, 0, 0),
|
||||
GATE(CLK_SPI0, "spi0", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 16, 0, 0),
|
||||
GATE(CLK_SPI1, "spi1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 17, 0, 0),
|
||||
GATE(CLK_SPI2, "spi2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 18, 0, 0),
|
||||
GATE(CLK_I2S1, "i2s1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 20, 0, 0),
|
||||
GATE(CLK_I2S2, "i2s2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 21, 0, 0),
|
||||
GATE(CLK_PCM1, "pcm1", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 22, 0, 0),
|
||||
GATE(CLK_PCM2, "pcm2", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 23, 0, 0),
|
||||
GATE(CLK_PWM, "pwm", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 24, 0, 0),
|
||||
GATE(CLK_SPDIF, "spdif", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 26, 0, 0),
|
||||
GATE(CLK_USI4, "usi4", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 28, 0, 0),
|
||||
GATE(CLK_USI5, "usi5", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 30, 0, 0),
|
||||
GATE(CLK_USI6, "usi6", "mout_user_aclk66_peric",
|
||||
GATE_IP_PERIC, 31, 0, 0),
|
||||
|
||||
GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0),
|
||||
GATE(CLK_KEYIF, "keyif", "mout_user_aclk66_peric",
|
||||
GATE_BUS_PERIC, 22, 0, 0),
|
||||
|
||||
/* PERIS Block */
|
||||
GATE(CLK_CHIPID, "chipid", "aclk66_psgen",
|
||||
|
@ -152,6 +152,11 @@ struct samsung_clock_alias s3c2410_common_aliases[] __initdata = {
|
||||
ALIAS(HCLK, NULL, "hclk"),
|
||||
ALIAS(MPLL, NULL, "mpll"),
|
||||
ALIAS(FCLK, NULL, "fclk"),
|
||||
ALIAS(PCLK, NULL, "watchdog"),
|
||||
ALIAS(PCLK_SDI, NULL, "sdi"),
|
||||
ALIAS(HCLK_NAND, NULL, "nand"),
|
||||
ALIAS(PCLK_I2S, NULL, "iis"),
|
||||
ALIAS(PCLK_I2C, NULL, "i2c"),
|
||||
};
|
||||
|
||||
/* S3C2410 specific clocks */
|
||||
@ -378,7 +383,7 @@ void __init s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f,
|
||||
if (!np)
|
||||
s3c2410_common_clk_register_fixed_ext(ctx, xti_f);
|
||||
|
||||
if (current_soc == 2410) {
|
||||
if (current_soc == S3C2410) {
|
||||
if (_get_rate("xti") == 12 * MHZ) {
|
||||
s3c2410_plls[mpll].rate_table = pll_s3c2410_12mhz_tbl;
|
||||
s3c2410_plls[upll].rate_table = pll_s3c2410_12mhz_tbl;
|
||||
@ -432,7 +437,7 @@ void __init s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f,
|
||||
samsung_clk_register_fixed_factor(ctx, s3c2410_ffactor,
|
||||
ARRAY_SIZE(s3c2410_ffactor));
|
||||
samsung_clk_register_alias(ctx, s3c2410_aliases,
|
||||
ARRAY_SIZE(s3c2410_common_aliases));
|
||||
ARRAY_SIZE(s3c2410_aliases));
|
||||
break;
|
||||
case S3C2440:
|
||||
samsung_clk_register_mux(ctx, s3c2440_muxes,
|
||||
|
@ -418,8 +418,10 @@ static struct samsung_clock_alias s3c64xx_clock_aliases[] = {
|
||||
ALIAS(SCLK_MMC2, "s3c-sdhci.2", "mmc_busclk.2"),
|
||||
ALIAS(SCLK_MMC1, "s3c-sdhci.1", "mmc_busclk.2"),
|
||||
ALIAS(SCLK_MMC0, "s3c-sdhci.0", "mmc_busclk.2"),
|
||||
ALIAS(SCLK_SPI1, "s3c6410-spi.1", "spi-bus"),
|
||||
ALIAS(SCLK_SPI0, "s3c6410-spi.0", "spi-bus"),
|
||||
ALIAS(PCLK_SPI1, "s3c6410-spi.1", "spi_busclk0"),
|
||||
ALIAS(SCLK_SPI1, "s3c6410-spi.1", "spi_busclk2"),
|
||||
ALIAS(PCLK_SPI0, "s3c6410-spi.0", "spi_busclk0"),
|
||||
ALIAS(SCLK_SPI0, "s3c6410-spi.0", "spi_busclk2"),
|
||||
ALIAS(SCLK_AUDIO1, "samsung-pcm.1", "audio-bus"),
|
||||
ALIAS(SCLK_AUDIO1, "samsung-i2s.1", "audio-bus"),
|
||||
ALIAS(SCLK_AUDIO0, "samsung-pcm.0", "audio-bus"),
|
||||
|
@ -63,7 +63,6 @@
|
||||
#define CLK_SCLK_MPHY_IXTAL24 161
|
||||
|
||||
/* gate clocks */
|
||||
#define CLK_ACLK66_PERIC 256
|
||||
#define CLK_UART0 257
|
||||
#define CLK_UART1 258
|
||||
#define CLK_UART2 259
|
||||
|
Loading…
Reference in New Issue
Block a user