PM_READ
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~PM_ISFUNC);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~PM_ISPOW);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~PM_POWUP);
if (PM_READ(pm_reg) & PM_POWUP)
(PM_READ(pm_reg) & ~PM_INRUSH_MASK) |
while (!(powok = !!(PM_READ(pm_reg) & PM_POWOK))) {
PM_WRITE(pm_reg, PM_READ(pm_reg) | PM_ISPOW);
PM_WRITE(pm_reg, PM_READ(pm_reg) | PM_MEMREP);
while (!(PM_READ(pm_reg) & PM_MRDONE)) {
PM_WRITE(pm_reg, PM_READ(pm_reg) | PM_ISFUNC);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~PM_ISPOW);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~(PM_POWUP | PM_INRUSH_MASK));
PM_WRITE(pm_reg, PM_READ(pm_reg) | reset_flags);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~reset_flags);
PM_WRITE(pm_reg, PM_READ(pm_reg) & ~reset_flags);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) | PM_HDMI_RSTDR);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) | PM_HDMI_CTRLEN);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) & ~PM_HDMI_LDOPD);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) & ~PM_HDMI_RSTDR);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) | PM_HDMI_LDOPD);
PM_WRITE(PM_HDMI, PM_READ(PM_HDMI) & ~PM_HDMI_CTRLEN);
return !(PM_READ(PM_GRAFX) & PM_V3DRSTN);
return !(PM_READ(PM_IMAGE) & PM_H264RSTN);
return !(PM_READ(PM_IMAGE) & PM_ISPRSTN);