FreeBSD kernel sound device code
spicds.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SPICDS_TYPE_AK4524   0
 
#define SPICDS_TYPE_AK4528   1
 
#define SPICDS_TYPE_WM8770   2
 
#define SPICDS_TYPE_AK4358   3
 
#define SPICDS_TYPE_AK4381   4
 
#define SPICDS_TYPE_AK4396   5
 
#define AK4524_POWER   0x00
 
#define AK4528_POWER   0x00
 
#define AK452X_POWER_PWDA   0x01
 
#define AK452X_POWER_PWAD   0x02
 
#define AK452X_POWER_PWVR   0x04
 
#define AK4524_RESET   0x01
 
#define AK4528_RESET   0x01
 
#define AK452X_RESET_RSDA   0x01
 
#define AK452X_RESET_RSAD   0x02
 
#define AK4524_FORMAT   0x02
 
#define AK4528_FORMAT   0x02
 
#define AK452X_FORMAT_1X   0x00
 
#define AK452X_FORMAT_2X   0x01
 
#define AK452X_FORMAT_4X1   0x02
 
#define AK452X_FORMAT_4X2   0x03
 
#define AK452X_FORMAT_256FSN   0x00
 
#define AK452X_FORMAT_512FSN   0x04
 
#define AK452X_FORMAT_1024FSN   0x08
 
#define AK452X_FORMAT_384FSN   0x10
 
#define AK452X_FORMAT_768FSN   0x14
 
#define AK452X_FORMAT_OM24IL16   0x00
 
#define AK452X_FORMAT_OM24IL20   0x20
 
#define AK452X_FORMAT_OM24IM24   0x40
 
#define AK452X_FORMAT_I2S   0x60
 
#define AK452X_FORMAT_OM24IL24   0x80
 
#define AK4524_DVC   0x03
 
#define AK452X_DVC_DEM441   0x00
 
#define AK452X_DVC_DEMOFF   0x01
 
#define AK452X_DVC_DEM48   0x02
 
#define AK452X_DVC_DEM32   0x03
 
#define AK452X_DVC_ZTM256   0x00
 
#define AK452X_DVC_ZTM512   0x04
 
#define AK452X_DVC_ZTM1024   0x08
 
#define AK452X_DVC_ZTM2048   0x0c
 
#define AK452X_DVC_ZCE   0x10
 
#define AK452X_DVC_HPFL   0x04
 
#define AK452X_DVC_HPFR   0x08
 
#define AK452X_DVC_SMUTE   0x80
 
#define AK4524_LIPGA   0x04
 
#define AK4524_RIPGA   0x05
 
#define AK4524_LOATT   0x06
 
#define AK4524_ROATT   0x07
 
#define AK4528_LOATT   0x04
 
#define AK4528_ROATT   0x05
 
#define WM8770_AOATT_L1   0x00
 
#define WM8770_AOATT_R1   0x01
 
#define WM8770_AOATT_L2   0x02
 
#define WM8770_AOATT_R2   0x03
 
#define WM8770_AOATT_L3   0x04
 
#define WM8770_AOATT_R3   0x05
 
#define WM8770_AOATT_L4   0x06
 
#define WM8770_AOATT_R4   0x07
 
#define WM8770_AOATT_MAST   0x08
 
#define WM8770_AOATT_UPDATE   0x100
 
#define AK4358_LO1ATT   0x04
 
#define AK4358_RO1ATT   0x05
 
#define AK4358_OATT_ENABLE   0x80
 
#define AK4381_LOATT   0x03
 
#define AK4381_ROATT   0x04
 
#define AK4396_LOATT   0x03
 
#define AK4396_ROATT   0x04
 

Typedefs

typedef void(* spicds_ctrl) (void *, unsigned int, unsigned int, unsigned int)
 

Functions

struct spicds_infospicds_create (device_t dev, void *devinfo, int num, spicds_ctrl)
 
void spicds_destroy (struct spicds_info *codec)
 
void spicds_settype (struct spicds_info *codec, unsigned int type)
 
void spicds_setcif (struct spicds_info *codec, unsigned int cif)
 
void spicds_setformat (struct spicds_info *codec, unsigned int format)
 
void spicds_setdvc (struct spicds_info *codec, unsigned int dvc)
 
void spicds_init (struct spicds_info *codec)
 
void spicds_reinit (struct spicds_info *codec)
 
void spicds_set (struct spicds_info *codec, int dir, unsigned int left, unsigned int right)
 

Macro Definition Documentation

◆ AK4358_LO1ATT

#define AK4358_LO1ATT   0x04

Definition at line 99 of file spicds.h.

◆ AK4358_OATT_ENABLE

#define AK4358_OATT_ENABLE   0x80

Definition at line 101 of file spicds.h.

◆ AK4358_RO1ATT

#define AK4358_RO1ATT   0x05

Definition at line 100 of file spicds.h.

◆ AK4381_LOATT

#define AK4381_LOATT   0x03

Definition at line 104 of file spicds.h.

◆ AK4381_ROATT

#define AK4381_ROATT   0x04

Definition at line 105 of file spicds.h.

◆ AK4396_LOATT

#define AK4396_LOATT   0x03

Definition at line 108 of file spicds.h.

◆ AK4396_ROATT

#define AK4396_ROATT   0x04

Definition at line 109 of file spicds.h.

◆ AK4524_DVC

#define AK4524_DVC   0x03

Definition at line 66 of file spicds.h.

◆ AK4524_FORMAT

#define AK4524_FORMAT   0x02

Definition at line 50 of file spicds.h.

◆ AK4524_LIPGA

#define AK4524_LIPGA   0x04

Definition at line 79 of file spicds.h.

◆ AK4524_LOATT

#define AK4524_LOATT   0x06

Definition at line 81 of file spicds.h.

◆ AK4524_POWER

#define AK4524_POWER   0x00

Definition at line 41 of file spicds.h.

◆ AK4524_RESET

#define AK4524_RESET   0x01

Definition at line 46 of file spicds.h.

◆ AK4524_RIPGA

#define AK4524_RIPGA   0x05

Definition at line 80 of file spicds.h.

◆ AK4524_ROATT

#define AK4524_ROATT   0x07

Definition at line 82 of file spicds.h.

◆ AK4528_FORMAT

#define AK4528_FORMAT   0x02

Definition at line 51 of file spicds.h.

◆ AK4528_LOATT

#define AK4528_LOATT   0x04

Definition at line 83 of file spicds.h.

◆ AK4528_POWER

#define AK4528_POWER   0x00

Definition at line 42 of file spicds.h.

◆ AK4528_RESET

#define AK4528_RESET   0x01

Definition at line 47 of file spicds.h.

◆ AK4528_ROATT

#define AK4528_ROATT   0x05

Definition at line 84 of file spicds.h.

◆ AK452X_DVC_DEM32

#define AK452X_DVC_DEM32   0x03

Definition at line 70 of file spicds.h.

◆ AK452X_DVC_DEM441

#define AK452X_DVC_DEM441   0x00

Definition at line 67 of file spicds.h.

◆ AK452X_DVC_DEM48

#define AK452X_DVC_DEM48   0x02

Definition at line 69 of file spicds.h.

◆ AK452X_DVC_DEMOFF

#define AK452X_DVC_DEMOFF   0x01

Definition at line 68 of file spicds.h.

◆ AK452X_DVC_HPFL

#define AK452X_DVC_HPFL   0x04

Definition at line 76 of file spicds.h.

◆ AK452X_DVC_HPFR

#define AK452X_DVC_HPFR   0x08

Definition at line 77 of file spicds.h.

◆ AK452X_DVC_SMUTE

#define AK452X_DVC_SMUTE   0x80

Definition at line 78 of file spicds.h.

◆ AK452X_DVC_ZCE

#define AK452X_DVC_ZCE   0x10

Definition at line 75 of file spicds.h.

◆ AK452X_DVC_ZTM1024

#define AK452X_DVC_ZTM1024   0x08

Definition at line 73 of file spicds.h.

◆ AK452X_DVC_ZTM2048

#define AK452X_DVC_ZTM2048   0x0c

Definition at line 74 of file spicds.h.

◆ AK452X_DVC_ZTM256

#define AK452X_DVC_ZTM256   0x00

Definition at line 71 of file spicds.h.

◆ AK452X_DVC_ZTM512

#define AK452X_DVC_ZTM512   0x04

Definition at line 72 of file spicds.h.

◆ AK452X_FORMAT_1024FSN

#define AK452X_FORMAT_1024FSN   0x08

Definition at line 58 of file spicds.h.

◆ AK452X_FORMAT_1X

#define AK452X_FORMAT_1X   0x00

Definition at line 52 of file spicds.h.

◆ AK452X_FORMAT_256FSN

#define AK452X_FORMAT_256FSN   0x00

Definition at line 56 of file spicds.h.

◆ AK452X_FORMAT_2X

#define AK452X_FORMAT_2X   0x01

Definition at line 53 of file spicds.h.

◆ AK452X_FORMAT_384FSN

#define AK452X_FORMAT_384FSN   0x10

Definition at line 59 of file spicds.h.

◆ AK452X_FORMAT_4X1

#define AK452X_FORMAT_4X1   0x02

Definition at line 54 of file spicds.h.

◆ AK452X_FORMAT_4X2

#define AK452X_FORMAT_4X2   0x03

Definition at line 55 of file spicds.h.

◆ AK452X_FORMAT_512FSN

#define AK452X_FORMAT_512FSN   0x04

Definition at line 57 of file spicds.h.

◆ AK452X_FORMAT_768FSN

#define AK452X_FORMAT_768FSN   0x14

Definition at line 60 of file spicds.h.

◆ AK452X_FORMAT_I2S

#define AK452X_FORMAT_I2S   0x60

Definition at line 64 of file spicds.h.

◆ AK452X_FORMAT_OM24IL16

#define AK452X_FORMAT_OM24IL16   0x00

Definition at line 61 of file spicds.h.

◆ AK452X_FORMAT_OM24IL20

#define AK452X_FORMAT_OM24IL20   0x20

Definition at line 62 of file spicds.h.

◆ AK452X_FORMAT_OM24IL24

#define AK452X_FORMAT_OM24IL24   0x80

Definition at line 65 of file spicds.h.

◆ AK452X_FORMAT_OM24IM24

#define AK452X_FORMAT_OM24IM24   0x40

Definition at line 63 of file spicds.h.

◆ AK452X_POWER_PWAD

#define AK452X_POWER_PWAD   0x02

Definition at line 44 of file spicds.h.

◆ AK452X_POWER_PWDA

#define AK452X_POWER_PWDA   0x01

Definition at line 43 of file spicds.h.

◆ AK452X_POWER_PWVR

#define AK452X_POWER_PWVR   0x04

Definition at line 45 of file spicds.h.

◆ AK452X_RESET_RSAD

#define AK452X_RESET_RSAD   0x02

Definition at line 49 of file spicds.h.

◆ AK452X_RESET_RSDA

#define AK452X_RESET_RSDA   0x01

Definition at line 48 of file spicds.h.

◆ SPICDS_TYPE_AK4358

#define SPICDS_TYPE_AK4358   3

Definition at line 36 of file spicds.h.

◆ SPICDS_TYPE_AK4381

#define SPICDS_TYPE_AK4381   4

Definition at line 37 of file spicds.h.

◆ SPICDS_TYPE_AK4396

#define SPICDS_TYPE_AK4396   5

Definition at line 38 of file spicds.h.

◆ SPICDS_TYPE_AK4524

#define SPICDS_TYPE_AK4524   0

Definition at line 33 of file spicds.h.

◆ SPICDS_TYPE_AK4528

#define SPICDS_TYPE_AK4528   1

Definition at line 34 of file spicds.h.

◆ SPICDS_TYPE_WM8770

#define SPICDS_TYPE_WM8770   2

Definition at line 35 of file spicds.h.

◆ WM8770_AOATT_L1

#define WM8770_AOATT_L1   0x00

Definition at line 87 of file spicds.h.

◆ WM8770_AOATT_L2

#define WM8770_AOATT_L2   0x02

Definition at line 89 of file spicds.h.

◆ WM8770_AOATT_L3

#define WM8770_AOATT_L3   0x04

Definition at line 91 of file spicds.h.

◆ WM8770_AOATT_L4

#define WM8770_AOATT_L4   0x06

Definition at line 93 of file spicds.h.

◆ WM8770_AOATT_MAST

#define WM8770_AOATT_MAST   0x08

Definition at line 95 of file spicds.h.

◆ WM8770_AOATT_R1

#define WM8770_AOATT_R1   0x01

Definition at line 88 of file spicds.h.

◆ WM8770_AOATT_R2

#define WM8770_AOATT_R2   0x03

Definition at line 90 of file spicds.h.

◆ WM8770_AOATT_R3

#define WM8770_AOATT_R3   0x05

Definition at line 92 of file spicds.h.

◆ WM8770_AOATT_R4

#define WM8770_AOATT_R4   0x07

Definition at line 94 of file spicds.h.

◆ WM8770_AOATT_UPDATE

#define WM8770_AOATT_UPDATE   0x100

Definition at line 96 of file spicds.h.

Typedef Documentation

◆ spicds_ctrl

typedef void(* spicds_ctrl) (void *, unsigned int, unsigned int, unsigned int)

Definition at line 113 of file spicds.h.

Function Documentation

◆ spicds_create()

struct spicds_info * spicds_create ( device_t  dev,
void *  devinfo,
int  num,
spicds_ctrl  ctrl 
)

◆ spicds_destroy()

void spicds_destroy ( struct spicds_info codec)

Definition at line 168 of file spicds.c.

References free, spicds_info::lock, and snd_mtxfree().

Referenced by envy24_delta_ak4524_destroy(), and envy24ht_spi_destroy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ spicds_init()

◆ spicds_reinit()

void spicds_reinit ( struct spicds_info codec)

Definition at line 253 of file spicds.c.

References AK4524_DVC, AK4524_FORMAT, AK4524_RESET, AK452X_RESET_RSAD, AK452X_RESET_RSDA, spicds_info::dvc, spicds_info::format, spicds_info::lock, snd_mtxlock, snd_mtxunlock, SPICDS_TYPE_WM8770, spicds_wrcd(), and spicds_info::type.

Referenced by envy24_delta_ak4524_reinit(), and envy24ht_spi_reinit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ spicds_set()

◆ spicds_setcif()

void spicds_setcif ( struct spicds_info codec,
unsigned int  cif 
)

Definition at line 183 of file spicds.c.

References spicds_info::cif, spicds_info::lock, snd_mtxlock, and snd_mtxunlock.

Referenced by envy24_delta_ak4524_init(), and envy24ht_spi_init().

Here is the caller graph for this function:

◆ spicds_setdvc()

void spicds_setdvc ( struct spicds_info codec,
unsigned int  dvc 
)

Definition at line 199 of file spicds.c.

References spicds_info::dvc, spicds_info::lock, snd_mtxlock, and snd_mtxunlock.

Referenced by envy24_delta_ak4524_init(), and envy24ht_spi_init().

Here is the caller graph for this function:

◆ spicds_setformat()

void spicds_setformat ( struct spicds_info codec,
unsigned int  format 
)

Definition at line 191 of file spicds.c.

References format, spicds_info::format, spicds_info::lock, snd_mtxlock, and snd_mtxunlock.

Referenced by envy24_delta_ak4524_init(), and envy24ht_spi_init().

Here is the caller graph for this function:

◆ spicds_settype()

void spicds_settype ( struct spicds_info codec,
unsigned int  type 
)

Definition at line 175 of file spicds.c.

References spicds_info::lock, snd_mtxlock, snd_mtxunlock, spicds_info::type, and type.

Referenced by envy24_delta_ak4524_init(), and envy24ht_spi_init().

Here is the caller graph for this function: