diff options
Diffstat (limited to 'drivers/mfd/syscon.c')
| -rw-r--r-- | drivers/mfd/syscon.c | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index 71841f9181b..ca15878ce5c 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -18,6 +18,7 @@  #include <linux/of.h>  #include <linux/of_address.h>  #include <linux/of_platform.h> +#include <linux/platform_data/syscon.h>  #include <linux/platform_device.h>  #include <linux/regmap.h>  #include <linux/mfd/syscon.h> @@ -69,13 +70,6 @@ EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_compatible);  static int syscon_match_pdevname(struct device *dev, void *data)  { -	struct platform_device *pdev = to_platform_device(dev); -	const struct platform_device_id *id = platform_get_device_id(pdev); - -	if (id) -		if (!strcmp(id->name, (const char *)data)) -			return 1; -  	return !strcmp(dev_name(dev), (const char *)data);  } @@ -101,7 +95,11 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct device_node *np,  	struct device_node *syscon_np;  	struct regmap *regmap; -	syscon_np = of_parse_phandle(np, property, 0); +	if (property) +		syscon_np = of_parse_phandle(np, property, 0); +	else +		syscon_np = np; +  	if (!syscon_np)  		return ERR_PTR(-ENODEV); @@ -126,6 +124,7 @@ static struct regmap_config syscon_regmap_config = {  static int syscon_probe(struct platform_device *pdev)  {  	struct device *dev = &pdev->dev; +	struct syscon_platform_data *pdata = dev_get_platdata(dev);  	struct syscon *syscon;  	struct resource *res;  	void __iomem *base; @@ -143,6 +142,8 @@ static int syscon_probe(struct platform_device *pdev)  		return -ENOMEM;  	syscon_regmap_config.max_register = res->end - res->start - 3; +	if (pdata) +		syscon_regmap_config.name = pdata->label;  	syscon->regmap = devm_regmap_init_mmio(dev, base,  					&syscon_regmap_config);  	if (IS_ERR(syscon->regmap)) { @@ -152,7 +153,7 @@ static int syscon_probe(struct platform_device *pdev)  	platform_set_drvdata(pdev, syscon); -	dev_info(dev, "regmap %pR registered\n", res); +	dev_dbg(dev, "regmap %pR registered\n", res);  	return 0;  }  | 
