Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (c) 2014 MediaTek Inc.
0004  * Author: Flora Fu, MediaTek
0005  */
0006 
0007 #ifndef __MFD_MT6397_CORE_H__
0008 #define __MFD_MT6397_CORE_H__
0009 
0010 #include <linux/mutex.h>
0011 #include <linux/notifier.h>
0012 
0013 enum chip_id {
0014     MT6323_CHIP_ID = 0x23,
0015     MT6331_CHIP_ID = 0x20,
0016     MT6332_CHIP_ID = 0x20,
0017     MT6357_CHIP_ID = 0x57,
0018     MT6358_CHIP_ID = 0x58,
0019     MT6359_CHIP_ID = 0x59,
0020     MT6366_CHIP_ID = 0x66,
0021     MT6391_CHIP_ID = 0x91,
0022     MT6397_CHIP_ID = 0x97,
0023 };
0024 
0025 enum mt6397_irq_numbers {
0026     MT6397_IRQ_SPKL_AB = 0,
0027     MT6397_IRQ_SPKR_AB,
0028     MT6397_IRQ_SPKL,
0029     MT6397_IRQ_SPKR,
0030     MT6397_IRQ_BAT_L,
0031     MT6397_IRQ_BAT_H,
0032     MT6397_IRQ_FG_BAT_L,
0033     MT6397_IRQ_FG_BAT_H,
0034     MT6397_IRQ_WATCHDOG,
0035     MT6397_IRQ_PWRKEY,
0036     MT6397_IRQ_THR_L,
0037     MT6397_IRQ_THR_H,
0038     MT6397_IRQ_VBATON_UNDET,
0039     MT6397_IRQ_BVALID_DET,
0040     MT6397_IRQ_CHRDET,
0041     MT6397_IRQ_OV,
0042     MT6397_IRQ_LDO,
0043     MT6397_IRQ_HOMEKEY,
0044     MT6397_IRQ_ACCDET,
0045     MT6397_IRQ_AUDIO,
0046     MT6397_IRQ_RTC,
0047     MT6397_IRQ_PWRKEY_RSTB,
0048     MT6397_IRQ_HDMI_SIFM,
0049     MT6397_IRQ_HDMI_CEC,
0050     MT6397_IRQ_VCA15,
0051     MT6397_IRQ_VSRMCA15,
0052     MT6397_IRQ_VCORE,
0053     MT6397_IRQ_VGPU,
0054     MT6397_IRQ_VIO18,
0055     MT6397_IRQ_VPCA7,
0056     MT6397_IRQ_VSRMCA7,
0057     MT6397_IRQ_VDRM,
0058     MT6397_IRQ_NR,
0059 };
0060 
0061 struct mt6397_chip {
0062     struct device *dev;
0063     struct regmap *regmap;
0064     struct notifier_block pm_nb;
0065     int irq;
0066     struct irq_domain *irq_domain;
0067     struct mutex irqlock;
0068     u16 wake_mask[2];
0069     u16 irq_masks_cur[2];
0070     u16 irq_masks_cache[2];
0071     u16 int_con[2];
0072     u16 int_status[2];
0073     u16 chip_id;
0074     void *irq_data;
0075 };
0076 
0077 int mt6358_irq_init(struct mt6397_chip *chip);
0078 int mt6397_irq_init(struct mt6397_chip *chip);
0079 
0080 #endif /* __MFD_MT6397_CORE_H__ */