1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. |
4 | */ |
5 | |
6 | #ifndef _DP_AUDIO_H_ |
7 | #define _DP_AUDIO_H_ |
8 | |
9 | #include <linux/platform_device.h> |
10 | |
11 | #include "dp_panel.h" |
12 | #include "dp_catalog.h" |
13 | #include <sound/hdmi-codec.h> |
14 | |
15 | /** |
16 | * struct dp_audio |
17 | * @lane_count: number of lanes configured in current session |
18 | * @bw_code: link rate's bandwidth code for current session |
19 | */ |
20 | struct dp_audio { |
21 | u32 lane_count; |
22 | u32 bw_code; |
23 | }; |
24 | |
25 | /** |
26 | * dp_audio_get() |
27 | * |
28 | * Creates and instance of dp audio. |
29 | * |
30 | * @pdev: caller's platform device instance. |
31 | * @panel: an instance of dp_panel module. |
32 | * @catalog: an instance of dp_catalog module. |
33 | * |
34 | * Returns the error code in case of failure, otherwize |
35 | * an instance of newly created dp_module. |
36 | */ |
37 | struct dp_audio *dp_audio_get(struct platform_device *pdev, |
38 | struct dp_panel *panel, |
39 | struct dp_catalog *catalog); |
40 | |
41 | /** |
42 | * dp_register_audio_driver() |
43 | * |
44 | * Registers DP device with hdmi_codec interface. |
45 | * |
46 | * @dev: DP device instance. |
47 | * @dp_audio: an instance of dp_audio module. |
48 | * |
49 | * |
50 | * Returns the error code in case of failure, otherwise |
51 | * zero on success. |
52 | */ |
53 | int dp_register_audio_driver(struct device *dev, |
54 | struct dp_audio *dp_audio); |
55 | |
56 | void dp_unregister_audio_driver(struct device *dev, struct dp_audio *dp_audio); |
57 | |
58 | /** |
59 | * dp_audio_put() |
60 | * |
61 | * Cleans the dp_audio instance. |
62 | * |
63 | * @dp_audio: an instance of dp_audio. |
64 | */ |
65 | void dp_audio_put(struct dp_audio *dp_audio); |
66 | |
67 | int dp_audio_hw_params(struct device *dev, |
68 | void *data, |
69 | struct hdmi_codec_daifmt *daifmt, |
70 | struct hdmi_codec_params *params); |
71 | |
72 | #endif /* _DP_AUDIO_H_ */ |
73 | |
74 | |
75 | |