summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/aic3xxx_cfw.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/aic3xxx_cfw.h')
-rw-r--r--sound/soc/codecs/aic3xxx_cfw.h427
1 files changed, 0 insertions, 427 deletions
diff --git a/sound/soc/codecs/aic3xxx_cfw.h b/sound/soc/codecs/aic3xxx_cfw.h
deleted file mode 100644
index 12bc85575195..000000000000
--- a/sound/soc/codecs/aic3xxx_cfw.h
+++ /dev/null
@@ -1,427 +0,0 @@
-/**
- * \file Codec Firmware Declarations
- */
-
-#ifndef CFW_FIRMWARE_H_
-#define CFW_FIRMWARE_H_
-/** \defgroup bt Basic Types */
-/* @{ */
-#ifndef AIC3XXX_CFW_HOST_BLD
-#include <asm-generic/int-ll64.h>
-#else
-typedef unsigned char u8;
-typedef unsigned short int u16;
-typedef unsigned long int u32;
-#endif
-
-#define CFW_FW_MAGIC 0xC0D1F1ED
-
-/** defgroup pd Arbitrary Limitations */
-
-#ifndef CFW_MAX_ID
-#define CFW_MAX_ID (64) /* Max length of string identifies */
-#endif
-
-#ifndef CFW_MAX_DESC
-#define CFW_MAX_DESC (512) /* Max length of description */
-#endif
-/* <Max number of overlays per PFW */
-#ifndef CFW_MAX_NOVLY
-#define CFW_MAX_NOVLY (4)
-#endif
-
-#ifndef CFW_MAX_NCFG
-#define CFW_MAX_NCFG (16) /* Max number of configurations per PFW */
-#endif
-
-#ifndef CFW_MAX_TRANSITIONS
-#define CFW_MAX_TRANSITIONS (32) /* max number of pre-defined transition */
-#endif
-
-#ifndef CFW_MAX_NPFW
-#define CFW_MAX_NPFW (16) /* Max number fo process flows */
-#endif
-
-#ifndef CFW_MAX_MODES
-#define CFW_MAX_MODES (32) /* Max number of modes */
-#endif
-
-#ifndef CFW_MAX_ASI
-#define CFW_MAX_ASI (4) /* Max number ASIs in a single device */
-#endif
-
-
-#ifndef CFW_MAX_CTRL
-#define CFW_MAX_CTRL (16) /* Max number of control per pfw */
-#endif
-
-/** defgroup st Enums, Flags, Macros and Supporting Types */
-
-/**
- * Sample rate bitmask
- *
- */
-enum cfw_fs {
- CFW_FS_8KHZ = 0x0001u,
- CFW_FS_11KHZ = 0x0002u,
- CFW_FS_16KHZ = 0x0004u,
- CFW_FS_22KHZ = 0x0008u,
- CFW_FS_24KHZ = 0x0010u,
- CFW_FS_32KHZ = 0x0020u,
- CFW_FS_44KHZ = 0x0040u,
- CFW_FS_48KHZ = 0x0080u,
- CFW_FS_88KHZ = 0x0100u,
- CFW_FS_96KHZ = 0x0200u,
- CFW_FS_176KHZ = 0x0400u,
- CFW_FS_192KHZ = 0x0800u,
- CFW_FS_ANY = 0x8000u,
- CFW_FS_ALL = 0x0FFFu,
-};
-
-/**
- * Sample rate index
- *
- */
-enum cfw_fsi {
- CFW_FSI_8KHZ,
- CFW_FSI_11KHZ,
- CFW_FSI_16KHZ,
- CFW_FSI_22KHZ,
- CFW_FSI_24KHZ,
- CFW_FSI_32KHZ,
- CFW_FSI_44KHZ,
- CFW_FSI_48KHZ,
- CFW_FSI_88KHZ,
- CFW_FSI_96KHZ,
- CFW_FSI_176KHZ,
- CFW_FSI_192KHZ,
- CFW_FSI_ANY = 15,
-};
-
-/**
- * Device Family Identifier
- *
- */
-enum __attribute__ ((__packed__)) cfw_dfamily {
- CFW_DFM_TYPE_A,
- CFW_DFM_TYPE_B,
- CFW_DFM_TYPE_C
-};
-
-/**
- * Device Identifier
- *
- */
-enum __attribute__ ((__packed__)) cfw_device {
- CFW_DEV_DAC3120,
- CFW_DEV_DAC3100,
-
- CFW_DEV_AIC3120,
- CFW_DEV_AIC3100,
- CFW_DEV_AIC3110,
- CFW_DEV_AIC3111,
-
- CFW_DEV_AIC36,
-
- CFW_DEV_AIC3206,
- CFW_DEV_AIC3204,
- CFW_DEV_AIC3254,
- CFW_DEV_AIC3256,
- CFW_DEV_AIC3253,
-
- CFW_DEV_AIC3212,
- CFW_DEV_AIC3262,
- CFW_DEV_AIC3017,
- CFW_DEV_AIC3008,
-
-};
-
-/**
- * Transition Sequence Identifier
- *
- */
-enum cfw_transition_t {
- CFW_TRN_INIT,
- CFW_TRN_RESUME,
- CFW_TRN_NEUTRAL,
- CFW_TRN_A_MUTE,
- CFW_TRN_D_MUTE,
- CFW_TRN_AD_MUTE,
- CFW_TRN_A_UNMUTE,
- CFW_TRN_D_UNMUTE,
- CFW_TRN_AD_UNMUTE,
- CFW_TRN_SUSPEND,
- CFW_TRN_EXIT,
- CFW_TRN_N
-};
-
-static const char * const cfw_transition_id[] = {
- [CFW_TRN_INIT] "INIT",
- [CFW_TRN_RESUME] "RESUME",
- [CFW_TRN_NEUTRAL] "NEUTRAL",
- [CFW_TRN_A_MUTE] "A_MUTE",
- [CFW_TRN_D_MUTE] "D_MUTE",
- [CFW_TRN_AD_MUTE] "AD_MUTE",
- [CFW_TRN_A_UNMUTE] "A_UNMUTE",
- [CFW_TRN_D_UNMUTE] "D_UNMUTE",
- [CFW_TRN_AD_UNMUTE] "AD_UNMUTE",
- [CFW_TRN_SUSPEND] "SUSPEND",
- [CFW_TRN_EXIT] "EXIT",
-};
-
-/** defgroup ds Data Structures */
-
-/**
-* CFW Meta Command
-* These commands do not appear in the register
-* set of the device.
-* Mainly delay, wait and set_bits.
-*/
-enum __attribute__ ((__packed__)) cfw_meta_cmd {
- CFW_META_DELAY = 0x80,
- CFW_META_UPDTBITS,
- CFW_META_WAITBITS,
- CFW_META_LOCK,
-};
-
-/**
-* CFW Delay
-* Used for the meta command delay
-* Has one parameter of delay time in ms
-*/
-struct cfw_meta_delay {
- u16 delay;
- enum cfw_meta_cmd mcmd;
- u8 unused1;
-};
-
-/**
-* CFW set_bits or wait
-* Both these meta commands have same arguments
-* mcmd will be used to specify which command it is
-* has parameters of book, page, offset and mask
-*/
-struct cfw_meta_bitop {
- u16 unused1;
- enum cfw_meta_cmd mcmd;
- u8 mask;
-};
-
-/**
-* CFW meta register
-* Contains the data structures for the meta commands
-*/
-union cfw_meta_register {
- struct {
- u16 unused1;
- enum cfw_meta_cmd mcmd;
- u8 unused2;
- };
- struct cfw_meta_delay delay;
- struct cfw_meta_bitop bitop;
-};
-
-/**
- * CFW Register
- *
- * A single reg write
- *
- */
-union cfw_register {
- struct {
- u8 book;
- u8 page;
- u8 offset;
- u8 data;
- };
- u32 bpod;
- union cfw_meta_register meta;
-};
-
-/**
- * CFW Burst
- *
- * A single I2C/SPI burst write sequence
- *
- */
-struct cfw_burst {
- u32 length;
- union {
- union cfw_register reg;
- struct {
- u8 bpo[3];
- u8 data[1];
- };
- };
-};
-
-/**
- * CFW Command
- *
- * Can be a either a
- * -# single register write,
- * -# a burst write, or
- * -# meta-command
- *
- */
-union cfw_cmd {
- union cfw_register reg;
- struct cfw_burst *burst;
-};
-
-/**
- * CFW Block Type
- *
- * Block identifier
- *
- */
-enum __attribute__ ((__packed__)) cfw_block_t {
- CFW_BLOCK_SYSTEM_PRE,
- CFW_BLOCK_A_INST,
- CFW_BLOCK_A_A_COEF,
- CFW_BLOCK_A_B_COEF,
- CFW_BLOCK_A_F_COEF,
- CFW_BLOCK_D_INST,
- CFW_BLOCK_D_A1_COEF,
- CFW_BLOCK_D_B1_COEF,
- CFW_BLOCK_D_A2_COEF,
- CFW_BLOCK_D_B2_COEF,
- CFW_BLOCK_D_F_COEF,
- CFW_BLOCK_SYSTEM_POST,
- CFW_BLOCK_N,
- CFW_BLOCK_INVALID,
- CFW_BLOCK_BURSTS = 0x80
-};
-#define CFW_BLOCK_BURSTS(x) ((x)&CFW_BLOCK_BURSTS)
-#define CFW_BLOCK_TYPE(x) ((x)&(~CFW_BLOCK_BURSTS))
-#define CFW_BLOCK_D_A_COEF CFW_BLOCK_D_A1_COEF
-#define CFW_BLOCK_D_B_COEF CFW_BLOCK_D_B1_COEF
-
-/**
- * CFW Block
- *
- * A block of logically grouped sequences/commands/meta-commands
- *
- */
-struct cfw_block {
- enum cfw_block_t type;
- int ncmds;
- union cfw_cmd cmd[];
-};
-
-/**
- * CFW Image
- *
- * A downloadable image
- */
-struct cfw_image {
- char name[CFW_MAX_ID]; /* Name of the pfw/overlay/configuration */
- char desc[CFW_MAX_DESC]; /* User string */
- int mute_flags;
- struct cfw_block *block[CFW_BLOCK_N];
-};
-
-struct cfw_control {
- char name[CFW_MAX_ID]; /* Control identifier */
- char desc[CFW_MAX_DESC];/* User string */
- int mute_flags;
-
- int min; /* Min value of control (*100) */
- int max; /* Max value of control (*100) */
- int step; /* Control step size (*100) */
-
- int imax; /* Max index into controls array */
- int ireset; /* Reset control to defaults */
- int icur; /* Last value set */
- struct cfw_block **output; /* Array of sequences to send */
-};
-
-/**
- * Process flow
- *
- * Complete description of a process flow
- */
-struct cfw_pfw {
- char name[CFW_MAX_ID]; /* Name of the process flow */
- char desc[CFW_MAX_DESC]; /* User string */
- u32 version;
- u8 prb_a;
- u8 prb_d;
- int novly; /* Number of overlays (1 or more) */
- int ncfg; /* Number of configurations (0 or more) */
- int nctrl; /* Number of run-time controls */
- struct cfw_block *pll;
- struct cfw_image *base; /* Base sequence */
- /* Overlay and cfg */
- struct cfw_image *ovly_cfg[CFW_MAX_NOVLY][CFW_MAX_NCFG];
- /* Array of run-time controls */
- struct cfw_control *ctrl[CFW_MAX_CTRL];
-};
-
-/**
- * Process transition
- *
- * Sequence for specific state transisitions within the driver
- *
- */
-struct cfw_transition {
- char name[CFW_MAX_ID]; /* Name of the transition */
- char desc[CFW_MAX_DESC]; /* User string */
- struct cfw_block *block;
-};
-
-/**
- * Device audio mode
- *
- * Structure linking various operating modes to process flows,
- * configurations and sequences
- *
- */
-struct cfw_mode {
- char name[CFW_MAX_ID];
- char desc[CFW_MAX_DESC]; /* User string */
- u32 flags;
- u8 pfw;
- u8 ovly;
- u8 cfg;
- struct cfw_block *entry;
- struct cfw_block *exit;
-};
-
-struct cfw_asoc_toc_entry {
- char etext[CFW_MAX_ID];
- int mode;
- int cfg;
-};
-
-struct cfw_asoc_toc {
- int nentries;
- struct cfw_asoc_toc_entry entry[];
-};
-
-/**
- * CFW Project
- *
- * Top level structure describing the CFW project
- */
-struct cfw_project {
- u32 magic;
- u32 bmagic;
- u32 size;
- u32 cksum;
- u32 version;
- u32 tstamp;
- char name[CFW_MAX_ID]; /* Project name */
- char desc[CFW_MAX_DESC]; /* User string */
- enum cfw_dfamily dfamily;
- enum cfw_device device;
- u32 flags;
- struct cfw_transition *transition[CFW_MAX_TRANSITIONS];
- u16 npfw; /* Number of process flows */
- u16 nmode; /* Number of operating modes */
- struct cfw_pfw *pfw[CFW_MAX_NPFW]; /* Indices to PFW locations */
- struct cfw_mode *mode[CFW_MAX_MODES];
- struct cfw_asoc_toc *asoc_toc;
-};
-
-#endif /* CFW_FIRMWARE_H_ */