loongson2_pm
loongson2_pm.dev = button;
if (!loongson2_pm.suspended && (status & LOONGSON2_PM1_PWRBTN_STS)) {
input_report_key(loongson2_pm.dev, KEY_POWER, 1);
input_sync(loongson2_pm.dev);
input_report_key(loongson2_pm.dev, KEY_POWER, 0);
input_sync(loongson2_pm.dev);
loongson2_pm.suspended = true;
loongson2_pm.suspended = false;
loongson2_pm.base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(loongson2_pm.base))
return PTR_ERR(loongson2_pm.base);
IRQF_SHARED, "pm_irq", &loongson2_pm);
} loongson2_pm;
#define loongson2_pm_readw(reg) readw(loongson2_pm.base + reg)
#define loongson2_pm_readl(reg) readl(loongson2_pm.base + reg)
#define loongson2_pm_writew(val, reg) writew(val, loongson2_pm.base + reg)
#define loongson2_pm_writel(val, reg) writel(val, loongson2_pm.base + reg)