diff options
Diffstat (limited to 'include/sound/jack.h')
| -rw-r--r-- | include/sound/jack.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/sound/jack.h b/include/sound/jack.h index 6b013c6f6a0..58916573db5 100644 --- a/include/sound/jack.h +++ b/include/sound/jack.h @@ -42,14 +42,29 @@ enum snd_jack_types { SND_JACK_MECHANICAL = 0x0008, /* If detected separately */ SND_JACK_VIDEOOUT = 0x0010, SND_JACK_AVOUT = SND_JACK_LINEOUT | SND_JACK_VIDEOOUT, + SND_JACK_LINEIN = 0x0020, + + /* Kept separate from switches to facilitate implementation */ + SND_JACK_BTN_0 = 0x4000, + SND_JACK_BTN_1 = 0x2000, + SND_JACK_BTN_2 = 0x1000, + SND_JACK_BTN_3 = 0x0800, + SND_JACK_BTN_4 = 0x0400, + SND_JACK_BTN_5 = 0x0200, }; +/* Keep in sync with definitions above */ +#define SND_JACK_SWITCH_TYPES 6 + struct snd_jack { struct input_dev *input_dev; int registered; int type; const char *id; char name[100]; + unsigned int key[6]; /* Keep in sync with definitions above */ + void *private_data; + void (*private_free)(struct snd_jack *); }; #ifdef CONFIG_SND_JACK @@ -57,6 +72,8 @@ struct snd_jack { int snd_jack_new(struct snd_card *card, const char *id, int type, struct snd_jack **jack); void snd_jack_set_parent(struct snd_jack *jack, struct device *parent); +int snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type, + int keytype); void snd_jack_report(struct snd_jack *jack, int status); |
