blob: 05487fa2f7fb722ed46bcb877a24a091a332878e [file] [log] [blame]
#ifndef __PMUCAL_CPU_H__
#define __PMUCAL_CPU_H__
#include "pmucal_common.h"
#include <linux/fs.h>
#include <linux/debugfs.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
#include <linux/uaccess.h>
#include <soc/samsung/exynos-pmu.h>
#include "pmucal_dbg.h"
struct pmucal_cpu {
u32 id;
struct pmucal_seq *on;
struct pmucal_seq *off;
struct pmucal_seq *release;
struct pmucal_seq *status;
u32 num_on;
u32 num_off;
u32 num_release;
u32 num_status;
struct pmucal_dbg_info *dbg;
};
/* APIs to be supported to PWRCAL interface */
extern int pmucal_cpu_enable(unsigned int cpu);
extern int pmucal_cpu_disable(unsigned int cpu);
extern int pmucal_cpu_is_enabled(unsigned int cpu);
extern int pmucal_cpu_cluster_enable(unsigned int cluster);
extern int pmucal_cpu_cluster_disable(unsigned int cluster);
extern int pmucal_cpu_cluster_is_enabled(unsigned int cluster);
extern int pmucal_cpu_cluster_req_emulation(unsigned int cluster, bool en);
extern int pmucal_cpu_init(void);
extern struct pmucal_cpu pmucal_cpu_list[];
extern unsigned int pmucal_cpu_list_size;
extern struct pmucal_cpu pmucal_cluster_list[];
extern unsigned int pmucal_cluster_list_size;
extern unsigned int cpu_inform_c2;
extern unsigned int cpu_inform_cpd;
#endif