diff options
author | netchild <netchild@FreeBSD.org> | 2006-09-30 16:53:40 +0000 |
---|---|---|
committer | netchild <netchild@FreeBSD.org> | 2006-09-30 16:53:40 +0000 |
commit | cefdaf86ea45ac47cf66fce3708a523aa82d705b (patch) | |
tree | 192500081d9d238b405dc5e8d1da154e4c5fbf41 /sys/dev/sound/pci/spicds.h | |
parent | 1358d3f1ae9e1f9fc95d63f0f7cfb9d8339aff33 (diff) | |
download | FreeBSD-src-cefdaf86ea45ac47cf66fce3708a523aa82d705b.zip FreeBSD-src-cefdaf86ea45ac47cf66fce3708a523aa82d705b.tar.gz |
After repo copy from ak452x.[ch]: SPIcds is the I2S SPI audio codec code
used by the Envy* drivers.
Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
Diffstat (limited to 'sys/dev/sound/pci/spicds.h')
-rw-r--r-- | sys/dev/sound/pci/spicds.h | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/sys/dev/sound/pci/spicds.h b/sys/dev/sound/pci/spicds.h index 1df631f..c999b4c 100644 --- a/sys/dev/sound/pci/spicds.h +++ b/sys/dev/sound/pci/spicds.h @@ -1,4 +1,5 @@ /* + * Copyright (c) 2006 Konstantin Dimitrov <kosio.dimitrov@gmail.com> * Copyright (c) 2001 Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp> * All rights reserved. * @@ -27,8 +28,11 @@ */ /* supported CODECs */ -#define AK452X_TYPE_4524 0 -#define AK452X_TYPE_4528 1 +#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 /* AK4524/AK4528 control registers */ #define AK4524_POWER 0x00 @@ -76,16 +80,37 @@ #define AK4528_LOATT 0x04 #define AK4528_ROATT 0x05 -struct ak452x_info; +/* WM8770 control registers */ +#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 -typedef void (*ak452x_ctrl)(void *, unsigned int, unsigned int, unsigned int); +/* AK4358 control registers */ +#define AK4358_LO1ATT 0x04 +#define AK4358_RO1ATT 0x05 +#define AK4358_OATT_ENABLE 0x80 -struct ak452x_info *ak452x_create(device_t dev, void *devinfo, int num, ak452x_ctrl); -void ak452x_destroy(struct ak452x_info *codec); -void ak452x_settype(struct ak452x_info *codec, unsigned int type); -void ak452x_setcif(struct ak452x_info *codec, unsigned int cif); -void ak452x_setformat(struct ak452x_info *codec, unsigned int format); -void ak452x_setdvc(struct ak452x_info *codec, unsigned int dvc); -void ak452x_init(struct ak452x_info *codec); -void ak452x_reinit(struct ak452x_info *codec); -void ak452x_set(struct ak452x_info *codec, int dir, unsigned int left, unsigned int right); +/* AK4381 control registers */ +#define AK4381_LOATT 0x03 +#define AK4381_ROATT 0x04 + +struct spicds_info; + +typedef void (*spicds_ctrl)(void *, unsigned int, unsigned int, unsigned int); + +struct spicds_info *spicds_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); |