diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-13 14:04:14 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-13 14:04:14 -0400 |
| commit | f60a2abfdbf298a4722dfef331c38447fa18c4e3 (patch) | |
| tree | 1ac56db32fb1909aedefc21b1c62d0bbe5a13e68 /include/linux | |
| parent | 561a8eb3e1d219f415597c76dae44b530b7f961a (diff) | |
| parent | 73c950da6ec523136090d6d4d6907a6ea8e8b67b (diff) | |
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk updates from Stephen Boyd:
"The diff is dominated by the Allwinner A10/A20 SoCs getting converted
to the sunxi-ng framework. Otherwise, the heavy hitters are various
drivers for SoCs like AT91, Amlogic, Renesas, and Rockchip. There are
some other new clk drivers in here too but overall this is just a
bunch of clk drivers for various different pieces of hardware and a
collection of non-critical fixes for clk drivers.
New Drivers:
- Allwinner R40 SoCs
- Renesas R-Car Gen3 USB 2.0 clock selector PHY
- Atmel AT91 audio PLL
- Uniphier PXs3 SoCs
- ARC HSDK Board PLLs
- AXS10X Board PLLs
- STMicroelectronics STM32H743 SoCs
Removed Drivers:
- Non-compiling mb86s7x support
Updates:
- Allwinner A10/A20 SoCs converted to sunxi-ng framework
- Allwinner H3 CPU clk fixes
- Renesas R-Car D3 SoC
- Renesas V2H and M3-W modules
- Samsung Exynos5420/5422/5800 audio fixes
- Rockchip fractional clk approximation fixes
- Rockchip rk3126 SoC support within the rk3128 driver
- Amlogic gxbb CEC32 and sd_emmc clks
- Amlogic meson8b reset controller support
- IDT VersaClock 5P49V5925/5P49V6901 support
- Qualcomm MSM8996 SMMU clks
- Various 'const' applications for struct clk_ops
- si5351 PLL reset bugfix
- Uniphier audio on LD11/LD20 and ethernet support on LD11/LD20/Pro4/PXs2
- Assorted Tegra clk driver fixes"
* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (120 commits)
clk: si5351: fix PLL reset
ASoC: atmel-classd: remove aclk clock
ASoC: atmel-classd: remove aclk clock from DT binding
clk: at91: clk-generated: make gclk determine audio_pll rate
clk: at91: clk-generated: create function to find best_diff
clk: at91: add audio pll clock drivers
dt-bindings: clk: at91: add audio plls to the compatible list
clk: at91: clk-generated: remove useless divisor loop
clk: mb86s7x: Drop non-building driver
clk: ti: check for null return in strrchr to avoid null dereferencing
clk: Don't write error code into divider register
clk: uniphier: add video input subsystem clock
clk: uniphier: add audio system clock
clk: stm32h7: Add stm32h743 clock driver
clk: gate: expose clk_gate_ops::is_enabled
clk: nxp: clk-lpc32xx: rename clk_gate_is_enabled()
clk: uniphier: add PXs3 clock data
clk: hi6220: change watchdog clock source
clk: Kconfig: Name RK805 in Kconfig for COMMON_CLK_RK808
clk: cs2000: Add cs2000_set_saved_rate
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/clk-provider.h | 4 | ||||
| -rw-r--r-- | include/linux/clk/at91_pmc.h | 25 |
2 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index c59c62571e4f..5100ec1b5d55 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h | |||
| @@ -343,6 +343,7 @@ struct clk_hw *clk_hw_register_gate(struct device *dev, const char *name, | |||
| 343 | u8 clk_gate_flags, spinlock_t *lock); | 343 | u8 clk_gate_flags, spinlock_t *lock); |
| 344 | void clk_unregister_gate(struct clk *clk); | 344 | void clk_unregister_gate(struct clk *clk); |
| 345 | void clk_hw_unregister_gate(struct clk_hw *hw); | 345 | void clk_hw_unregister_gate(struct clk_hw *hw); |
| 346 | int clk_gate_is_enabled(struct clk_hw *hw); | ||
| 346 | 347 | ||
| 347 | struct clk_div_table { | 348 | struct clk_div_table { |
| 348 | unsigned int val; | 349 | unsigned int val; |
| @@ -565,6 +566,9 @@ struct clk_fractional_divider { | |||
| 565 | u8 nwidth; | 566 | u8 nwidth; |
| 566 | u32 nmask; | 567 | u32 nmask; |
| 567 | u8 flags; | 568 | u8 flags; |
| 569 | void (*approximation)(struct clk_hw *hw, | ||
| 570 | unsigned long rate, unsigned long *parent_rate, | ||
| 571 | unsigned long *m, unsigned long *n); | ||
| 568 | spinlock_t *lock; | 572 | spinlock_t *lock; |
| 569 | }; | 573 | }; |
| 570 | 574 | ||
diff --git a/include/linux/clk/at91_pmc.h b/include/linux/clk/at91_pmc.h index 17f413bbbedf..6aca5ce8a99a 100644 --- a/include/linux/clk/at91_pmc.h +++ b/include/linux/clk/at91_pmc.h | |||
| @@ -185,4 +185,29 @@ | |||
| 185 | #define AT91_PMC_PCR_EN (0x1 << 28) /* Enable */ | 185 | #define AT91_PMC_PCR_EN (0x1 << 28) /* Enable */ |
| 186 | #define AT91_PMC_PCR_GCKEN (0x1 << 29) /* GCK Enable */ | 186 | #define AT91_PMC_PCR_GCKEN (0x1 << 29) /* GCK Enable */ |
| 187 | 187 | ||
| 188 | #define AT91_PMC_AUDIO_PLL0 0x14c | ||
| 189 | #define AT91_PMC_AUDIO_PLL_PLLEN (1 << 0) | ||
| 190 | #define AT91_PMC_AUDIO_PLL_PADEN (1 << 1) | ||
| 191 | #define AT91_PMC_AUDIO_PLL_PMCEN (1 << 2) | ||
| 192 | #define AT91_PMC_AUDIO_PLL_RESETN (1 << 3) | ||
| 193 | #define AT91_PMC_AUDIO_PLL_ND_OFFSET 8 | ||
| 194 | #define AT91_PMC_AUDIO_PLL_ND_MASK (0x7f << AT91_PMC_AUDIO_PLL_ND_OFFSET) | ||
| 195 | #define AT91_PMC_AUDIO_PLL_ND(n) ((n) << AT91_PMC_AUDIO_PLL_ND_OFFSET) | ||
| 196 | #define AT91_PMC_AUDIO_PLL_QDPMC_OFFSET 16 | ||
| 197 | #define AT91_PMC_AUDIO_PLL_QDPMC_MASK (0x7f << AT91_PMC_AUDIO_PLL_QDPMC_OFFSET) | ||
| 198 | #define AT91_PMC_AUDIO_PLL_QDPMC(n) ((n) << AT91_PMC_AUDIO_PLL_QDPMC_OFFSET) | ||
| 199 | |||
| 200 | #define AT91_PMC_AUDIO_PLL1 0x150 | ||
| 201 | #define AT91_PMC_AUDIO_PLL_FRACR_MASK 0x3fffff | ||
| 202 | #define AT91_PMC_AUDIO_PLL_QDPAD_OFFSET 24 | ||
| 203 | #define AT91_PMC_AUDIO_PLL_QDPAD_MASK (0x7f << AT91_PMC_AUDIO_PLL_QDPAD_OFFSET) | ||
| 204 | #define AT91_PMC_AUDIO_PLL_QDPAD(n) ((n) << AT91_PMC_AUDIO_PLL_QDPAD_OFFSET) | ||
| 205 | #define AT91_PMC_AUDIO_PLL_QDPAD_DIV_OFFSET AT91_PMC_AUDIO_PLL_QDPAD_OFFSET | ||
| 206 | #define AT91_PMC_AUDIO_PLL_QDPAD_DIV_MASK (0x3 << AT91_PMC_AUDIO_PLL_QDPAD_DIV_OFFSET) | ||
| 207 | #define AT91_PMC_AUDIO_PLL_QDPAD_DIV(n) ((n) << AT91_PMC_AUDIO_PLL_QDPAD_DIV_OFFSET) | ||
| 208 | #define AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_OFFSET 26 | ||
| 209 | #define AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_MAX 0x1f | ||
| 210 | #define AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_MASK (AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_MAX << AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_OFFSET) | ||
| 211 | #define AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV(n) ((n) << AT91_PMC_AUDIO_PLL_QDPAD_EXTDIV_OFFSET) | ||
| 212 | |||
| 188 | #endif | 213 | #endif |
