Corrects the Kirkwood dreamplug to use

the right register for power managment. It
was incorrectly using the clock register
which also caused the status to be the
opposite of what it is supposed to be.
1 - its disabled
0 - its enabled

Per kirkwood spec FSS_88F6180_9x_6281_OpenSource.pdf
This commit is contained in:
Randall Stewart 2013-10-19 06:47:02 +00:00
parent f8c98b1227
commit 03466868c3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=256760
2 changed files with 19 additions and 2 deletions

View File

@ -153,8 +153,11 @@ struct fdt_pm_mask_entry fdt_pm_mask_table[] = {
static __inline int
pm_is_disabled(uint32_t mask)
{
#if defined(SOC_MV_KIRKWOOD)
return (soc_power_ctrl_get(mask) == mask);
#else
return (soc_power_ctrl_get(mask) == mask ? 0 : 1);
#endif
}
/*
@ -221,7 +224,16 @@ fdt_pm(phandle_t node)
continue;
compat = fdt_is_compatible(node, fdt_pm_mask_table[i].compat);
#if defined(SOC_MV_KIRKWOOD)
if (compat && (cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) {
dev_mask |= (1 << i);
ena = 0;
break;
} else if (compat) {
dev_mask |= (1 << i);
break;
}
#else
if (compat && (~cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) {
dev_mask |= (1 << i);
ena = 0;
@ -230,6 +242,7 @@ fdt_pm(phandle_t node)
dev_mask |= (1 << i);
break;
}
#endif
}
return (ena);

View File

@ -142,7 +142,11 @@
/*
* Power Control
*/
#if defined(SOC_MV_KIRKWOOD)
#define CPU_PM_CTRL 0x18
#else
#define CPU_PM_CTRL 0x1C
#endif
#define CPU_PM_CTRL_NONE 0
#define CPU_PM_CTRL_ALL ~0x0