Commit 3861b2c5d90b219ee772b5a1d1a32ee630564121
Committed by
John W. Linville
1 parent
7cc44ed48d
Exists in
master
and in
20 other branches
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_ */ |