diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/dt-bindings/clock/axg-clkc.h | 1 | ||||
-rw-r--r-- | include/dt-bindings/clock/mt2712-clk.h | 12 | ||||
-rw-r--r-- | include/dt-bindings/clock/qcom,rpmcc.h | 5 | ||||
-rw-r--r-- | include/dt-bindings/clock/sprd,sc9860-clk.h | 21 | ||||
-rw-r--r-- | include/dt-bindings/clock/stm32fx-clock.h | 7 | ||||
-rw-r--r-- | include/dt-bindings/clock/stm32mp1-clks.h | 254 | ||||
-rw-r--r-- | include/dt-bindings/clock/tegra210-car.h | 2 | ||||
-rw-r--r-- | include/linux/clk-provider.h | 23 | ||||
-rw-r--r-- | include/linux/clk.h | 16 | ||||
-rw-r--r-- | include/linux/clk/tegra.h | 1 | ||||
-rw-r--r-- | include/linux/clk/ti.h | 2 |
11 files changed, 328 insertions, 16 deletions
diff --git a/include/dt-bindings/clock/axg-clkc.h b/include/dt-bindings/clock/axg-clkc.h index 941ac70e7f30..555937a25504 100644 --- a/include/dt-bindings/clock/axg-clkc.h +++ b/include/dt-bindings/clock/axg-clkc.h | |||
@@ -67,5 +67,6 @@ | |||
67 | #define CLKID_AO_I2C 58 | 67 | #define CLKID_AO_I2C 58 |
68 | #define CLKID_SD_EMMC_B_CLK0 59 | 68 | #define CLKID_SD_EMMC_B_CLK0 59 |
69 | #define CLKID_SD_EMMC_C_CLK0 60 | 69 | #define CLKID_SD_EMMC_C_CLK0 60 |
70 | #define CLKID_HIFI_PLL 69 | ||
70 | 71 | ||
71 | #endif /* __AXG_CLKC_H */ | 72 | #endif /* __AXG_CLKC_H */ |
diff --git a/include/dt-bindings/clock/mt2712-clk.h b/include/dt-bindings/clock/mt2712-clk.h index 48a8e797a617..76265836a1e1 100644 --- a/include/dt-bindings/clock/mt2712-clk.h +++ b/include/dt-bindings/clock/mt2712-clk.h | |||
@@ -222,7 +222,13 @@ | |||
222 | #define CLK_TOP_APLL_DIV_PDN5 183 | 222 | #define CLK_TOP_APLL_DIV_PDN5 183 |
223 | #define CLK_TOP_APLL_DIV_PDN6 184 | 223 | #define CLK_TOP_APLL_DIV_PDN6 184 |
224 | #define CLK_TOP_APLL_DIV_PDN7 185 | 224 | #define CLK_TOP_APLL_DIV_PDN7 185 |
225 | #define CLK_TOP_NR_CLK 186 | 225 | #define CLK_TOP_APLL1_D3 186 |
226 | #define CLK_TOP_APLL1_REF_SEL 187 | ||
227 | #define CLK_TOP_APLL2_REF_SEL 188 | ||
228 | #define CLK_TOP_NFI2X_EN 189 | ||
229 | #define CLK_TOP_NFIECC_EN 190 | ||
230 | #define CLK_TOP_NFI1X_CK_EN 191 | ||
231 | #define CLK_TOP_NR_CLK 192 | ||
226 | 232 | ||
227 | /* INFRACFG */ | 233 | /* INFRACFG */ |
228 | 234 | ||
@@ -281,7 +287,9 @@ | |||
281 | #define CLK_PERI_MSDC30_3_EN 41 | 287 | #define CLK_PERI_MSDC30_3_EN 41 |
282 | #define CLK_PERI_MSDC50_0_HCLK_EN 42 | 288 | #define CLK_PERI_MSDC50_0_HCLK_EN 42 |
283 | #define CLK_PERI_MSDC50_3_HCLK_EN 43 | 289 | #define CLK_PERI_MSDC50_3_HCLK_EN 43 |
284 | #define CLK_PERI_NR_CLK 44 | 290 | #define CLK_PERI_MSDC30_0_QTR_EN 44 |
291 | #define CLK_PERI_MSDC30_3_QTR_EN 45 | ||
292 | #define CLK_PERI_NR_CLK 46 | ||
285 | 293 | ||
286 | /* MCUCFG */ | 294 | /* MCUCFG */ |
287 | 295 | ||
diff --git a/include/dt-bindings/clock/qcom,rpmcc.h b/include/dt-bindings/clock/qcom,rpmcc.h index b8337a5fa347..c585b82b9c05 100644 --- a/include/dt-bindings/clock/qcom,rpmcc.h +++ b/include/dt-bindings/clock/qcom,rpmcc.h | |||
@@ -40,6 +40,11 @@ | |||
40 | #define RPM_SMI_CLK 22 | 40 | #define RPM_SMI_CLK 22 |
41 | #define RPM_SMI_A_CLK 23 | 41 | #define RPM_SMI_A_CLK 23 |
42 | #define RPM_PLL4_CLK 24 | 42 | #define RPM_PLL4_CLK 24 |
43 | #define RPM_XO_D0 25 | ||
44 | #define RPM_XO_D1 26 | ||
45 | #define RPM_XO_A0 27 | ||
46 | #define RPM_XO_A1 28 | ||
47 | #define RPM_XO_A2 29 | ||
43 | 48 | ||
44 | /* SMD RPM clocks */ | 49 | /* SMD RPM clocks */ |
45 | #define RPM_SMD_XO_CLK_SRC 0 | 50 | #define RPM_SMD_XO_CLK_SRC 0 |
diff --git a/include/dt-bindings/clock/sprd,sc9860-clk.h b/include/dt-bindings/clock/sprd,sc9860-clk.h index 4cb202f090c2..f2ab4631df0d 100644 --- a/include/dt-bindings/clock/sprd,sc9860-clk.h +++ b/include/dt-bindings/clock/sprd,sc9860-clk.h | |||
@@ -229,7 +229,26 @@ | |||
229 | #define CLK_SDIO1_2X_EN 65 | 229 | #define CLK_SDIO1_2X_EN 65 |
230 | #define CLK_SDIO2_2X_EN 66 | 230 | #define CLK_SDIO2_2X_EN 66 |
231 | #define CLK_EMMC_2X_EN 67 | 231 | #define CLK_EMMC_2X_EN 67 |
232 | #define CLK_AON_GATE_NUM (CLK_EMMC_2X_EN + 1) | 232 | #define CLK_ARCH_RTC_EB 68 |
233 | #define CLK_KPB_RTC_EB 69 | ||
234 | #define CLK_AON_SYST_RTC_EB 70 | ||
235 | #define CLK_AP_SYST_RTC_EB 71 | ||
236 | #define CLK_AON_TMR_RTC_EB 72 | ||
237 | #define CLK_AP_TMR0_RTC_EB 73 | ||
238 | #define CLK_EIC_RTC_EB 74 | ||
239 | #define CLK_EIC_RTCDV5_EB 75 | ||
240 | #define CLK_AP_WDG_RTC_EB 76 | ||
241 | #define CLK_AP_TMR1_RTC_EB 77 | ||
242 | #define CLK_AP_TMR2_RTC_EB 78 | ||
243 | #define CLK_DCXO_TMR_RTC_EB 79 | ||
244 | #define CLK_BB_CAL_RTC_EB 80 | ||
245 | #define CLK_AVS_BIG_RTC_EB 81 | ||
246 | #define CLK_AVS_LIT_RTC_EB 82 | ||
247 | #define CLK_AVS_GPU0_RTC_EB 83 | ||
248 | #define CLK_AVS_GPU1_RTC_EB 84 | ||
249 | #define CLK_GPU_TS_EB 85 | ||
250 | #define CLK_RTCDV10_EB 86 | ||
251 | #define CLK_AON_GATE_NUM (CLK_RTCDV10_EB + 1) | ||
233 | 252 | ||
234 | #define CLK_LIT_MCU 0 | 253 | #define CLK_LIT_MCU 0 |
235 | #define CLK_BIG_MCU 1 | 254 | #define CLK_BIG_MCU 1 |
diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h index 49bb3c203e5c..58d8b515be55 100644 --- a/include/dt-bindings/clock/stm32fx-clock.h +++ b/include/dt-bindings/clock/stm32fx-clock.h | |||
@@ -33,11 +33,12 @@ | |||
33 | #define CLK_SAI2 11 | 33 | #define CLK_SAI2 11 |
34 | #define CLK_I2SQ_PDIV 12 | 34 | #define CLK_I2SQ_PDIV 12 |
35 | #define CLK_SAIQ_PDIV 13 | 35 | #define CLK_SAIQ_PDIV 13 |
36 | |||
37 | #define END_PRIMARY_CLK 14 | ||
38 | |||
39 | #define CLK_HSI 14 | 36 | #define CLK_HSI 14 |
40 | #define CLK_SYSCLK 15 | 37 | #define CLK_SYSCLK 15 |
38 | #define CLK_F469_DSI 16 | ||
39 | |||
40 | #define END_PRIMARY_CLK 17 | ||
41 | |||
41 | #define CLK_HDMI_CEC 16 | 42 | #define CLK_HDMI_CEC 16 |
42 | #define CLK_SPDIF 17 | 43 | #define CLK_SPDIF 17 |
43 | #define CLK_USART1 18 | 44 | #define CLK_USART1 18 |
diff --git a/include/dt-bindings/clock/stm32mp1-clks.h b/include/dt-bindings/clock/stm32mp1-clks.h new file mode 100644 index 000000000000..86e3ec662ef4 --- /dev/null +++ b/include/dt-bindings/clock/stm32mp1-clks.h | |||
@@ -0,0 +1,254 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */ | ||
2 | /* | ||
3 | * Copyright (C) STMicroelectronics 2018 - All Rights Reserved | ||
4 | * Author: Gabriel Fernandez <gabriel.fernandez@st.com> for STMicroelectronics. | ||
5 | */ | ||
6 | |||
7 | #ifndef _DT_BINDINGS_STM32MP1_CLKS_H_ | ||
8 | #define _DT_BINDINGS_STM32MP1_CLKS_H_ | ||
9 | |||
10 | /* OSCILLATOR clocks */ | ||
11 | #define CK_HSE 0 | ||
12 | #define CK_CSI 1 | ||
13 | #define CK_LSI 2 | ||
14 | #define CK_LSE 3 | ||
15 | #define CK_HSI 4 | ||
16 | #define CK_HSE_DIV2 5 | ||
17 | |||
18 | /* Bus clocks */ | ||
19 | #define TIM2 6 | ||
20 | #define TIM3 7 | ||
21 | #define TIM4 8 | ||
22 | #define TIM5 9 | ||
23 | #define TIM6 10 | ||
24 | #define TIM7 11 | ||
25 | #define TIM12 12 | ||
26 | #define TIM13 13 | ||
27 | #define TIM14 14 | ||
28 | #define LPTIM1 15 | ||
29 | #define SPI2 16 | ||
30 | #define SPI3 17 | ||
31 | #define USART2 18 | ||
32 | #define USART3 19 | ||
33 | #define UART4 20 | ||
34 | #define UART5 21 | ||
35 | #define UART7 22 | ||
36 | #define UART8 23 | ||
37 | #define I2C1 24 | ||
38 | #define I2C2 25 | ||
39 | #define I2C3 26 | ||
40 | #define I2C5 27 | ||
41 | #define SPDIF 28 | ||
42 | #define CEC 29 | ||
43 | #define DAC12 30 | ||
44 | #define MDIO 31 | ||
45 | #define TIM1 32 | ||
46 | #define TIM8 33 | ||
47 | #define TIM15 34 | ||
48 | #define TIM16 35 | ||
49 | #define TIM17 36 | ||
50 | #define SPI1 37 | ||
51 | #define SPI4 38 | ||
52 | #define SPI5 39 | ||
53 | #define USART6 40 | ||
54 | #define SAI1 41 | ||
55 | #define SAI2 42 | ||
56 | #define SAI3 43 | ||
57 | #define DFSDM 44 | ||
58 | #define FDCAN 45 | ||
59 | #define LPTIM2 46 | ||
60 | #define LPTIM3 47 | ||
61 | #define LPTIM4 48 | ||
62 | #define LPTIM5 49 | ||
63 | #define SAI4 50 | ||
64 | #define SYSCFG 51 | ||
65 | #define VREF 52 | ||
66 | #define TMPSENS 53 | ||
67 | #define PMBCTRL 54 | ||
68 | #define HDP 55 | ||
69 | #define LTDC 56 | ||
70 | #define DSI 57 | ||
71 | #define IWDG2 58 | ||
72 | #define USBPHY 59 | ||
73 | #define STGENRO 60 | ||
74 | #define SPI6 61 | ||
75 | #define I2C4 62 | ||
76 | #define I2C6 63 | ||
77 | #define USART1 64 | ||
78 | #define RTCAPB 65 | ||
79 | #define TZC 66 | ||
80 | #define TZPC 67 | ||
81 | #define IWDG1 68 | ||
82 | #define BSEC 69 | ||
83 | #define STGEN 70 | ||
84 | #define DMA1 71 | ||
85 | #define DMA2 72 | ||
86 | #define DMAMUX 73 | ||
87 | #define ADC12 74 | ||
88 | #define USBO 75 | ||
89 | #define SDMMC3 76 | ||
90 | #define DCMI 77 | ||
91 | #define CRYP2 78 | ||
92 | #define HASH2 79 | ||
93 | #define RNG2 80 | ||
94 | #define CRC2 81 | ||
95 | #define HSEM 82 | ||
96 | #define IPCC 83 | ||
97 | #define GPIOA 84 | ||
98 | #define GPIOB 85 | ||
99 | #define GPIOC 86 | ||
100 | #define GPIOD 87 | ||
101 | #define GPIOE 88 | ||
102 | #define GPIOF 89 | ||
103 | #define GPIOG 90 | ||
104 | #define GPIOH 91 | ||
105 | #define GPIOI 92 | ||
106 | #define GPIOJ 93 | ||
107 | #define GPIOK 94 | ||
108 | #define GPIOZ 95 | ||
109 | #define CRYP1 96 | ||
110 | #define HASH1 97 | ||
111 | #define RNG1 98 | ||
112 | #define BKPSRAM 99 | ||
113 | #define MDMA 100 | ||
114 | #define GPU 101 | ||
115 | #define ETHCK 102 | ||
116 | #define ETHTX 103 | ||
117 | #define ETHRX 104 | ||
118 | #define ETHMAC 105 | ||
119 | #define FMC 106 | ||
120 | #define QSPI 107 | ||
121 | #define SDMMC1 108 | ||
122 | #define SDMMC2 109 | ||
123 | #define CRC1 110 | ||
124 | #define USBH 111 | ||
125 | #define ETHSTP 112 | ||
126 | |||
127 | /* Kernel clocks */ | ||
128 | #define SDMMC1_K 118 | ||
129 | #define SDMMC2_K 119 | ||
130 | #define SDMMC3_K 120 | ||
131 | #define FMC_K 121 | ||
132 | #define QSPI_K 122 | ||
133 | #define ETHCK_K 123 | ||
134 | #define RNG1_K 124 | ||
135 | #define RNG2_K 125 | ||
136 | #define GPU_K 126 | ||
137 | #define USBPHY_K 127 | ||
138 | #define STGEN_K 128 | ||
139 | #define SPDIF_K 129 | ||
140 | #define SPI1_K 130 | ||
141 | #define SPI2_K 131 | ||
142 | #define SPI3_K 132 | ||
143 | #define SPI4_K 133 | ||
144 | #define SPI5_K 134 | ||
145 | #define SPI6_K 135 | ||
146 | #define CEC_K 136 | ||
147 | #define I2C1_K 137 | ||
148 | #define I2C2_K 138 | ||
149 | #define I2C3_K 139 | ||
150 | #define I2C4_K 140 | ||
151 | #define I2C5_K 141 | ||
152 | #define I2C6_K 142 | ||
153 | #define LPTIM1_K 143 | ||
154 | #define LPTIM2_K 144 | ||
155 | #define LPTIM3_K 145 | ||
156 | #define LPTIM4_K 146 | ||
157 | #define LPTIM5_K 147 | ||
158 | #define USART1_K 148 | ||
159 | #define USART2_K 149 | ||
160 | #define USART3_K 150 | ||
161 | #define UART4_K 151 | ||
162 | #define UART5_K 152 | ||
163 | #define USART6_K 153 | ||
164 | #define UART7_K 154 | ||
165 | #define UART8_K 155 | ||
166 | #define DFSDM_K 156 | ||
167 | #define FDCAN_K 157 | ||
168 | #define SAI1_K 158 | ||
169 | #define SAI2_K 159 | ||
170 | #define SAI3_K 160 | ||
171 | #define SAI4_K 161 | ||
172 | #define ADC12_K 162 | ||
173 | #define DSI_K 163 | ||
174 | #define DSI_PX 164 | ||
175 | #define ADFSDM_K 165 | ||
176 | #define USBO_K 166 | ||
177 | #define LTDC_PX 167 | ||
178 | #define DAC12_K 168 | ||
179 | #define ETHPTP_K 169 | ||
180 | |||
181 | /* PLL */ | ||
182 | #define PLL1 176 | ||
183 | #define PLL2 177 | ||
184 | #define PLL3 178 | ||
185 | #define PLL4 179 | ||
186 | |||
187 | /* ODF */ | ||
188 | #define PLL1_P 180 | ||
189 | #define PLL1_Q 181 | ||
190 | #define PLL1_R 182 | ||
191 | #define PLL2_P 183 | ||
192 | #define PLL2_Q 184 | ||
193 | #define PLL2_R 185 | ||
194 | #define PLL3_P 186 | ||
195 | #define PLL3_Q 187 | ||
196 | #define PLL3_R 188 | ||
197 | #define PLL4_P 189 | ||
198 | #define PLL4_Q 190 | ||
199 | #define PLL4_R 191 | ||
200 | |||
201 | /* AUX */ | ||
202 | #define RTC 192 | ||
203 | |||
204 | /* MCLK */ | ||
205 | #define CK_PER 193 | ||
206 | #define CK_MPU 194 | ||
207 | #define CK_AXI 195 | ||
208 | #define CK_MCU 196 | ||
209 | |||
210 | /* Time base */ | ||
211 | #define TIM2_K 197 | ||
212 | #define TIM3_K 198 | ||
213 | #define TIM4_K 199 | ||
214 | #define TIM5_K 200 | ||
215 | #define TIM6_K 201 | ||
216 | #define TIM7_K 202 | ||
217 | #define TIM12_K 203 | ||
218 | #define TIM13_K 204 | ||
219 | #define TIM14_K 205 | ||
220 | #define TIM1_K 206 | ||
221 | #define TIM8_K 207 | ||
222 | #define TIM15_K 208 | ||
223 | #define TIM16_K 209 | ||
224 | #define TIM17_K 210 | ||
225 | |||
226 | /* MCO clocks */ | ||
227 | #define CK_MCO1 211 | ||
228 | #define CK_MCO2 212 | ||
229 | |||
230 | /* TRACE & DEBUG clocks */ | ||
231 | #define DBG 213 | ||
232 | #define CK_DBG 214 | ||
233 | #define CK_TRACE 215 | ||
234 | |||
235 | /* DDR */ | ||
236 | #define DDRC1 220 | ||
237 | #define DDRC1LP 221 | ||
238 | #define DDRC2 222 | ||
239 | #define DDRC2LP 223 | ||
240 | #define DDRPHYC 224 | ||
241 | #define DDRPHYCLP 225 | ||
242 | #define DDRCAPB 226 | ||
243 | #define DDRCAPBLP 227 | ||
244 | #define AXIDCG 228 | ||
245 | #define DDRPHYCAPB 229 | ||
246 | #define DDRPHYCAPBLP 230 | ||
247 | #define DDRPERFM 231 | ||
248 | |||
249 | #define STM32MP1_LAST_CLK 232 | ||
250 | |||
251 | #define LTDC_K LTDC_PX | ||
252 | #define ETHMAC_K ETHCK_K | ||
253 | |||
254 | #endif /* _DT_BINDINGS_STM32MP1_CLKS_H_ */ | ||
diff --git a/include/dt-bindings/clock/tegra210-car.h b/include/dt-bindings/clock/tegra210-car.h index 6422314e46eb..6b77e721f6b1 100644 --- a/include/dt-bindings/clock/tegra210-car.h +++ b/include/dt-bindings/clock/tegra210-car.h | |||
@@ -95,7 +95,7 @@ | |||
95 | #define TEGRA210_CLK_CSITE 73 | 95 | #define TEGRA210_CLK_CSITE 73 |
96 | /* 74 */ | 96 | /* 74 */ |
97 | /* 75 */ | 97 | /* 75 */ |
98 | /* 76 */ | 98 | #define TEGRA210_CLK_LA 76 |
99 | /* 77 */ | 99 | /* 77 */ |
100 | #define TEGRA210_CLK_SOC_THERM 78 | 100 | #define TEGRA210_CLK_SOC_THERM 78 |
101 | #define TEGRA210_CLK_DTV 79 | 101 | #define TEGRA210_CLK_DTV 79 |
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index f711be6e8c44..210a890008f9 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h | |||
@@ -399,6 +399,7 @@ struct clk_divider { | |||
399 | spinlock_t *lock; | 399 | spinlock_t *lock; |
400 | }; | 400 | }; |
401 | 401 | ||
402 | #define clk_div_mask(width) ((1 << (width)) - 1) | ||
402 | #define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw) | 403 | #define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw) |
403 | 404 | ||
404 | #define CLK_DIVIDER_ONE_BASED BIT(0) | 405 | #define CLK_DIVIDER_ONE_BASED BIT(0) |
@@ -419,6 +420,10 @@ long divider_round_rate_parent(struct clk_hw *hw, struct clk_hw *parent, | |||
419 | unsigned long rate, unsigned long *prate, | 420 | unsigned long rate, unsigned long *prate, |
420 | const struct clk_div_table *table, | 421 | const struct clk_div_table *table, |
421 | u8 width, unsigned long flags); | 422 | u8 width, unsigned long flags); |
423 | long divider_ro_round_rate_parent(struct clk_hw *hw, struct clk_hw *parent, | ||
424 | unsigned long rate, unsigned long *prate, | ||
425 | const struct clk_div_table *table, u8 width, | ||
426 | unsigned long flags, unsigned int val); | ||
422 | int divider_get_val(unsigned long rate, unsigned long parent_rate, | 427 | int divider_get_val(unsigned long rate, unsigned long parent_rate, |
423 | const struct clk_div_table *table, u8 width, | 428 | const struct clk_div_table *table, u8 width, |
424 | unsigned long flags); | 429 | unsigned long flags); |
@@ -449,8 +454,9 @@ void clk_hw_unregister_divider(struct clk_hw *hw); | |||
449 | * | 454 | * |
450 | * @hw: handle between common and hardware-specific interfaces | 455 | * @hw: handle between common and hardware-specific interfaces |
451 | * @reg: register controlling multiplexer | 456 | * @reg: register controlling multiplexer |
457 | * @table: array of register values corresponding to the parent index | ||
452 | * @shift: shift to multiplexer bit field | 458 | * @shift: shift to multiplexer bit field |
453 | * @width: width of mutliplexer bit field | 459 | * @mask: mask of mutliplexer bit field |
454 | * @flags: hardware-specific flags | 460 | * @flags: hardware-specific flags |
455 | * @lock: register lock | 461 | * @lock: register lock |
456 | * | 462 | * |
@@ -510,6 +516,10 @@ struct clk_hw *clk_hw_register_mux_table(struct device *dev, const char *name, | |||
510 | void __iomem *reg, u8 shift, u32 mask, | 516 | void __iomem *reg, u8 shift, u32 mask, |
511 | u8 clk_mux_flags, u32 *table, spinlock_t *lock); | 517 | u8 clk_mux_flags, u32 *table, spinlock_t *lock); |
512 | 518 | ||
519 | int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, | ||
520 | unsigned int val); | ||
521 | unsigned int clk_mux_index_to_val(u32 *table, unsigned int flags, u8 index); | ||
522 | |||
513 | void clk_unregister_mux(struct clk *clk); | 523 | void clk_unregister_mux(struct clk *clk); |
514 | void clk_hw_unregister_mux(struct clk_hw *hw); | 524 | void clk_hw_unregister_mux(struct clk_hw *hw); |
515 | 525 | ||
@@ -774,6 +784,17 @@ static inline long divider_round_rate(struct clk_hw *hw, unsigned long rate, | |||
774 | rate, prate, table, width, flags); | 784 | rate, prate, table, width, flags); |
775 | } | 785 | } |
776 | 786 | ||
787 | static inline long divider_ro_round_rate(struct clk_hw *hw, unsigned long rate, | ||
788 | unsigned long *prate, | ||
789 | const struct clk_div_table *table, | ||
790 | u8 width, unsigned long flags, | ||
791 | unsigned int val) | ||
792 | { | ||
793 | return divider_ro_round_rate_parent(hw, clk_hw_get_parent(hw), | ||
794 | rate, prate, table, width, flags, | ||
795 | val); | ||
796 | } | ||
797 | |||
777 | /* | 798 | /* |
778 | * FIXME clock api without lock protection | 799 | * FIXME clock api without lock protection |
779 | */ | 800 | */ |
diff --git a/include/linux/clk.h b/include/linux/clk.h index 4c4ef9f34db3..0dbd0885b2c2 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h | |||
@@ -209,7 +209,7 @@ static inline int clk_prepare(struct clk *clk) | |||
209 | return 0; | 209 | return 0; |
210 | } | 210 | } |
211 | 211 | ||
212 | static inline int clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks) | 212 | static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks) |
213 | { | 213 | { |
214 | might_sleep(); | 214 | might_sleep(); |
215 | return 0; | 215 | return 0; |
@@ -603,8 +603,8 @@ static inline struct clk *clk_get(struct device *dev, const char *id) | |||
603 | return NULL; | 603 | return NULL; |
604 | } | 604 | } |
605 | 605 | ||
606 | static inline int clk_bulk_get(struct device *dev, int num_clks, | 606 | static inline int __must_check clk_bulk_get(struct device *dev, int num_clks, |
607 | struct clk_bulk_data *clks) | 607 | struct clk_bulk_data *clks) |
608 | { | 608 | { |
609 | return 0; | 609 | return 0; |
610 | } | 610 | } |
@@ -614,8 +614,8 @@ static inline struct clk *devm_clk_get(struct device *dev, const char *id) | |||
614 | return NULL; | 614 | return NULL; |
615 | } | 615 | } |
616 | 616 | ||
617 | static inline int devm_clk_bulk_get(struct device *dev, int num_clks, | 617 | static inline int __must_check devm_clk_bulk_get(struct device *dev, int num_clks, |
618 | struct clk_bulk_data *clks) | 618 | struct clk_bulk_data *clks) |
619 | { | 619 | { |
620 | return 0; | 620 | return 0; |
621 | } | 621 | } |
@@ -645,7 +645,7 @@ static inline int clk_enable(struct clk *clk) | |||
645 | return 0; | 645 | return 0; |
646 | } | 646 | } |
647 | 647 | ||
648 | static inline int clk_bulk_enable(int num_clks, struct clk_bulk_data *clks) | 648 | static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks) |
649 | { | 649 | { |
650 | return 0; | 650 | return 0; |
651 | } | 651 | } |
@@ -719,8 +719,8 @@ static inline void clk_disable_unprepare(struct clk *clk) | |||
719 | clk_unprepare(clk); | 719 | clk_unprepare(clk); |
720 | } | 720 | } |
721 | 721 | ||
722 | static inline int clk_bulk_prepare_enable(int num_clks, | 722 | static inline int __must_check clk_bulk_prepare_enable(int num_clks, |
723 | struct clk_bulk_data *clks) | 723 | struct clk_bulk_data *clks) |
724 | { | 724 | { |
725 | int ret; | 725 | int ret; |
726 | 726 | ||
diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h index d23c9cf26993..afb9edfa5d58 100644 --- a/include/linux/clk/tegra.h +++ b/include/linux/clk/tegra.h | |||
@@ -128,5 +128,6 @@ extern void tegra210_sata_pll_hw_sequence_start(void); | |||
128 | extern void tegra210_set_sata_pll_seq_sw(bool state); | 128 | extern void tegra210_set_sata_pll_seq_sw(bool state); |
129 | extern void tegra210_put_utmipll_in_iddq(void); | 129 | extern void tegra210_put_utmipll_in_iddq(void); |
130 | extern void tegra210_put_utmipll_out_iddq(void); | 130 | extern void tegra210_put_utmipll_out_iddq(void); |
131 | extern int tegra210_clk_handle_mbist_war(unsigned int id); | ||
131 | 132 | ||
132 | #endif /* __LINUX_CLK_TEGRA_H_ */ | 133 | #endif /* __LINUX_CLK_TEGRA_H_ */ |
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h index d18da839b810..9e8611470187 100644 --- a/include/linux/clk/ti.h +++ b/include/linux/clk/ti.h | |||
@@ -211,6 +211,7 @@ enum { | |||
211 | * struct ti_clk_ll_ops - low-level ops for clocks | 211 | * struct ti_clk_ll_ops - low-level ops for clocks |
212 | * @clk_readl: pointer to register read function | 212 | * @clk_readl: pointer to register read function |
213 | * @clk_writel: pointer to register write function | 213 | * @clk_writel: pointer to register write function |
214 | * @clk_rmw: pointer to register read-modify-write function | ||
214 | * @clkdm_clk_enable: pointer to clockdomain enable function | 215 | * @clkdm_clk_enable: pointer to clockdomain enable function |
215 | * @clkdm_clk_disable: pointer to clockdomain disable function | 216 | * @clkdm_clk_disable: pointer to clockdomain disable function |
216 | * @clkdm_lookup: pointer to clockdomain lookup function | 217 | * @clkdm_lookup: pointer to clockdomain lookup function |
@@ -226,6 +227,7 @@ enum { | |||
226 | struct ti_clk_ll_ops { | 227 | struct ti_clk_ll_ops { |
227 | u32 (*clk_readl)(const struct clk_omap_reg *reg); | 228 | u32 (*clk_readl)(const struct clk_omap_reg *reg); |
228 | void (*clk_writel)(u32 val, const struct clk_omap_reg *reg); | 229 | void (*clk_writel)(u32 val, const struct clk_omap_reg *reg); |
230 | void (*clk_rmw)(u32 val, u32 mask, const struct clk_omap_reg *reg); | ||
229 | int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk); | 231 | int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk); |
230 | int (*clkdm_clk_disable)(struct clockdomain *clkdm, | 232 | int (*clkdm_clk_disable)(struct clockdomain *clkdm, |
231 | struct clk *clk); | 233 | struct clk *clk); |