Loading drivers/mfd/syscon.c +18 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,24 @@ struct regmap *syscon_regmap_lookup_by_phandle_args(struct device_node *np, } EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle_args); /* * 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. */ struct regmap *syscon_regmap_lookup_by_phandle_optional(struct device_node *np, const char *property) { struct regmap *regmap; regmap = syscon_regmap_lookup_by_phandle(np, property); if (IS_ERR(regmap) && PTR_ERR(regmap) == -ENODEV) return NULL; return regmap; } EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle_optional); static int syscon_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; Loading include/linux/mfd/syscon.h +11 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,9 @@ extern struct regmap *syscon_regmap_lookup_by_phandle_args( 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) { Loading Loading @@ -59,6 +62,14 @@ static inline struct regmap *syscon_regmap_lookup_by_phandle_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__ */ Loading
drivers/mfd/syscon.c +18 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,24 @@ struct regmap *syscon_regmap_lookup_by_phandle_args(struct device_node *np, } EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle_args); /* * 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. */ struct regmap *syscon_regmap_lookup_by_phandle_optional(struct device_node *np, const char *property) { struct regmap *regmap; regmap = syscon_regmap_lookup_by_phandle(np, property); if (IS_ERR(regmap) && PTR_ERR(regmap) == -ENODEV) return NULL; return regmap; } EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle_optional); static int syscon_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; Loading
include/linux/mfd/syscon.h +11 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,9 @@ extern struct regmap *syscon_regmap_lookup_by_phandle_args( 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) { Loading Loading @@ -59,6 +62,14 @@ static inline struct regmap *syscon_regmap_lookup_by_phandle_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__ */