48 lines
1.2 KiB
C
Executable File
48 lines
1.2 KiB
C
Executable File
#ifndef __PMUCAL_LOCAL_H__
|
|
#define __PMUCAL_LOCAL_H__
|
|
#include "pmucal_common.h"
|
|
|
|
/* In Exynos, the number of MAX_POWER_DOMAIN is less than 20 */
|
|
#define PMUCAL_NUM_PDS 20
|
|
|
|
/* will be a member of struct exynos_pm_domain */
|
|
struct pmucal_pd {
|
|
u32 id;
|
|
char *name;
|
|
struct pmucal_seq *on;
|
|
struct pmucal_seq *save;
|
|
struct pmucal_seq *off;
|
|
struct pmucal_seq *status;
|
|
u32 num_on;
|
|
u32 num_save;
|
|
u32 num_off;
|
|
u32 num_status;
|
|
u32 need_smc;
|
|
};
|
|
|
|
#define PMUCAL_PD_DESC(_pd_id, _name, _on, _save, _off, _status) \
|
|
[_pd_id] = { \
|
|
.id = _pd_id, \
|
|
.name = _name, \
|
|
.on = _on, \
|
|
.save = _save, \
|
|
.off = _off, \
|
|
.status = _status, \
|
|
.num_on = ARRAY_SIZE(_on), \
|
|
.num_save = ARRAY_SIZE(_save), \
|
|
.num_off = ARRAY_SIZE(_off), \
|
|
.num_status = ARRAY_SIZE(_status), \
|
|
.need_smc = 0, \
|
|
}
|
|
|
|
/* APIs to be supported to PWRCAL interface */
|
|
extern int pmucal_local_enable(unsigned int pd_id);
|
|
extern int pmucal_local_disable(unsigned int pd_id);
|
|
extern int pmucal_local_is_enabled(unsigned int pd_id);
|
|
extern int pmucal_local_init(void);
|
|
extern void pmucal_local_set_smc_id(unsigned int pd_id, unsigned int need_smc);
|
|
|
|
extern struct pmucal_pd pmucal_pd_list[];
|
|
extern unsigned int pmucal_pd_list_size;
|
|
#endif
|