1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2022, The Linux Foundation. All rights reserved.
6 #ifndef __LPASS_MACRO_COMMON_H__
7 #define __LPASS_MACRO_COMMON_H__
9 /* NPL clock is expected */
10 #define LPASS_MACRO_FLAG_HAS_NPL_CLOCK BIT(0)
11 /* The soundwire block should be internally reset at probe */
12 #define LPASS_MACRO_FLAG_RESET_SWR BIT(1)
21 enum lpass_codec_version {
22 LPASS_CODEC_VERSION_UNKNOWN,
23 LPASS_CODEC_VERSION_1_0,
24 LPASS_CODEC_VERSION_1_1,
25 LPASS_CODEC_VERSION_1_2,
26 LPASS_CODEC_VERSION_2_0,
27 LPASS_CODEC_VERSION_2_1,
28 LPASS_CODEC_VERSION_2_5,
29 LPASS_CODEC_VERSION_2_6,
30 LPASS_CODEC_VERSION_2_7,
31 LPASS_CODEC_VERSION_2_8,
35 struct device *macro_pd;
36 struct device *dcodec_pd;
39 struct lpass_macro *lpass_macro_pds_init(struct device *dev);
40 void lpass_macro_pds_exit(struct lpass_macro *pds);
41 void lpass_macro_set_codec_version(enum lpass_codec_version version);
42 enum lpass_codec_version lpass_macro_get_codec_version(void);
44 static inline void lpass_macro_pds_exit_action(void *pds)
46 lpass_macro_pds_exit(pds);
49 static inline const char *lpass_macro_get_codec_version_string(int version)
52 case LPASS_CODEC_VERSION_2_0:
54 case LPASS_CODEC_VERSION_2_1:
56 case LPASS_CODEC_VERSION_2_5:
58 case LPASS_CODEC_VERSION_2_6:
60 case LPASS_CODEC_VERSION_2_7:
62 case LPASS_CODEC_VERSION_2_8:
70 #endif /* __LPASS_MACRO_COMMON_H__ */