Commit 3861b2c5d90b219ee772b5a1d1a32ee630564121

Authored by Rafał Miłecki
Committed by John W. Linville
1 parent 7cc44ed48d

bcma: cc: export more control functions

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Showing 2 changed files with 38 additions and 9 deletions Side-by-side Diff

drivers/bcma/driver_chipcommon_pmu.c
... ... @@ -18,20 +18,40 @@
18 18 return bcma_cc_read32(cc, BCMA_CC_PLLCTL_DATA);
19 19 }
20 20  
21   -static void bcma_chipco_chipctl_maskset(struct bcma_drv_cc *cc,
22   - u32 offset, u32 mask, u32 set)
  21 +void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset, u32 value)
23 22 {
24   - u32 value;
  23 + bcma_cc_write32(cc, BCMA_CC_PLLCTL_ADDR, offset);
  24 + bcma_cc_read32(cc, BCMA_CC_PLLCTL_ADDR);
  25 + bcma_cc_write32(cc, BCMA_CC_PLLCTL_DATA, value);
  26 +}
  27 +EXPORT_SYMBOL_GPL(bcma_chipco_pll_write);
25 28  
26   - bcma_cc_read32(cc, BCMA_CC_CHIPCTL_ADDR);
  29 +void bcma_chipco_pll_maskset(struct bcma_drv_cc *cc, u32 offset, u32 mask,
  30 + u32 set)
  31 +{
  32 + bcma_cc_write32(cc, BCMA_CC_PLLCTL_ADDR, offset);
  33 + bcma_cc_read32(cc, BCMA_CC_PLLCTL_ADDR);
  34 + bcma_cc_maskset32(cc, BCMA_CC_PLLCTL_DATA, mask, set);
  35 +}
  36 +EXPORT_SYMBOL_GPL(bcma_chipco_pll_maskset);
  37 +
  38 +void bcma_chipco_chipctl_maskset(struct bcma_drv_cc *cc,
  39 + u32 offset, u32 mask, u32 set)
  40 +{
27 41 bcma_cc_write32(cc, BCMA_CC_CHIPCTL_ADDR, offset);
28 42 bcma_cc_read32(cc, BCMA_CC_CHIPCTL_ADDR);
29   - value = bcma_cc_read32(cc, BCMA_CC_CHIPCTL_DATA);
30   - value &= mask;
31   - value |= set;
32   - bcma_cc_write32(cc, BCMA_CC_CHIPCTL_DATA, value);
33   - bcma_cc_read32(cc, BCMA_CC_CHIPCTL_DATA);
  43 + bcma_cc_maskset32(cc, BCMA_CC_CHIPCTL_DATA, mask, set);
34 44 }
  45 +EXPORT_SYMBOL_GPL(bcma_chipco_chipctl_maskset);
  46 +
  47 +void bcma_chipco_regctl_maskset(struct bcma_drv_cc *cc, u32 offset, u32 mask,
  48 + u32 set)
  49 +{
  50 + bcma_cc_write32(cc, BCMA_CC_REGCTL_ADDR, offset);
  51 + bcma_cc_read32(cc, BCMA_CC_REGCTL_ADDR);
  52 + bcma_cc_maskset32(cc, BCMA_CC_REGCTL_DATA, mask, set);
  53 +}
  54 +EXPORT_SYMBOL_GPL(bcma_chipco_regctl_maskset);
35 55  
36 56 static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
37 57 {
include/linux/bcma/bcma_driver_chipcommon.h
... ... @@ -378,5 +378,14 @@
378 378 /* PMU support */
379 379 extern void bcma_pmu_init(struct bcma_drv_cc *cc);
380 380  
  381 +extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset,
  382 + u32 value);
  383 +extern void bcma_chipco_pll_maskset(struct bcma_drv_cc *cc, u32 offset,
  384 + u32 mask, u32 set);
  385 +extern void bcma_chipco_chipctl_maskset(struct bcma_drv_cc *cc,
  386 + u32 offset, u32 mask, u32 set);
  387 +extern void bcma_chipco_regctl_maskset(struct bcma_drv_cc *cc,
  388 + u32 offset, u32 mask, u32 set);
  389 +
381 390 #endif /* LINUX_BCMA_DRIVER_CC_H_ */