brcmsmac: remove si_pmu_init() and si_pmu_res_init()
This is already done by bcma_pmu_init() and bcma_pmu_resources_init() in bcma. Acked-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
40bd94ce32
commit
4d22641b92
@@ -503,9 +503,7 @@ static struct si_info *ai_doattach(struct si_info *sii,
|
|||||||
|
|
||||||
/* PMU specific initializations */
|
/* PMU specific initializations */
|
||||||
if (ai_get_cccaps(sih) & CC_CAP_PMU) {
|
if (ai_get_cccaps(sih) & CC_CAP_PMU) {
|
||||||
si_pmu_init(sih);
|
|
||||||
(void)si_pmu_measure_alpclk(sih);
|
(void)si_pmu_measure_alpclk(sih);
|
||||||
si_pmu_res_init(sih);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* setup the GPIO based LED powersave register */
|
/* setup the GPIO based LED powersave register */
|
||||||
|
@@ -108,37 +108,6 @@
|
|||||||
#define RES4313_HT_AVAIL_RSRC 14
|
#define RES4313_HT_AVAIL_RSRC 14
|
||||||
#define RES4313_MACPHY_CLK_AVAIL_RSRC 15
|
#define RES4313_MACPHY_CLK_AVAIL_RSRC 15
|
||||||
|
|
||||||
/* Determine min/max rsrc masks. Value 0 leaves hardware at default. */
|
|
||||||
static void si_pmu_res_masks(struct si_pub *sih, u32 * pmin, u32 * pmax)
|
|
||||||
{
|
|
||||||
u32 min_mask = 0, max_mask = 0;
|
|
||||||
uint rsrcs;
|
|
||||||
|
|
||||||
/* # resources */
|
|
||||||
rsrcs = (ai_get_pmucaps(sih) & PCAP_RC_MASK) >> PCAP_RC_SHIFT;
|
|
||||||
|
|
||||||
/* determine min/max rsrc masks */
|
|
||||||
switch (ai_get_chip_id(sih)) {
|
|
||||||
case BCM43224_CHIP_ID:
|
|
||||||
case BCM43225_CHIP_ID:
|
|
||||||
/* ??? */
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BCM4313_CHIP_ID:
|
|
||||||
min_mask = PMURES_BIT(RES4313_BB_PU_RSRC) |
|
|
||||||
PMURES_BIT(RES4313_XTAL_PU_RSRC) |
|
|
||||||
PMURES_BIT(RES4313_ALP_AVAIL_RSRC) |
|
|
||||||
PMURES_BIT(RES4313_BB_PLL_PWRSW_RSRC);
|
|
||||||
max_mask = 0xffff;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
*pmin = min_mask;
|
|
||||||
*pmax = max_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid)
|
void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid)
|
||||||
{
|
{
|
||||||
u32 tmp = 0;
|
u32 tmp = 0;
|
||||||
@@ -284,51 +253,6 @@ u32 si_pmu_alp_clock(struct si_pub *sih)
|
|||||||
return clock;
|
return clock;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initialize PMU */
|
|
||||||
void si_pmu_init(struct si_pub *sih)
|
|
||||||
{
|
|
||||||
struct si_info *sii = container_of(sih, struct si_info, pub);
|
|
||||||
struct bcma_device *core;
|
|
||||||
|
|
||||||
/* select chipc */
|
|
||||||
core = sii->icbus->drv_cc.core;
|
|
||||||
|
|
||||||
if (ai_get_pmurev(sih) == 1)
|
|
||||||
bcma_mask32(core, CHIPCREGOFFS(pmucontrol),
|
|
||||||
~PCTL_NOILP_ON_WAIT);
|
|
||||||
else if (ai_get_pmurev(sih) >= 2)
|
|
||||||
bcma_set32(core, CHIPCREGOFFS(pmucontrol), PCTL_NOILP_ON_WAIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* initialize PMU resources */
|
|
||||||
void si_pmu_res_init(struct si_pub *sih)
|
|
||||||
{
|
|
||||||
struct si_info *sii = container_of(sih, struct si_info, pub);
|
|
||||||
struct bcma_device *core;
|
|
||||||
u32 min_mask = 0, max_mask = 0;
|
|
||||||
|
|
||||||
/* select to chipc */
|
|
||||||
core = sii->icbus->drv_cc.core;
|
|
||||||
|
|
||||||
/* Determine min/max rsrc masks */
|
|
||||||
si_pmu_res_masks(sih, &min_mask, &max_mask);
|
|
||||||
|
|
||||||
/* It is required to program max_mask first and then min_mask */
|
|
||||||
|
|
||||||
/* Program max resource mask */
|
|
||||||
|
|
||||||
if (max_mask)
|
|
||||||
bcma_write32(core, CHIPCREGOFFS(max_res_mask), max_mask);
|
|
||||||
|
|
||||||
/* Program min resource mask */
|
|
||||||
|
|
||||||
if (min_mask)
|
|
||||||
bcma_write32(core, CHIPCREGOFFS(min_res_mask), min_mask);
|
|
||||||
|
|
||||||
/* Add some delay; allow resources to come up and settle. */
|
|
||||||
mdelay(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 si_pmu_measure_alpclk(struct si_pub *sih)
|
u32 si_pmu_measure_alpclk(struct si_pub *sih)
|
||||||
{
|
{
|
||||||
struct si_info *sii = container_of(sih, struct si_info, pub);
|
struct si_info *sii = container_of(sih, struct si_info, pub);
|
||||||
|
@@ -28,8 +28,6 @@ extern u32 si_pmu_alp_clock(struct si_pub *sih);
|
|||||||
extern void si_pmu_pllupd(struct si_pub *sih);
|
extern void si_pmu_pllupd(struct si_pub *sih);
|
||||||
extern void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid);
|
extern void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid);
|
||||||
extern u32 si_pmu_pllcontrol(struct si_pub *sih, uint reg, u32 mask, u32 val);
|
extern u32 si_pmu_pllcontrol(struct si_pub *sih, uint reg, u32 mask, u32 val);
|
||||||
extern void si_pmu_init(struct si_pub *sih);
|
|
||||||
extern void si_pmu_res_init(struct si_pub *sih);
|
|
||||||
extern u32 si_pmu_measure_alpclk(struct si_pub *sih);
|
extern u32 si_pmu_measure_alpclk(struct si_pub *sih);
|
||||||
|
|
||||||
#endif /* _BRCM_PMU_H_ */
|
#endif /* _BRCM_PMU_H_ */
|
||||||
|
Reference in New Issue
Block a user