0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <linux/device.h>
0012 #include <linux/mutex.h>
0013 #include <linux/regmap.h>
0014
0015 #ifndef CIRRUS_LOCHNAGAR_H
0016 #define CIRRUS_LOCHNAGAR_H
0017
0018 enum lochnagar_type {
0019 LOCHNAGAR1,
0020 LOCHNAGAR2,
0021 };
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 struct lochnagar {
0034 enum lochnagar_type type;
0035 struct device *dev;
0036 struct regmap *regmap;
0037
0038
0039 struct mutex analogue_config_lock;
0040 };
0041
0042
0043 #define LOCHNAGAR_SOFTWARE_RESET 0x00
0044 #define LOCHNAGAR_FIRMWARE_ID1 0x01
0045 #define LOCHNAGAR_FIRMWARE_ID2 0x02
0046
0047
0048 #define LOCHNAGAR_DEVICE_ID_MASK 0xFFFC
0049 #define LOCHNAGAR_DEVICE_ID_SHIFT 2
0050 #define LOCHNAGAR_REV_ID_MASK 0x0003
0051 #define LOCHNAGAR_REV_ID_SHIFT 0
0052
0053 int lochnagar_update_config(struct lochnagar *lochnagar);
0054
0055 #endif