Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
};

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,