1
2
3
4
5
6
7
8
9
10
11 #include <linux/device.h>
12 #include <linux/mutex.h>
13 #include <linux/regmap.h>
14
15 #ifndef CIRRUS_LOCHNAGAR_H
16 #define CIRRUS_LOCHNAGAR_H
17
18 enum lochnagar_type {
19 LOCHNAGAR1,
20 LOCHNAGAR2,
21 };
22
23
24
25
26
27
28
29
30
31
32
33 struct lochnagar {
34 enum lochnagar_type type;
35 struct device *dev;
36 struct regmap *regmap;
37
38
39 struct mutex analogue_config_lock;
40 };
41
42
43 #define LOCHNAGAR_SOFTWARE_RESET 0x00
44 #define LOCHNAGAR_FIRMWARE_ID1 0x01
45 #define LOCHNAGAR_FIRMWARE_ID2 0x02
46
47
48 #define LOCHNAGAR_DEVICE_ID_MASK 0xFFFC
49 #define LOCHNAGAR_DEVICE_ID_SHIFT 2
50 #define LOCHNAGAR_REV_ID_MASK 0x0003
51 #define LOCHNAGAR_REV_ID_SHIFT 0
52
53 int lochnagar_update_config(struct lochnagar *lochnagar);
54
55 #endif