~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to include/linux/sigma.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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/firmware.h>
 
13
#include <linux/types.h>
 
14
 
 
15
struct i2c_client;
 
16
 
 
17
#define SIGMA_MAGIC "ADISIGM"
 
18
 
 
19
struct sigma_firmware {
 
20
        const struct firmware *fw;
 
21
        size_t pos;
 
22
};
 
23
 
 
24
struct sigma_firmware_header {
 
25
        unsigned char magic[7];
 
26
        u8 version;
 
27
        __le32 crc;
 
28
};
 
29
 
 
30
enum {
 
31
        SIGMA_ACTION_WRITEXBYTES = 0,
 
32
        SIGMA_ACTION_WRITESINGLE,
 
33
        SIGMA_ACTION_WRITESAFELOAD,
 
34
        SIGMA_ACTION_DELAY,
 
35
        SIGMA_ACTION_PLLWAIT,
 
36
        SIGMA_ACTION_NOOP,
 
37
        SIGMA_ACTION_END,
 
38
};
 
39
 
 
40
struct sigma_action {
 
41
        u8 instr;
 
42
        u8 len_hi;
 
43
        __le16 len;
 
44
        __be16 addr;
 
45
        unsigned char payload[];
 
46
};
 
47
 
 
48
static inline u32 sigma_action_len(struct sigma_action *sa)
 
49
{
 
50
        return (sa->len_hi << 16) | le16_to_cpu(sa->len);
 
51
}
 
52
 
 
53
extern int process_sigma_firmware(struct i2c_client *client, const char *name);
 
54
 
 
55
#endif