77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| /*
 | |
|  * Copyright (c) 2022, The Linux Foundation. All rights reserved.
 | |
|  */
 | |
| 
 | |
| #ifndef __LPASS_MACRO_COMMON_H__
 | |
| #define __LPASS_MACRO_COMMON_H__
 | |
| 
 | |
| /* NPL clock is expected */
 | |
| #define LPASS_MACRO_FLAG_HAS_NPL_CLOCK		BIT(0)
 | |
| /* The soundwire block should be internally reset at probe */
 | |
| #define LPASS_MACRO_FLAG_RESET_SWR		BIT(1)
 | |
| 
 | |
| enum lpass_version {
 | |
| 	LPASS_VER_9_0_0,
 | |
| 	LPASS_VER_9_2_0,
 | |
| 	LPASS_VER_10_0_0,
 | |
| 	LPASS_VER_11_0_0,
 | |
| };
 | |
| 
 | |
| enum lpass_codec_version {
 | |
| 	LPASS_CODEC_VERSION_UNKNOWN,
 | |
| 	LPASS_CODEC_VERSION_1_0,
 | |
| 	LPASS_CODEC_VERSION_1_1,
 | |
| 	LPASS_CODEC_VERSION_1_2,
 | |
| 	LPASS_CODEC_VERSION_2_0,
 | |
| 	LPASS_CODEC_VERSION_2_1,
 | |
| 	LPASS_CODEC_VERSION_2_5,
 | |
| 	LPASS_CODEC_VERSION_2_6,
 | |
| 	LPASS_CODEC_VERSION_2_7,
 | |
| 	LPASS_CODEC_VERSION_2_8,
 | |
| };
 | |
| 
 | |
| struct lpass_macro {
 | |
| 	struct device *macro_pd;
 | |
| 	struct device *dcodec_pd;
 | |
| };
 | |
| 
 | |
| struct lpass_macro *lpass_macro_pds_init(struct device *dev);
 | |
| void lpass_macro_pds_exit(struct lpass_macro *pds);
 | |
| void lpass_macro_set_codec_version(enum lpass_codec_version version);
 | |
| enum lpass_codec_version lpass_macro_get_codec_version(void);
 | |
| 
 | |
| static inline void lpass_macro_pds_exit_action(void *pds)
 | |
| {
 | |
| 	lpass_macro_pds_exit(pds);
 | |
| }
 | |
| 
 | |
| static inline const char *lpass_macro_get_codec_version_string(int version)
 | |
| {
 | |
| 	switch (version) {
 | |
| 	case LPASS_CODEC_VERSION_1_0:
 | |
| 		return "v1.0";
 | |
| 	case LPASS_CODEC_VERSION_1_1:
 | |
| 		return "v1.1";
 | |
| 	case LPASS_CODEC_VERSION_1_2:
 | |
| 		return "v1.2";
 | |
| 	case LPASS_CODEC_VERSION_2_0:
 | |
| 		return "v2.0";
 | |
| 	case LPASS_CODEC_VERSION_2_1:
 | |
| 		return "v2.1";
 | |
| 	case LPASS_CODEC_VERSION_2_5:
 | |
| 		return "v2.5";
 | |
| 	case LPASS_CODEC_VERSION_2_6:
 | |
| 		return "v2.6";
 | |
| 	case LPASS_CODEC_VERSION_2_7:
 | |
| 		return "v2.7";
 | |
| 	case LPASS_CODEC_VERSION_2_8:
 | |
| 		return "v2.8";
 | |
| 	default:
 | |
| 		break;
 | |
| 	}
 | |
| 	return "NA";
 | |
| }
 | |
| 
 | |
| #endif /* __LPASS_MACRO_COMMON_H__ */
 |