forked from mirrors/linux
		
	 86b9d170da
			
		
	
	
		86b9d170da
		
	
	
	
	
		
			
			This adds syscon_regmap_lookup_by_phandle_optional() function to get an optional regmap. It behaves the same as syscon_regmap_lookup_by_phandle() except where there is no regmap phandle. In this case, instead of returning -ENODEV, the function returns NULL. This makes error checking simpler when the regmap phandle is optional. Suggested-by: Nicolas Boichat <drinkcat@chromium.org> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Lee Jones <lee.jones@linaro.org>
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /*
 | |
|  * System Control Driver
 | |
|  *
 | |
|  * Copyright (C) 2012 Freescale Semiconductor, Inc.
 | |
|  * Copyright (C) 2012 Linaro Ltd.
 | |
|  *
 | |
|  * Author: Dong Aisheng <dong.aisheng@linaro.org>
 | |
|  */
 | |
| 
 | |
| #ifndef __LINUX_MFD_SYSCON_H__
 | |
| #define __LINUX_MFD_SYSCON_H__
 | |
| 
 | |
| #include <linux/err.h>
 | |
| #include <linux/errno.h>
 | |
| 
 | |
| struct device_node;
 | |
| 
 | |
| #ifdef CONFIG_MFD_SYSCON
 | |
| extern struct regmap *device_node_to_regmap(struct device_node *np);
 | |
| extern struct regmap *syscon_node_to_regmap(struct device_node *np);
 | |
| extern struct regmap *syscon_regmap_lookup_by_compatible(const char *s);
 | |
| extern struct regmap *syscon_regmap_lookup_by_phandle(
 | |
| 					struct device_node *np,
 | |
| 					const char *property);
 | |
| extern struct regmap *syscon_regmap_lookup_by_phandle_args(
 | |
| 					struct device_node *np,
 | |
| 					const char *property,
 | |
| 					int arg_count,
 | |
| 					unsigned int *out_args);
 | |
| extern struct regmap *syscon_regmap_lookup_by_phandle_optional(
 | |
| 					struct device_node *np,
 | |
| 					const char *property);
 | |
| #else
 | |
| static inline struct regmap *device_node_to_regmap(struct device_node *np)
 | |
| {
 | |
| 	return ERR_PTR(-ENOTSUPP);
 | |
| }
 | |
| 
 | |
| static inline struct regmap *syscon_node_to_regmap(struct device_node *np)
 | |
| {
 | |
| 	return ERR_PTR(-ENOTSUPP);
 | |
| }
 | |
| 
 | |
| static inline struct regmap *syscon_regmap_lookup_by_compatible(const char *s)
 | |
| {
 | |
| 	return ERR_PTR(-ENOTSUPP);
 | |
| }
 | |
| 
 | |
| static inline struct regmap *syscon_regmap_lookup_by_phandle(
 | |
| 					struct device_node *np,
 | |
| 					const char *property)
 | |
| {
 | |
| 	return ERR_PTR(-ENOTSUPP);
 | |
| }
 | |
| 
 | |
| static inline struct regmap *syscon_regmap_lookup_by_phandle_args(
 | |
| 					struct device_node *np,
 | |
| 					const char *property,
 | |
| 					int arg_count,
 | |
| 					unsigned int *out_args)
 | |
| {
 | |
| 	return ERR_PTR(-ENOTSUPP);
 | |
| }
 | |
| 
 | |
| static inline struct regmap *syscon_regmap_lookup_by_phandle_optional(
 | |
| 					struct device_node *np,
 | |
| 					const char *property)
 | |
| {
 | |
| 	return NULL;
 | |
| }
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif /* __LINUX_MFD_SYSCON_H__ */
 |