xref: /openbmc/linux/sound/soc/codecs/sigmadsp.h (revision d2999e1b)
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 
12 #include <linux/device.h>
13 #include <linux/regmap.h>
14 
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 
35 struct i2c_client;
36 
37 extern int process_sigma_firmware(struct i2c_client *client, const char *name);
38 extern int process_sigma_firmware_regmap(struct device *dev,
39 		struct regmap *regmap, const char *name);
40 
41 #endif
42