Commit | Line | Data |
---|---|---|
e359dc24 MF |
1 | /* |
2 | * Load firmware files from Analog Devices SigmaStudio | |
3 | * | |
4 | * Copyright 2009-2011 Analog Devices Inc. | |
5 | * | |
6 | * Licensed under the GPL-2 or later. | |
7 | */ | |
8 | ||
9 | #ifndef __SIGMA_FIRMWARE_H__ | |
10 | #define __SIGMA_FIRMWARE_H__ | |
11 | ||
38fd54ee LPC |
12 | #include <linux/device.h> |
13 | #include <linux/regmap.h> | |
14 | ||
6b10998d LPC |
15 | struct sigma_action { |
16 | u8 instr; | |
17 | u8 len_hi; | |
18 | __le16 len; | |
19 | __be16 addr; | |
20 | unsigned char payload[]; | |
21 | } __packed; | |
22 | ||
23 | struct sigma_firmware { | |
24 | const struct firmware *fw; | |
25 | size_t pos; | |
26 | ||
27 | void *control_data; | |
28 | int (*write)(void *control_data, const struct sigma_action *sa, | |
29 | size_t len); | |
30 | }; | |
31 | ||
32 | int _process_sigma_firmware(struct device *dev, | |
33 | struct sigma_firmware *ssfw, const char *name); | |
34 | ||
e359dc24 MF |
35 | struct i2c_client; |
36 | ||
e359dc24 | 37 | extern int process_sigma_firmware(struct i2c_client *client, const char *name); |
38fd54ee LPC |
38 | extern int process_sigma_firmware_regmap(struct device *dev, |
39 | struct regmap *regmap, const char *name); | |
e359dc24 MF |
40 | |
41 | #endif |