]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - include/linux/mfd/da9150/core.h
Merge remote-tracking branch 'md/for-next'
[karo-tx-linux.git] / include / linux / mfd / da9150 / core.h
1 /*
2  * DA9150 MFD Driver - Core Data
3  *
4  * Copyright (c) 2014 Dialog Semiconductor
5  *
6  * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
7  *
8  * This program is free software; you can redistribute  it and/or modify it
9  * under  the terms of  the GNU General  Public License as published by the
10  * Free Software Foundation;  either version 2 of the  License, or (at your
11  * option) any later version.
12  */
13
14 #ifndef __DA9150_CORE_H
15 #define __DA9150_CORE_H
16
17 #include <linux/device.h>
18 #include <linux/interrupt.h>
19 #include <linux/regmap.h>
20
21 /* I2C address paging */
22 #define DA9150_REG_PAGE_SHIFT   8
23 #define DA9150_REG_PAGE_MASK    0xFF
24
25 /* IRQs */
26 #define DA9150_NUM_IRQ_REGS     4
27 #define DA9150_IRQ_VBUS         0
28 #define DA9150_IRQ_CHG          1
29 #define DA9150_IRQ_TCLASS       2
30 #define DA9150_IRQ_TJUNC        3
31 #define DA9150_IRQ_VFAULT       4
32 #define DA9150_IRQ_CONF         5
33 #define DA9150_IRQ_DAT          6
34 #define DA9150_IRQ_DTYPE        7
35 #define DA9150_IRQ_ID           8
36 #define DA9150_IRQ_ADP          9
37 #define DA9150_IRQ_SESS_END     10
38 #define DA9150_IRQ_SESS_VLD     11
39 #define DA9150_IRQ_FG           12
40 #define DA9150_IRQ_GP           13
41 #define DA9150_IRQ_TBAT         14
42 #define DA9150_IRQ_GPIOA        15
43 #define DA9150_IRQ_GPIOB        16
44 #define DA9150_IRQ_GPIOC        17
45 #define DA9150_IRQ_GPIOD        18
46 #define DA9150_IRQ_GPADC        19
47 #define DA9150_IRQ_WKUP         20
48
49 struct da9150_pdata {
50         int irq_base;
51 };
52
53 struct da9150 {
54         struct device *dev;
55         struct regmap *regmap;
56         struct regmap_irq_chip_data *regmap_irq_data;
57         int irq;
58         int irq_base;
59 };
60
61 /* Device I/O */
62 u8 da9150_reg_read(struct da9150 *da9150, u16 reg);
63 void da9150_reg_write(struct da9150 *da9150, u16 reg, u8 val);
64 void da9150_set_bits(struct da9150 *da9150, u16 reg, u8 mask, u8 val);
65
66 void da9150_bulk_read(struct da9150 *da9150, u16 reg, int count, u8 *buf);
67 void da9150_bulk_write(struct da9150 *da9150, u16 reg, int count, const u8 *buf);
68 #endif /* __DA9150_CORE_H */