2 * Load firmware files from Analog Devices SigmaStudio
4 * Copyright 2009-2011 Analog Devices Inc.
6 * Licensed under the GPL-2 or later.
9 #ifndef __SIGMA_FIRMWARE_H__
10 #define __SIGMA_FIRMWARE_H__
12 #include <linux/firmware.h>
13 #include <linux/types.h>
17 #define SIGMA_MAGIC "ADISIGM"
19 struct sigma_firmware
{
20 const struct firmware
*fw
;
24 struct sigma_firmware_header
{
25 unsigned char magic
[7];
31 SIGMA_ACTION_WRITEXBYTES
= 0,
32 SIGMA_ACTION_WRITESINGLE
,
33 SIGMA_ACTION_WRITESAFELOAD
,
45 unsigned char payload
[];
48 static inline u32
sigma_action_len(struct sigma_action
*sa
)
50 return (sa
->len_hi
<< 16) | sa
->len
;
53 static inline size_t sigma_action_size(struct sigma_action
*sa
, u32 payload_len
)
55 return sizeof(*sa
) + payload_len
+ (payload_len
% 2);
58 extern int process_sigma_firmware(struct i2c_client
*client
, const char *name
);