2 * Copyright (C) STMicroelectronics 2009
3 * Copyright (C) ST-Ericsson SA 2010
5 * License Terms: GNU General Public License v2
6 * Author: Kumar Sanghvi <kumar.sanghvi@stericsson.com>
10 #ifndef __MFD_DB8500_PRCMU_H
11 #define __MFD_DB8500_PRCMU_H
13 #include <linux/interrupt.h>
15 /* This portion previously known as <mach/prcmu-fw-defs_v1.h> */
18 * enum state - ON/OFF state definition
29 * enum ret_state - general purpose On/Off/Retention states
39 * enum clk_arm - ARM Cortex A9 clock schemes
55 * enum clk_gen - GEN#0/GEN#1 clock schemes
66 /* some information between arm and xp70 */
69 * enum romcode_write - Romcode message written by A9 AND read by XP70
70 * @RDY_2_DS: Value set when ApDeepSleep state can be executed by XP70
71 * @RDY_2_XP70_RST: Value set when 0x0F has been successfully polled by the
72 * romcode. The xp70 will go into self-reset
80 * enum romcode_read - Romcode message written by XP70 and read by A9
81 * @INIT: Init value when romcode field is not used
82 * @FS_2_DS: Value set when power state is going from ApExecute to
84 * @END_DS: Value set when ApDeepSleep power state is reached coming from
86 * @DS_TO_FS: Value set when power state is going from ApDeepSleep to
88 * @END_FS: Value set when ApExecute power state is reached coming from
90 * @SWR: Value set when power state is going to ApReset
91 * @END_SWR: Value set when the xp70 finished executing ApReset actions and
92 * waits for romcode acknowledgment to go to self-reset
105 * enum ap_pwrst - current power states defined in PRCMU firmware
106 * @NO_PWRST: Current power state init
107 * @AP_BOOT: Current power state is apBoot
108 * @AP_EXECUTE: Current power state is apExecute
109 * @AP_DEEP_SLEEP: Current power state is apDeepSleep
110 * @AP_SLEEP: Current power state is apSleep
111 * @AP_IDLE: Current power state is apIdle
112 * @AP_RESET: Current power state is apReset
118 AP_DEEP_SLEEP
= 0x03,
125 * enum ap_pwrst_trans - Transition states defined in PRCMU firmware
126 * @NO_TRANSITION: No power state transition
127 * @APEXECUTE_TO_APSLEEP: Power state transition from ApExecute to ApSleep
128 * @APIDLE_TO_APSLEEP: Power state transition from ApIdle to ApSleep
129 * @APBOOT_TO_APEXECUTE: Power state transition from ApBoot to ApExecute
130 * @APEXECUTE_TO_APDEEPSLEEP: Power state transition from ApExecute to
132 * @APEXECUTE_TO_APIDLE: Power state transition from ApExecute to ApIdle
134 enum ap_pwrst_trans
{
135 PRCMU_AP_NO_CHANGE
= 0x00,
136 APEXECUTE_TO_APSLEEP
= 0x01,
137 APIDLE_TO_APSLEEP
= 0x02, /* To be removed */
138 PRCMU_AP_SLEEP
= 0x01,
139 APBOOT_TO_APEXECUTE
= 0x03,
140 APEXECUTE_TO_APDEEPSLEEP
= 0x04, /* To be removed */
141 PRCMU_AP_DEEP_SLEEP
= 0x04,
142 APEXECUTE_TO_APIDLE
= 0x05, /* To be removed */
143 PRCMU_AP_IDLE
= 0x05,
144 PRCMU_AP_DEEP_IDLE
= 0x07,
148 * enum hw_acc_state - State definition for hardware accelerator
149 * @HW_NO_CHANGE: The hardware accelerator state must remain unchanged
150 * @HW_OFF: The hardware accelerator must be switched off
151 * @HW_OFF_RAMRET: The hardware accelerator must be switched off with its
152 * internal RAM in retention
153 * @HW_ON: The hwa hardware accelerator hwa must be switched on
155 * NOTE! Deprecated, to be removed when all users switched over to use the
161 HW_OFF_RAMRET
= 0x02,
166 * enum mbox_2_arm_stat - Status messages definition for mbox_arm
167 * @BOOT_TO_EXECUTEOK: The apBoot to apExecute state transition has been
169 * @DEEPSLEEPOK: The apExecute to apDeepSleep state transition has been
171 * @SLEEPOK: The apExecute to apSleep state transition has been completed
172 * @IDLEOK: The apExecute to apIdle state transition has been completed
173 * @SOFTRESETOK: The A9 watchdog/ SoftReset state has been completed
174 * @SOFTRESETGO : The A9 watchdog/SoftReset state is on going
175 * @BOOT_TO_EXECUTE: The apBoot to apExecute state transition is on going
176 * @EXECUTE_TO_DEEPSLEEP: The apExecute to apDeepSleep state transition is on
178 * @DEEPSLEEP_TO_EXECUTE: The apDeepSleep to apExecute state transition is on
180 * @DEEPSLEEP_TO_EXECUTEOK: The apDeepSleep to apExecute state transition has
182 * @EXECUTE_TO_SLEEP: The apExecute to apSleep state transition is on going
183 * @SLEEP_TO_EXECUTE: The apSleep to apExecute state transition is on going
184 * @SLEEP_TO_EXECUTEOK: The apSleep to apExecute state transition has been
186 * @EXECUTE_TO_IDLE: The apExecute to apIdle state transition is on going
187 * @IDLE_TO_EXECUTE: The apIdle to apExecute state transition is on going
188 * @IDLE_TO_EXECUTEOK: The apIdle to apExecute state transition has been
190 * @INIT_STATUS: Status init
192 enum ap_pwrsttr_status
{
193 BOOT_TO_EXECUTEOK
= 0xFF,
199 BOOT_TO_EXECUTE
= 0xF9,
200 EXECUTE_TO_DEEPSLEEP
= 0xF8,
201 DEEPSLEEP_TO_EXECUTE
= 0xF7,
202 DEEPSLEEP_TO_EXECUTEOK
= 0xF6,
203 EXECUTE_TO_SLEEP
= 0xF5,
204 SLEEP_TO_EXECUTE
= 0xF4,
205 SLEEP_TO_EXECUTEOK
= 0xF3,
206 EXECUTE_TO_IDLE
= 0xF2,
207 IDLE_TO_EXECUTE
= 0xF1,
208 IDLE_TO_EXECUTEOK
= 0xF0,
209 RDYTODS_RETURNTOEXE
= 0xEF,
210 NORDYTODS_RETURNTOEXE
= 0xEE,
211 EXETOSLEEP_RETURNTOEXE
= 0xED,
212 EXETOIDLE_RETURNTOEXE
= 0xEC,
217 PLLARMLOCKP_ER
= 0x01,
218 PLLDDRLOCKP_ER
= 0x02,
219 PLLSOCLOCKP_ER
= 0x03,
220 PLLSOCK1LOCKP_ER
= 0x04,
223 I2C_NACK_DATA_ER
= 0x07,
225 I2C_STATUS_ALWAYS_1
= 0x0A,
226 I2C_NACK_REG_ADDR_ER
= 0x0B,
227 I2C_NACK_DATA0123_ER
= 0x1B,
228 I2C_NACK_ADDR_ER
= 0x1F,
229 CURAPPWRSTISNOT_BOOT
= 0x20,
230 CURAPPWRSTISNOT_EXECUTE
= 0x21,
231 CURAPPWRSTISNOT_SLEEPMODE
= 0x22,
232 CURAPPWRSTISNOT_CORRECTFORIT10
= 0x23,
233 FIFO4500WUISNOT_WUPEVENT
= 0x24,
234 PLL32KLOCKP_ER
= 0x29,
235 DDRDEEPSLEEPOK_ER
= 0x2A,
236 ROMCODEREADY_ER
= 0x50,
239 WUPBEFORESLEEP
= 0x53,
241 }; /* earlier called as mbox_2_arm_stat */
244 * enum dvfs_stat - DVFS status messages definition
245 * @DVFS_GO: A state transition DVFS is on going
246 * @DVFS_ARM100OPPOK: The state transition DVFS has been completed for 100OPP
247 * @DVFS_ARM50OPPOK: The state transition DVFS has been completed for 50OPP
248 * @DVFS_ARMEXTCLKOK: The state transition DVFS has been completed for EXTCLK
249 * @DVFS_NOCHGTCLKOK: The state transition DVFS has been completed for
251 * @DVFS_INITSTATUS: Value init
255 DVFS_ARM100OPPOK
= 0xFE,
256 DVFS_ARM50OPPOK
= 0xFD,
257 DVFS_ARMEXTCLKOK
= 0xFC,
258 DVFS_NOCHGTCLKOK
= 0xFB,
259 DVFS_INITSTATUS
= 0x00
263 * enum sva_mmdsp_stat - SVA MMDSP status messages
264 * @SVA_MMDSP_GO: SVAMMDSP interrupt has happened
265 * @SVA_MMDSP_INIT: Status init
267 enum sva_mmdsp_stat
{
269 SVA_MMDSP_INIT
= 0x00
273 * enum sia_mmdsp_stat - SIA MMDSP status messages
274 * @SIA_MMDSP_GO: SIAMMDSP interrupt has happened
275 * @SIA_MMDSP_INIT: Status init
277 enum sia_mmdsp_stat
{
279 SIA_MMDSP_INIT
= 0x00
283 * enum mbox_to_arm_err - Error messages definition
284 * @INIT_ERR: Init value
285 * @PLLARMLOCKP_ERR: PLLARM has not been correctly locked in given time
286 * @PLLDDRLOCKP_ERR: PLLDDR has not been correctly locked in the given time
287 * @PLLSOC0LOCKP_ERR: PLLSOC0 has not been correctly locked in the given time
288 * @PLLSOC1LOCKP_ERR: PLLSOC1 has not been correctly locked in the given time
289 * @ARMWFI_ERR: The ARM WFI has not been correctly executed in the given time
290 * @SYSCLKOK_ERR: The SYSCLK is not available in the given time
291 * @BOOT_ERR: Romcode has not validated the XP70 self reset in the given time
292 * @ROMCODESAVECONTEXT: The Romcode didn.t correctly save it secure context
293 * @VARMHIGHSPEEDVALTO_ERR: The ARM high speed supply value transfered
294 * through I2C has not been correctly executed in the given time
295 * @VARMHIGHSPEEDACCESS_ERR: The command value of VarmHighSpeedVal transfered
296 * through I2C has not been correctly executed in the given time
297 * @VARMLOWSPEEDVALTO_ERR:The ARM low speed supply value transfered through
298 * I2C has not been correctly executed in the given time
299 * @VARMLOWSPEEDACCESS_ERR: The command value of VarmLowSpeedVal transfered
300 * through I2C has not been correctly executed in the given time
301 * @VARMRETENTIONVALTO_ERR: The ARM retention supply value transfered through
302 * I2C has not been correctly executed in the given time
303 * @VARMRETENTIONACCESS_ERR: The command value of VarmRetentionVal transfered
304 * through I2C has not been correctly executed in the given time
305 * @VAPEHIGHSPEEDVALTO_ERR: The APE highspeed supply value transfered through
306 * I2C has not been correctly executed in the given time
307 * @VSAFEHPVALTO_ERR: The SAFE high power supply value transfered through I2C
308 * has not been correctly executed in the given time
309 * @VMODSEL1VALTO_ERR: The MODEM sel1 supply value transfered through I2C has
310 * not been correctly executed in the given time
311 * @VMODSEL2VALTO_ERR: The MODEM sel2 supply value transfered through I2C has
312 * not been correctly executed in the given time
313 * @VARMOFFACCESS_ERR: The command value of Varm ON/OFF transfered through
314 * I2C has not been correctly executed in the given time
315 * @VAPEOFFACCESS_ERR: The command value of Vape ON/OFF transfered through
316 * I2C has not been correctly executed in the given time
317 * @VARMRETACCES_ERR: The command value of Varm retention ON/OFF transfered
318 * through I2C has not been correctly executed in the given time
319 * @CURAPPWRSTISNOTBOOT:Generated when Arm want to do power state transition
320 * ApBoot to ApExecute but the power current state is not Apboot
321 * @CURAPPWRSTISNOTEXECUTE: Generated when Arm want to do power state
322 * transition from ApExecute to others power state but the
323 * power current state is not ApExecute
324 * @CURAPPWRSTISNOTSLEEPMODE: Generated when wake up events are transmitted
325 * but the power current state is not ApDeepSleep/ApSleep/ApIdle
326 * @CURAPPWRSTISNOTCORRECTDBG: Generated when wake up events are transmitted
327 * but the power current state is not correct
328 * @ARMREGU1VALTO_ERR:The ArmRegu1 value transferred through I2C has not
329 * been correctly executed in the given time
330 * @ARMREGU2VALTO_ERR: The ArmRegu2 value transferred through I2C has not
331 * been correctly executed in the given time
332 * @VAPEREGUVALTO_ERR: The VApeRegu value transfered through I2C has not
333 * been correctly executed in the given time
334 * @VSMPS3REGUVALTO_ERR: The VSmps3Regu value transfered through I2C has not
335 * been correctly executed in the given time
336 * @VMODREGUVALTO_ERR: The VModemRegu value transfered through I2C has not
337 * been correctly executed in the given time
339 enum mbox_to_arm_err
{
341 PLLARMLOCKP_ERR
= 0x01,
342 PLLDDRLOCKP_ERR
= 0x02,
343 PLLSOC0LOCKP_ERR
= 0x03,
344 PLLSOC1LOCKP_ERR
= 0x04,
348 ROMCODESAVECONTEXT
= 0x08,
349 VARMHIGHSPEEDVALTO_ERR
= 0x10,
350 VARMHIGHSPEEDACCESS_ERR
= 0x11,
351 VARMLOWSPEEDVALTO_ERR
= 0x12,
352 VARMLOWSPEEDACCESS_ERR
= 0x13,
353 VARMRETENTIONVALTO_ERR
= 0x14,
354 VARMRETENTIONACCESS_ERR
= 0x15,
355 VAPEHIGHSPEEDVALTO_ERR
= 0x16,
356 VSAFEHPVALTO_ERR
= 0x17,
357 VMODSEL1VALTO_ERR
= 0x18,
358 VMODSEL2VALTO_ERR
= 0x19,
359 VARMOFFACCESS_ERR
= 0x1A,
360 VAPEOFFACCESS_ERR
= 0x1B,
361 VARMRETACCES_ERR
= 0x1C,
362 CURAPPWRSTISNOTBOOT
= 0x20,
363 CURAPPWRSTISNOTEXECUTE
= 0x21,
364 CURAPPWRSTISNOTSLEEPMODE
= 0x22,
365 CURAPPWRSTISNOTCORRECTDBG
= 0x23,
366 ARMREGU1VALTO_ERR
= 0x24,
367 ARMREGU2VALTO_ERR
= 0x25,
368 VAPEREGUVALTO_ERR
= 0x26,
369 VSMPS3REGUVALTO_ERR
= 0x27,
370 VMODREGUVALTO_ERR
= 0x28
391 /* Defs related to autonomous power management */
394 * enum sia_sva_pwr_policy - Power policy
395 * @NO_CHGT: No change
397 * @DSPOFFRAMRET_HWPOFF:
399 * @DSPCLKOFF_HWPCLKOFF:
402 enum sia_sva_pwr_policy
{
405 DSPOFFRAMRET_HWPOFF
= 0x2,
406 DSPCLKOFF_HWPOFF
= 0x3,
407 DSPCLKOFF_HWPCLKOFF
= 0x4,
411 * enum auto_enable - Auto Power enable
421 /* End of file previously known as prcmu-fw-defs_v1.h */
424 * enum hw_acc_dev - enum for hw accelerators
425 * @HW_ACC_SVAMMDSP: for SVAMMDSP
426 * @HW_ACC_SVAPIPE: for SVAPIPE
427 * @HW_ACC_SIAMMDSP: for SIAMMDSP
428 * @HW_ACC_SIAPIPE: for SIAPIPE
429 * @HW_ACC_SGA: for SGA
430 * @HW_ACC_B2R2: for B2R2
431 * @HW_ACC_MCDE: for MCDE
432 * @HW_ACC_ESRAM1: for ESRAM1
433 * @HW_ACC_ESRAM2: for ESRAM2
434 * @HW_ACC_ESRAM3: for ESRAM3
435 * @HW_ACC_ESRAM4: for ESRAM4
436 * @NUM_HW_ACC: number of hardware accelerators
438 * Different hw accelerators which can be turned ON/
439 * OFF or put into retention (MMDSPs and ESRAMs).
440 * Used with EPOD API.
442 * NOTE! Deprecated, to be removed when all users switched over to use the
461 * Definitions for autonomous power management configuration.
464 #define PRCMU_AUTO_PM_OFF 0
465 #define PRCMU_AUTO_PM_ON 1
467 #define PRCMU_AUTO_PM_POWER_ON_HSEM BIT(0)
468 #define PRCMU_AUTO_PM_POWER_ON_ABB_FIFO_IT BIT(1)
470 enum prcmu_auto_pm_policy
{
471 PRCMU_AUTO_PM_POLICY_NO_CHANGE
,
472 PRCMU_AUTO_PM_POLICY_DSP_OFF_HWP_OFF
,
473 PRCMU_AUTO_PM_POLICY_DSP_OFF_RAMRET_HWP_OFF
,
474 PRCMU_AUTO_PM_POLICY_DSP_CLK_OFF_HWP_OFF
,
475 PRCMU_AUTO_PM_POLICY_DSP_CLK_OFF_HWP_CLK_OFF
,
479 * struct prcmu_auto_pm_config - Autonomous power management configuration.
480 * @sia_auto_pm_enable: SIA autonomous pm enable. (PRCMU_AUTO_PM_{OFF,ON})
481 * @sia_power_on: SIA power ON enable. (PRCMU_AUTO_PM_POWER_ON_* bitmask)
482 * @sia_policy: SIA power policy. (enum prcmu_auto_pm_policy)
483 * @sva_auto_pm_enable: SVA autonomous pm enable. (PRCMU_AUTO_PM_{OFF,ON})
484 * @sva_power_on: SVA power ON enable. (PRCMU_AUTO_PM_POWER_ON_* bitmask)
485 * @sva_policy: SVA power policy. (enum prcmu_auto_pm_policy)
487 struct prcmu_auto_pm_config
{
488 u8 sia_auto_pm_enable
;
491 u8 sva_auto_pm_enable
;
496 #ifdef CONFIG_MFD_DB8500_PRCMU
498 void db8500_prcmu_early_init(void);
499 int prcmu_set_rc_a2p(enum romcode_write
);
500 enum romcode_read
prcmu_get_rc_p2a(void);
501 enum ap_pwrst
prcmu_get_xp70_current_state(void);
502 bool prcmu_has_arm_maxopp(void);
503 bool prcmu_is_u8400(void);
504 int prcmu_set_ape_opp(u8 opp
);
505 int prcmu_get_ape_opp(void);
506 int prcmu_request_ape_opp_100_voltage(bool enable
);
507 int prcmu_release_usb_wakeup_state(void);
508 int prcmu_set_ddr_opp(u8 opp
);
509 int prcmu_get_ddr_opp(void);
510 /* NOTE! Use regulator framework instead */
511 int prcmu_set_hwacc(u16 hw_acc_dev
, u8 state
);
512 void prcmu_configure_auto_pm(struct prcmu_auto_pm_config
*sleep
,
513 struct prcmu_auto_pm_config
*idle
);
514 bool prcmu_is_auto_pm_enabled(void);
516 int prcmu_config_clkout(u8 clkout
, u8 source
, u8 div
);
517 int prcmu_set_clock_divider(u8 clock
, u8 divider
);
518 int prcmu_config_hotdog(u8 threshold
);
519 int prcmu_config_hotmon(u8 low
, u8 high
);
520 int prcmu_start_temp_sense(u16 cycles32k
);
521 int prcmu_stop_temp_sense(void);
522 int prcmu_abb_read(u8 slave
, u8 reg
, u8
*value
, u8 size
);
523 int prcmu_abb_write(u8 slave
, u8 reg
, u8
*value
, u8 size
);
525 void prcmu_ac_wake_req(void);
526 void prcmu_ac_sleep_req(void);
527 void prcmu_modem_reset(void);
528 void prcmu_enable_spi2(void);
529 void prcmu_disable_spi2(void);
531 int prcmu_config_a9wdog(u8 num
, bool sleep_auto_off
);
532 int prcmu_enable_a9wdog(u8 id
);
533 int prcmu_disable_a9wdog(u8 id
);
534 int prcmu_kick_a9wdog(u8 id
);
535 int prcmu_load_a9wdog(u8 id
, u32 val
);
537 void db8500_prcmu_system_reset(u16 reset_code
);
538 int db8500_prcmu_set_power_state(u8 state
, bool keep_ulp_clk
, bool keep_ap_pll
);
539 void db8500_prcmu_enable_wakeups(u32 wakeups
);
540 int db8500_prcmu_set_epod(u16 epod_id
, u8 epod_state
);
541 int db8500_prcmu_request_clock(u8 clock
, bool enable
);
542 int db8500_prcmu_set_display_clocks(void);
543 int db8500_prcmu_disable_dsipll(void);
544 int db8500_prcmu_enable_dsipll(void);
545 void db8500_prcmu_config_abb_event_readout(u32 abb_events
);
546 void db8500_prcmu_get_abb_event_buffer(void __iomem
**buf
);
547 int db8500_prcmu_config_esram0_deep_sleep(u8 state
);
548 u16
db8500_prcmu_get_reset_code(void);
549 bool db8500_prcmu_is_ac_wake_requested(void);
550 int db8500_prcmu_set_arm_opp(u8 opp
);
551 int db8500_prcmu_get_arm_opp(void);
553 #else /* !CONFIG_MFD_DB8500_PRCMU */
555 static inline void db8500_prcmu_early_init(void) {}
557 static inline int prcmu_set_rc_a2p(enum romcode_write code
)
562 static inline enum romcode_read
prcmu_get_rc_p2a(void)
567 static inline enum ap_pwrst
prcmu_get_xp70_current_state(void)
572 static inline bool prcmu_has_arm_maxopp(void)
577 static inline bool prcmu_is_u8400(void)
582 static inline int prcmu_set_ape_opp(u8 opp
)
587 static inline int prcmu_get_ape_opp(void)
592 static inline int prcmu_request_ape_opp_100_voltage(bool enable
)
597 static inline int prcmu_release_usb_wakeup_state(void)
602 static inline int prcmu_set_ddr_opp(u8 opp
)
607 static inline int prcmu_get_ddr_opp(void)
612 static inline int prcmu_set_hwacc(u16 hw_acc_dev
, u8 state
)
617 static inline void prcmu_configure_auto_pm(struct prcmu_auto_pm_config
*sleep
,
618 struct prcmu_auto_pm_config
*idle
)
622 static inline bool prcmu_is_auto_pm_enabled(void)
627 static inline int prcmu_config_clkout(u8 clkout
, u8 source
, u8 div
)
632 static inline int prcmu_set_clock_divider(u8 clock
, u8 divider
)
637 static inline int prcmu_config_hotdog(u8 threshold
)
642 static inline int prcmu_config_hotmon(u8 low
, u8 high
)
647 static inline int prcmu_start_temp_sense(u16 cycles32k
)
652 static inline int prcmu_stop_temp_sense(void)
657 static inline int prcmu_abb_read(u8 slave
, u8 reg
, u8
*value
, u8 size
)
662 static inline int prcmu_abb_write(u8 slave
, u8 reg
, u8
*value
, u8 size
)
667 static inline void prcmu_ac_wake_req(void) {}
669 static inline void prcmu_ac_sleep_req(void) {}
671 static inline void prcmu_modem_reset(void) {}
673 static inline int prcmu_enable_spi2(void)
678 static inline int prcmu_disable_spi2(void)
683 static inline void db8500_prcmu_system_reset(u16 reset_code
) {}
685 static inline int db8500_prcmu_set_power_state(u8 state
, bool keep_ulp_clk
,
691 static inline void db8500_prcmu_enable_wakeups(u32 wakeups
) {}
693 static inline int db8500_prcmu_set_epod(u16 epod_id
, u8 epod_state
)
698 static inline int db8500_prcmu_request_clock(u8 clock
, bool enable
)
703 static inline int db8500_prcmu_set_display_clocks(void)
708 static inline int db8500_prcmu_disable_dsipll(void)
713 static inline int db8500_prcmu_enable_dsipll(void)
718 static inline int db8500_prcmu_config_esram0_deep_sleep(u8 state
)
723 static inline void db8500_prcmu_config_abb_event_readout(u32 abb_events
) {}
725 static inline void db8500_prcmu_get_abb_event_buffer(void __iomem
**buf
) {}
727 static inline u16
db8500_prcmu_get_reset_code(void)
732 static inline int prcmu_config_a9wdog(u8 num
, bool sleep_auto_off
)
737 static inline int prcmu_enable_a9wdog(u8 id
)
742 static inline int prcmu_disable_a9wdog(u8 id
)
747 static inline int prcmu_kick_a9wdog(u8 id
)
752 static inline int prcmu_load_a9wdog(u8 id
, u32 val
)
757 static inline bool db8500_prcmu_is_ac_wake_requested(void)
762 static inline int db8500_prcmu_set_arm_opp(u8 opp
)
767 static inline int db8500_prcmu_get_arm_opp(void)
772 #endif /* !CONFIG_MFD_DB8500_PRCMU */
774 #endif /* __MFD_DB8500_PRCMU_H */