hc
2024-03-22 619f0f87159c5dbd2755b1b0a0eb35784be84e7a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef RK_HEADSET_H
#define RK_HEADSET_H
 
#define HEADSET_IN_HIGH 0x00000001
#define HEADSET_IN_LOW  0x00000000
 
#define HOOK_DOWN_HIGH 0x00000001
#define HOOK_DOWN_LOW  0x00000000
 
struct rk_headset_pdata {
   /* heaset about */
   unsigned int headset_gpio;
   unsigned int spk_ctl_gpio;
   /* Headphones into the state level */
   unsigned int headset_insert_type;
   /* hook about */
   unsigned int hook_gpio;
   /* Hook key down status */
   unsigned int hook_down_type;
#ifdef CONFIG_MODEM_MIC_SWITCH
   /* mic about */
   unsigned int mic_switch_gpio;
   unsigned int hp_mic_io_value;
   unsigned int main_mic_io_value;
#endif
   struct iio_channel *chan;
   int headset_wakeup;
};
 
#define HOOK_KEY_CODE KEY_MEDIA
 
int rk_headset_probe(struct platform_device *pdev,
            struct rk_headset_pdata *pdata);
int rk_headset_adc_probe(struct platform_device *pdev,
            struct rk_headset_pdata *pdata);
int rk_headset_adc_suspend(struct platform_device *pdev, pm_message_t state);
int rk_headset_adc_resume(struct platform_device *pdev);
#endif