/*
|
* Copyright (C) 2017, Fuzhou Rockchip Electronics Co., Ltd
|
*
|
* This program is free software; you can redistribute it and/or modify it
|
* under the terms and conditions of the GNU General Public License,
|
* version 2, as published by the Free Software Foundation.
|
*
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
* more details.
|
*/
|
|
#ifndef __SOC_ROCKCHIP_SCPI_H
|
#define __SOC_ROCKCHIP_SCPI_H
|
|
#ifdef CONFIG_RK3368_SCPI_PROTOCOL
|
struct scpi_opp_entry {
|
u32 freq_hz;
|
u32 volt_mv;
|
} __packed;
|
|
struct scpi_opp {
|
struct scpi_opp_entry *opp;
|
u32 latency; /* in usecs */
|
int count;
|
} __packed;
|
|
unsigned long scpi_clk_get_val(u16 clk_id);
|
int scpi_clk_set_val(u16 clk_id, unsigned long rate);
|
int scpi_dvfs_get_idx(u8 domain);
|
int scpi_dvfs_set_idx(u8 domain, u8 idx);
|
struct scpi_opp *scpi_dvfs_get_opps(u8 domain);
|
int scpi_get_sensor(char *name);
|
int scpi_get_sensor_value(u16 sensor, u32 *val);
|
int scpi_sys_set_jtagmux_on_off(u32 en);
|
int scpi_sys_set_mcu_state_suspend(void);
|
int scpi_sys_set_mcu_state_resume(void);
|
|
int scpi_ddr_dclk_mode(u32 dclk_mode);
|
int scpi_ddr_init(u32 dram_speed_bin, u32 freq, u32 lcdc_type,
|
u32 addr_mcu_el3);
|
int scpi_ddr_set_clk_rate(u32 rate, u32 lcdc_type);
|
int scpi_ddr_send_timing(u32 *p, u32 size);
|
int scpi_ddr_round_rate(u32 m_hz);
|
int scpi_ddr_set_auto_self_refresh(u32 en);
|
int scpi_ddr_get_clk_rate(void);
|
int scpi_thermal_get_temperature(void);
|
int scpi_thermal_set_clk_cycle(u32 cycle);
|
#else
|
static inline unsigned long scpi_clk_get_val(u16 clk_id)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_clk_set_val(u16 clk_id, unsigned long rate)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_dvfs_get_idx(u8 domain)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_dvfs_set_idx(u8 domain, u8 idx)
|
{
|
return -EPERM;
|
}
|
|
static inline struct scpi_opp *scpi_dvfs_get_opps(u8 domain)
|
{
|
return ERR_PTR(-EPERM);
|
}
|
|
static inline int scpi_get_sensor(char *name)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_get_sensor_value(u16 sensor, u32 *val)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_sys_set_jtagmux_on_off(u32 en)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_sys_set_mcu_state_suspend(void)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_sys_set_mcu_state_resume(void)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_dclk_mode(u32 dclk_mode)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_init(u32 dram_speed_bin, u32 freq, u32 lcdc_type,
|
u32 addr_mcu_el3)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_set_clk_rate(u32 rate, u32 lcdc_type)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_send_timing(u32 *p, u32 size)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_round_rate(u32 m_hz)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_set_auto_self_refresh(u32 en)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_ddr_get_clk_rate(void)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_thermal_get_temperature(void)
|
{
|
return -EPERM;
|
}
|
|
static inline int scpi_thermal_set_clk_cycle(u32 cycle)
|
{
|
return -EPERM;
|
}
|
#endif
|
#endif
|