blob: c47cd23e98277329474c4925062553851ea9cd1f [file] [log] [blame]
/*
* Load firmware files from Analog Devices SigmaStudio
*
* Copyright 2009-2011 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __SIGMA_FIRMWARE_H__
#define __SIGMA_FIRMWARE_H__
#include <linux/device.h>
#include <linux/regmap.h>
struct sigma_action {
u8 instr;
u8 len_hi;
__le16 len;
__be16 addr;
unsigned char payload[];
} __packed;
struct sigma_firmware {
const struct firmware *fw;
size_t pos;
void *control_data;
int (*write)(void *control_data, const struct sigma_action *sa,
size_t len);
};
int _process_sigma_firmware(struct device *dev,
struct sigma_firmware *ssfw, const char *name);
struct i2c_client;
extern int process_sigma_firmware(struct i2c_client *client, const char *name);
extern int process_sigma_firmware_regmap(struct device *dev,
struct regmap *regmap, const char *name);
#endif