#ifndef __FVMAP_H__ #define __FVMAP_H__ #define BLOCK_ADDR_SIZE (3) #define CHILD_ID_NUM (12) enum margin_id { MARGIN_MIF, MARGIN_INT, MARGIN_CPUCL0, MARGIN_CPUCL1, MARGIN_CPUCL2, MARGIN_NPU, MARGIN_DSU, MARGIN_DISP, MARGIN_AUD, MARGIN_CP_CPU, MARGIN_CP, MARGIN_CP_EM, MARGIN_CP_MCW, MARGIN_G3D, MARGIN_INTCAM, MARGIN_CAM, MARGIN_CSIS, MARGIN_ISP, MARGIN_MFC0, MARGIN_MFC1, MARGIN_INTSCI, MARGIN_DSP, MARGIN_DNC, MARGIN_GNSS, MARGIN_ALIVE, MARGIN_CHUB, MARGIN_VTS, MARGIN_HSI0, MARGIN_UFD, MARGIN_INTG3D, MARGIN_WLBT, MAX_MARGIN_ID, }; /* FV(Frequency Voltage MAP) */ struct fvmap_header { unsigned char domain_id; unsigned char num_of_lv; unsigned char num_of_members; unsigned char num_of_pll; unsigned char num_of_mux; unsigned char num_of_div; unsigned short o_famrate; unsigned char init_lv; unsigned char num_of_child; unsigned char parent_id; unsigned char parent_offset; unsigned short block_addr[BLOCK_ADDR_SIZE]; unsigned short o_members; unsigned short o_ratevolt; unsigned short o_tables; unsigned int init_rate; unsigned int min_rate; unsigned int max_rate; unsigned char child_id[CHILD_ID_NUM]; unsigned char copy_col; }; struct clocks { unsigned short addr[0]; }; struct pll_header { unsigned int addr; unsigned short o_lock; unsigned short level; unsigned int pms[0]; }; struct rate_volt { u32 rate:24; u32 volt:8; }; struct rate_volt_header { struct rate_volt table[0]; }; struct dvfs_table { unsigned char val[0]; }; struct freq_volt { unsigned int rate; unsigned int volt; }; #if defined(CONFIG_ACPM_DVFS) || defined(CONFIG_ACPM_DVFS_MODULE) extern int fvmap_init(void __iomem *sram_base); extern int fvmap_get_voltage_table(unsigned int id, unsigned int *table); extern int fvmap_get_freq_volt_table(unsigned int id, void *freq_volt_table, unsigned int table_size); #else static inline int fvmap_init(void __iomem *sram_base) { return 0; } static inline int fvmap_get_voltage_table(unsigned int id, unsigned int *table) { return 0; } static inline int fvmap_get_freq_volt_table(unsigned int id, void *freq_volt_table, unsigned int table_size) { return 0; } #endif extern const struct attribute_group asv_g_spec_grp; #endif