static int smart_power_off(struct notifier_block *self, unsigned long event, void *data) { PMIC_MNTN_DESC * mntn_desc = &smart_mntn_ops; unsigned int reg_id = 0; unsigned int vote_id = 0; pr_err("PMU SMART POWER DOWN SHOW\n"); mntn_desc->mntn_ops->no_pwr_read(); mntn_desc->mntn_ops->irq_read(); mntn_desc->mntn_ops->record_read(); pmic_poweron_show(); pr_err("mask register\n"); for(reg_id = SOC_SMART_IRQ1_MASK_ADDR(0); reg_id <= SOC_SMART_COUL_IRQ_MASK_ADDR(0); reg_id++) { pr_err("reg addr 0x%x data 0x%x\n",reg_id,pmussi_reg_read(reg_id)); } pr_err("usr vote mask unmask\n"); for(vote_id = 0; vote_id < IRQ_PMU_NR_END-IRQ_PMU_NR_BASE; vote_id++) { pr_err(" %d %d %d\n",vote_id,smart_mask_vote[vote_id],smart_unmask_vote[vote_id]); } return NOTIFY_OK; }
}; PMU_LOCAL BSP_U32 pmic_no_pwr_reg_addr[PMIC_NO_PWR_REG_BUTT]={ SOC_SMART_NP_IRQ1_RECORD_ADDR(0), SOC_SMART_NP_IRQ2_RECORD_ADDR(0), SOC_SMART_NP_IRQ3_RECORD_ADDR(0), SOC_SMART_NP_SCP_RECORD1_ADDR(0), SOC_SMART_NP_OCP_RECORD1_ADDR(0), SOC_SMART_NP_OCP_RECORD2_ADDR(0), SOC_SMART_NP_OCP_RECORD3_ADDR(0), SOC_SMART_NP_OCP_RECORD4_ADDR(0), SOC_SMART_NP_OCP_RECORD5_ADDR(0), }; PMU_LOCAL BSP_U32 pmic_irq_mask_reg[PMIC_IRQ_REG_MASK_BUTT]={ SOC_SMART_IRQ1_MASK_ADDR(0), SOC_SMART_IRQ2_MASK_ADDR(0), SOC_SMART_IRQ3_MASK_ADDR(0), SOC_SMART_COUL_IRQ_MASK_ADDR(0), }; PMU_LOCAL PMUIRQ_RES_CTRL smart_irqres_ctrl = { PMU_REGISTER_DATA_BIT, {pmic_irqstat_regaddr,pmic_status_stat_reg,pmic_record_reg_addr,pmic_no_pwr_reg_addr,pmic_irq_mask_reg}, {PMIC_IRQ_REG_BUTT,PMIC_STATUS_REG_BUTT,PMIC_RECORD_REG_BUTT,PMIC_NO_PWR_REG_BUTT,PMIC_IRQ_REG_MASK_BUTT} }; static struct platform_device smart_irq_device = { .name = "smartStarIrq", .id = 0,