mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
cpufreq: ti-cpufreq: Add support for AM625
Add support for TI K3 AM625 SoC to read speed and revision values from hardware and pass to OPP layer. Signed-off-by: Dave Gerlach <d-gerlach@ti.com> Signed-off-by: Vibhore Vardhan <vibhore@ti.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
cb140497fe
commit
aac0293a8f
@ -39,6 +39,14 @@
|
||||
#define OMAP34xx_ProdID_SKUID 0x4830A20C
|
||||
#define OMAP3_SYSCON_BASE (0x48000000 + 0x2000 + 0x270)
|
||||
|
||||
#define AM625_EFUSE_K_MPU_OPP 11
|
||||
#define AM625_EFUSE_S_MPU_OPP 19
|
||||
#define AM625_EFUSE_T_MPU_OPP 20
|
||||
|
||||
#define AM625_SUPPORT_K_MPU_OPP BIT(0)
|
||||
#define AM625_SUPPORT_S_MPU_OPP BIT(1)
|
||||
#define AM625_SUPPORT_T_MPU_OPP BIT(2)
|
||||
|
||||
#define VERSION_COUNT 2
|
||||
|
||||
struct ti_cpufreq_data;
|
||||
@ -104,6 +112,25 @@ static unsigned long omap3_efuse_xlate(struct ti_cpufreq_data *opp_data,
|
||||
return BIT(efuse);
|
||||
}
|
||||
|
||||
static unsigned long am625_efuse_xlate(struct ti_cpufreq_data *opp_data,
|
||||
unsigned long efuse)
|
||||
{
|
||||
unsigned long calculated_efuse = AM625_SUPPORT_K_MPU_OPP;
|
||||
|
||||
switch (efuse) {
|
||||
case AM625_EFUSE_T_MPU_OPP:
|
||||
calculated_efuse |= AM625_SUPPORT_T_MPU_OPP;
|
||||
fallthrough;
|
||||
case AM625_EFUSE_S_MPU_OPP:
|
||||
calculated_efuse |= AM625_SUPPORT_S_MPU_OPP;
|
||||
fallthrough;
|
||||
case AM625_EFUSE_K_MPU_OPP:
|
||||
calculated_efuse |= AM625_SUPPORT_K_MPU_OPP;
|
||||
}
|
||||
|
||||
return calculated_efuse;
|
||||
}
|
||||
|
||||
static struct ti_cpufreq_soc_data am3x_soc_data = {
|
||||
.efuse_xlate = amx3_efuse_xlate,
|
||||
.efuse_fallback = AM33XX_800M_ARM_MPU_MAX_FREQ,
|
||||
@ -198,6 +225,14 @@ static struct ti_cpufreq_soc_data am3517_soc_data = {
|
||||
.multi_regulator = false,
|
||||
};
|
||||
|
||||
static struct ti_cpufreq_soc_data am625_soc_data = {
|
||||
.efuse_xlate = am625_efuse_xlate,
|
||||
.efuse_offset = 0x0018,
|
||||
.efuse_mask = 0x07c0,
|
||||
.efuse_shift = 0x6,
|
||||
.rev_offset = 0x0014,
|
||||
.multi_regulator = false,
|
||||
};
|
||||
|
||||
/**
|
||||
* ti_cpufreq_get_efuse() - Parse and return efuse value present on SoC
|
||||
@ -301,6 +336,7 @@ static const struct of_device_id ti_cpufreq_of_match[] = {
|
||||
{ .compatible = "ti,dra7", .data = &dra7_soc_data },
|
||||
{ .compatible = "ti,omap34xx", .data = &omap34xx_soc_data, },
|
||||
{ .compatible = "ti,omap36xx", .data = &omap36xx_soc_data, },
|
||||
{ .compatible = "ti,am625", .data = &am625_soc_data, },
|
||||
/* legacy */
|
||||
{ .compatible = "ti,omap3430", .data = &omap34xx_soc_data, },
|
||||
{ .compatible = "ti,omap3630", .data = &omap36xx_soc_data, },
|
||||
|
Loading…
Reference in New Issue
Block a user