projects/linux·blob master · refs

38 lines · 1.1 KiB

1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * The MIPI SDCA specification is available for public downloads at
4 * https://www.mipi.org/mipi-sdca-v1-0-download
5 *
6 * Copyright (C) 2025 Cirrus Logic, Inc. and
7 * Cirrus Logic International Semiconductor Ltd.
8 */
9
10#ifndef __SDCA_JACK_H__
11#define __SDCA_JACK_H__
12
13struct sdca_interrupt;
14struct snd_kcontrol;
15struct snd_soc_jack;
16
17/**
18 * struct jack_state - Jack state structure to keep data between interrupts
19 * @kctl: Pointer to the ALSA control attached to this jack
20 * @jack: Pointer to the ASoC jack struct for this jack
21 * @mask: Possible reported jack status bits for this jack
22 */
23struct jack_state {
24 struct snd_kcontrol *kctl;
25 struct snd_soc_jack *jack;
26
27 unsigned int mask;
28};
29
30int sdca_jack_alloc_state(struct sdca_interrupt *interrupt);
31int sdca_jack_init_state(struct sdca_interrupt *interrupt);
32void sdca_jack_free_state(struct sdca_interrupt *interrupt);
33
34int sdca_jack_process(struct sdca_interrupt *interrupt);
35int sdca_jack_set_jack(struct sdca_interrupt_info *info, struct snd_soc_jack *jack);
36int sdca_jack_report(struct sdca_interrupt *interrupt);
37
38#endif // __SDCA_JACK_H__