43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * Copyright (C) 2017 Socionext Inc.
 | |
|  *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
 | |
|  */
 | |
| 
 | |
| #ifndef __UNIPHIER_SOC_INFO_H__
 | |
| #define __UNIPHIER_SOC_INFO_H__
 | |
| 
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/stddef.h>
 | |
| 
 | |
| #define UNIPHIER_LD4_ID		0x26
 | |
| #define UNIPHIER_PRO4_ID	0x28
 | |
| #define UNIPHIER_SLD8_ID	0x29
 | |
| #define UNIPHIER_PRO5_ID	0x2a
 | |
| #define UNIPHIER_PXS2_ID	0x2e
 | |
| #define UNIPHIER_LD6B_ID	0x2f
 | |
| #define UNIPHIER_LD11_ID	0x31
 | |
| #define UNIPHIER_LD20_ID	0x32
 | |
| #define UNIPHIER_PXS3_ID	0x35
 | |
| 
 | |
| unsigned int uniphier_get_soc_id(void);
 | |
| unsigned int uniphier_get_soc_model(void);
 | |
| unsigned int uniphier_get_soc_revision(void);
 | |
| 
 | |
| #define UNIPHIER_DEFINE_SOCDATA_FUNC(__func_name, __table)	\
 | |
| static typeof(&__table[0]) __func_name(void)			\
 | |
| {								\
 | |
| 	unsigned int soc_id;					\
 | |
| 	int i;							\
 | |
| 								\
 | |
| 	soc_id = uniphier_get_soc_id();				\
 | |
| 	for (i = 0; i < ARRAY_SIZE(__table); i++) {		\
 | |
| 		if (__table[i].soc_id == soc_id)		\
 | |
| 			return &__table[i];			\
 | |
| 	}							\
 | |
| 								\
 | |
| 	return NULL;						\
 | |
| }
 | |
| 
 | |
| #endif /* __UNIPHIER_SOC_INFO_H__ */
 |