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

clk: samsung: exynos7: add gate clocks for WDT, TMU and PWM blocks

Add clock support for the watchdog timer, pwm timer and thermal
management unit IPs in Exynos7.

Signed-off-by: Naveen Krishna Ch <naveenkrishna.ch@gmail.com>
Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>

authored by

Naveen Krishna Ch and committed by
Sylwester Nawrocki
2ab2dfe5 f5e127cd

+21 -2
+14
drivers/clk/samsung/clk-exynos7.c
··· 486 486 ENABLE_PCLK_PERIC0, 14, 0, 0), 487 487 GATE(PCLK_UART0, "pclk_uart0", "mout_aclk_peric0_66_user", 488 488 ENABLE_PCLK_PERIC0, 16, 0, 0), 489 + GATE(PCLK_PWM, "pclk_pwm", "mout_aclk_peric0_66_user", 490 + ENABLE_PCLK_PERIC0, 21, 0, 0), 489 491 490 492 GATE(SCLK_UART0, "sclk_uart0_user", "mout_sclk_uart0_user", 491 493 ENABLE_SCLK_PERIC0, 16, 0, 0), 494 + GATE(SCLK_PWM, "sclk_pwm", "fin_pll", ENABLE_SCLK_PERIC0, 21, 0, 0), 492 495 }; 493 496 494 497 static struct samsung_cmu_info peric0_cmu_info __initdata = { ··· 589 586 590 587 /* Register Offset definitions for CMU_PERIS (0x10040000) */ 591 588 #define MUX_SEL_PERIS 0x0200 589 + #define ENABLE_PCLK_PERIS 0x0900 592 590 #define ENABLE_PCLK_PERIS_SECURE_CHIPID 0x0910 591 + #define ENABLE_SCLK_PERIS 0x0A00 593 592 #define ENABLE_SCLK_PERIS_SECURE_CHIPID 0x0A10 594 593 595 594 /* List of parent clocks for Muxes in CMU_PERIS */ ··· 599 594 600 595 static unsigned long peris_clk_regs[] __initdata = { 601 596 MUX_SEL_PERIS, 597 + ENABLE_PCLK_PERIS, 602 598 ENABLE_PCLK_PERIS_SECURE_CHIPID, 599 + ENABLE_SCLK_PERIS, 603 600 ENABLE_SCLK_PERIS_SECURE_CHIPID, 604 601 }; 605 602 ··· 611 604 }; 612 605 613 606 static struct samsung_gate_clock peris_gate_clks[] __initdata = { 607 + GATE(PCLK_WDT, "pclk_wdt", "mout_aclk_peris_66_user", 608 + ENABLE_PCLK_PERIS, 6, 0, 0), 609 + GATE(PCLK_TMU, "pclk_tmu_apbif", "mout_aclk_peris_66_user", 610 + ENABLE_PCLK_PERIS, 10, 0, 0), 611 + 614 612 GATE(PCLK_CHIPID, "pclk_chipid", "mout_aclk_peris_66_user", 615 613 ENABLE_PCLK_PERIS_SECURE_CHIPID, 0, 0, 0), 616 614 GATE(SCLK_CHIPID, "sclk_chipid", "fin_pll", 617 615 ENABLE_SCLK_PERIS_SECURE_CHIPID, 0, 0, 0), 616 + 617 + GATE(SCLK_TMU, "sclk_tmu", "fin_pll", ENABLE_SCLK_PERIS, 10, 0, 0), 618 618 }; 619 619 620 620 static struct samsung_cmu_info peris_cmu_info __initdata = {
+7 -2
include/dt-bindings/clock/exynos7-clk.h
··· 53 53 #define PCLK_HSI2C9 7 54 54 #define PCLK_HSI2C10 8 55 55 #define PCLK_HSI2C11 9 56 - #define PERIC0_NR_CLK 10 56 + #define PCLK_PWM 10 57 + #define SCLK_PWM 11 58 + #define PERIC0_NR_CLK 12 57 59 58 60 /* PERIC1 */ 59 61 #define PCLK_UART1 1 ··· 74 72 /* PERIS */ 75 73 #define PCLK_CHIPID 1 76 74 #define SCLK_CHIPID 2 77 - #define PERIS_NR_CLK 3 75 + #define PCLK_WDT 3 76 + #define PCLK_TMU 4 77 + #define SCLK_TMU 5 78 + #define PERIS_NR_CLK 6 78 79 79 80 /* FSYS0 */ 80 81 #define ACLK_MMC2 1