Commit | Line | Data |
---|---|---|
a9533e7e HP |
1 | /* |
2 | * Copyright (c) 2010 Broadcom Corporation | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | |
11 | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | |
13 | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |
14 | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
a9533e7e | 17 | |
f8557965 RV |
18 | #ifndef _BRCM_PMU_H_ |
19 | #define _BRCM_PMU_H_ | |
27302e8f AS |
20 | |
21 | #include <linux/types.h> | |
22 | ||
23 | #include <aiutils.h> | |
24 | ||
25 | /* | |
26 | * LDO selections used in si_pmu_set_ldo_voltage | |
27 | */ | |
a9533e7e HP |
28 | #define SET_LDO_VOLTAGE_LDO1 1 |
29 | #define SET_LDO_VOLTAGE_LDO2 2 | |
30 | #define SET_LDO_VOLTAGE_LDO3 3 | |
31 | #define SET_LDO_VOLTAGE_PAREF 4 | |
32 | #define SET_LDO_VOLTAGE_CLDO_PWM 5 | |
33 | #define SET_LDO_VOLTAGE_CLDO_BURST 6 | |
34 | #define SET_LDO_VOLTAGE_CBUCK_PWM 7 | |
35 | #define SET_LDO_VOLTAGE_CBUCK_BURST 8 | |
36 | #define SET_LDO_VOLTAGE_LNLDO1 9 | |
37 | #define SET_LDO_VOLTAGE_LNLDO2_SEL 10 | |
38 | ||
d5f27a8f RV |
39 | extern void si_pmu_set_ldo_voltage(struct si_pub *sih, u8 ldo, u8 voltage); |
40 | extern u16 si_pmu_fast_pwrup_delay(struct si_pub *sih); | |
41 | extern void si_pmu_sprom_enable(struct si_pub *sih, bool enable); | |
42 | extern u32 si_pmu_chipcontrol(struct si_pub *sih, uint reg, u32 mask, u32 val); | |
43 | extern u32 si_pmu_regcontrol(struct si_pub *sih, uint reg, u32 mask, u32 val); | |
44 | extern u32 si_pmu_ilp_clock(struct si_pub *sih); | |
45 | extern u32 si_pmu_alp_clock(struct si_pub *sih); | |
46 | extern void si_pmu_pllupd(struct si_pub *sih); | |
47 | extern void si_pmu_spuravoid(struct si_pub *sih, u8 spuravoid); | |
48 | extern u32 si_pmu_pllcontrol(struct si_pub *sih, uint reg, u32 mask, u32 val); | |
49 | extern void si_pmu_init(struct si_pub *sih); | |
50 | extern void si_pmu_chip_init(struct si_pub *sih); | |
51 | extern void si_pmu_pll_init(struct si_pub *sih, u32 xtalfreq); | |
52 | extern void si_pmu_res_init(struct si_pub *sih); | |
53 | extern void si_pmu_swreg_init(struct si_pub *sih); | |
54 | extern u32 si_pmu_measure_alpclk(struct si_pub *sih); | |
55 | extern bool si_pmu_is_otp_powered(struct si_pub *sih); | |
56 | extern void si_pmu_otp_power(struct si_pub *sih, bool on); | |
da065a5c | 57 | |
f8557965 | 58 | #endif /* _BRCM_PMU_H_ */ |