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

MFD: twl6040: Remove enum for PLL tracking

There is no need to have two different types for
tracking the selected PLL.
Use only the defines, when dealing with the PLLs.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>

+19 -24
+13 -13
drivers/mfd/twl6040-core.c
··· 270 270 goto out; 271 271 } 272 272 } 273 - twl6040->pll = TWL6040_LPPLL_ID; 273 + /* Default PLL configuration after power up */ 274 + twl6040->pll = TWL6040_SYSCLK_SEL_LPPLL; 274 275 twl6040->sysclk = 19200000; 275 276 } else { 276 277 /* already powered-down */ ··· 295 294 /* use manual power-down sequence */ 296 295 twl6040_power_down(twl6040); 297 296 } 298 - twl6040->pll = TWL6040_NOPLL_ID; 299 297 twl6040->sysclk = 0; 300 298 } 301 299 ··· 304 304 } 305 305 EXPORT_SYMBOL(twl6040_power); 306 306 307 - int twl6040_set_pll(struct twl6040 *twl6040, enum twl6040_pll_id id, 307 + int twl6040_set_pll(struct twl6040 *twl6040, int pll_id, 308 308 unsigned int freq_in, unsigned int freq_out) 309 309 { 310 310 u8 hppllctl, lppllctl; ··· 315 315 hppllctl = twl6040_reg_read(twl6040, TWL6040_REG_HPPLLCTL); 316 316 lppllctl = twl6040_reg_read(twl6040, TWL6040_REG_LPPLLCTL); 317 317 318 - switch (id) { 319 - case TWL6040_LPPLL_ID: 318 + switch (pll_id) { 319 + case TWL6040_SYSCLK_SEL_LPPLL: 320 320 /* low-power PLL divider */ 321 321 switch (freq_out) { 322 322 case 17640000: ··· 352 352 ret = -EINVAL; 353 353 goto pll_out; 354 354 } 355 - 356 - twl6040->pll = TWL6040_LPPLL_ID; 357 355 break; 358 - case TWL6040_HPPLL_ID: 356 + case TWL6040_SYSCLK_SEL_HPPLL: 359 357 /* high-performance PLL can provide only 19.2 MHz */ 360 358 if (freq_out != 19200000) { 361 359 dev_err(&twl6040_dev->dev, ··· 404 406 twl6040_reg_write(twl6040, TWL6040_REG_LPPLLCTL, lppllctl); 405 407 lppllctl &= ~TWL6040_LPLLENA; 406 408 twl6040_reg_write(twl6040, TWL6040_REG_LPPLLCTL, lppllctl); 407 - 408 - twl6040->pll = TWL6040_HPPLL_ID; 409 409 break; 410 410 default: 411 - dev_err(&twl6040_dev->dev, "unknown pll id %d\n", id); 411 + dev_err(&twl6040_dev->dev, "unknown pll id %d\n", pll_id); 412 412 ret = -EINVAL; 413 413 goto pll_out; 414 414 } 415 415 416 416 twl6040->sysclk = freq_out; 417 + twl6040->pll = pll_id; 417 418 418 419 pll_out: 419 420 mutex_unlock(&twl6040->mutex); ··· 420 423 } 421 424 EXPORT_SYMBOL(twl6040_set_pll); 422 425 423 - enum twl6040_pll_id twl6040_get_pll(struct twl6040 *twl6040) 426 + int twl6040_get_pll(struct twl6040 *twl6040) 424 427 { 425 - return twl6040->pll; 428 + if (twl6040->power_count) 429 + return twl6040->pll; 430 + else 431 + return -ENODEV; 426 432 } 427 433 EXPORT_SYMBOL(twl6040_get_pll); 428 434
+6 -11
include/linux/mfd/twl6040.h
··· 165 165 #define TWL6040_RESETSPLIT 0x04 166 166 #define TWL6040_INTCLRMODE 0x08 167 167 168 - #define TWL6040_SYSCLK_SEL_LPPLL 1 169 - #define TWL6040_SYSCLK_SEL_HPPLL 2 170 - 171 168 /* STATUS (0x2E) fields */ 172 169 173 170 #define TWL6040_PLUGCOMP 0x02 ··· 185 188 #define TWL6040_IRQ_VIB 4 186 189 #define TWL6040_IRQ_READY 5 187 190 188 - enum twl6040_pll_id { 189 - TWL6040_NOPLL_ID, 190 - TWL6040_LPPLL_ID, 191 - TWL6040_HPPLL_ID, 192 - }; 191 + /* PLL selection */ 192 + #define TWL6040_SYSCLK_SEL_LPPLL 0 193 + #define TWL6040_SYSCLK_SEL_HPPLL 1 193 194 194 195 struct twl6040 { 195 196 struct device *dev; ··· 201 206 int power_count; 202 207 int rev; 203 208 204 - enum twl6040_pll_id pll; 209 + int pll; 205 210 unsigned int sysclk; 206 211 207 212 unsigned int irq; ··· 218 223 int twl6040_clear_bits(struct twl6040 *twl6040, unsigned int reg, 219 224 u8 mask); 220 225 int twl6040_power(struct twl6040 *twl6040, int on); 221 - int twl6040_set_pll(struct twl6040 *twl6040, enum twl6040_pll_id id, 226 + int twl6040_set_pll(struct twl6040 *twl6040, int pll_id, 222 227 unsigned int freq_in, unsigned int freq_out); 223 - enum twl6040_pll_id twl6040_get_pll(struct twl6040 *twl6040); 228 + int twl6040_get_pll(struct twl6040 *twl6040); 224 229 unsigned int twl6040_get_sysclk(struct twl6040 *twl6040); 225 230 int twl6040_irq_init(struct twl6040 *twl6040); 226 231 void twl6040_irq_exit(struct twl6040 *twl6040);