diff options
Diffstat (limited to 'drivers/mtd/hyperbus')
| -rw-r--r-- | drivers/mtd/hyperbus/hbmc-am654.c | 12 | ||||
| -rw-r--r-- | drivers/mtd/hyperbus/hyperbus-core.c | 15 | 
2 files changed, 15 insertions, 12 deletions
| diff --git a/drivers/mtd/hyperbus/hbmc-am654.c b/drivers/mtd/hyperbus/hbmc-am654.c index 08d543b124cd..f350a0809f88 100644 --- a/drivers/mtd/hyperbus/hbmc-am654.c +++ b/drivers/mtd/hyperbus/hbmc-am654.c @@ -11,6 +11,7 @@  #include <linux/mtd/mtd.h>  #include <linux/mux/consumer.h>  #include <linux/of.h> +#include <linux/of_address.h>  #include <linux/platform_device.h>  #include <linux/pm_runtime.h>  #include <linux/types.h> @@ -57,8 +58,10 @@ static const struct hyperbus_ops am654_hbmc_ops = {  static int am654_hbmc_probe(struct platform_device *pdev)  { +	struct device_node *np = pdev->dev.of_node;  	struct device *dev = &pdev->dev;  	struct am654_hbmc_priv *priv; +	struct resource res;  	int ret;  	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); @@ -67,6 +70,10 @@ static int am654_hbmc_probe(struct platform_device *pdev)  	platform_set_drvdata(pdev, priv); +	ret = of_address_to_resource(np, 0, &res); +	if (ret) +		return ret; +  	if (of_property_read_bool(dev->of_node, "mux-controls")) {  		struct mux_control *control = devm_mux_control_get(dev, NULL); @@ -88,6 +95,11 @@ static int am654_hbmc_probe(struct platform_device *pdev)  		goto disable_pm;  	} +	priv->hbdev.map.size = resource_size(&res); +	priv->hbdev.map.virt = devm_ioremap_resource(dev, &res); +	if (IS_ERR(priv->hbdev.map.virt)) +		return PTR_ERR(priv->hbdev.map.virt); +  	priv->ctlr.dev = dev;  	priv->ctlr.ops = &am654_hbmc_ops;  	priv->hbdev.ctlr = &priv->ctlr; diff --git a/drivers/mtd/hyperbus/hyperbus-core.c b/drivers/mtd/hyperbus/hyperbus-core.c index 6af9ea34117d..32685e8dd278 100644 --- a/drivers/mtd/hyperbus/hyperbus-core.c +++ b/drivers/mtd/hyperbus/hyperbus-core.c @@ -10,7 +10,6 @@  #include <linux/mtd/map.h>  #include <linux/mtd/mtd.h>  #include <linux/of.h> -#include <linux/of_address.h>  #include <linux/types.h>  static struct hyperbus_device *map_to_hbdev(struct map_info *map) @@ -62,7 +61,6 @@ int hyperbus_register_device(struct hyperbus_device *hbdev)  	struct hyperbus_ctlr *ctlr;  	struct device_node *np;  	struct map_info *map; -	struct resource res;  	struct device *dev;  	int ret; @@ -73,22 +71,15 @@ int hyperbus_register_device(struct hyperbus_device *hbdev)  	np = hbdev->np;  	ctlr = hbdev->ctlr; -	if (!of_device_is_compatible(np, "cypress,hyperflash")) +	if (!of_device_is_compatible(np, "cypress,hyperflash")) { +		dev_err(ctlr->dev, "\"cypress,hyperflash\" compatible missing\n");  		return -ENODEV; +	}  	hbdev->memtype = HYPERFLASH; -	ret = of_address_to_resource(np, 0, &res); -	if (ret) -		return ret; -  	dev = ctlr->dev;  	map = &hbdev->map; -	map->size = resource_size(&res); -	map->virt = devm_ioremap_resource(dev, &res); -	if (IS_ERR(map->virt)) -		return PTR_ERR(map->virt); -  	map->name = dev_name(dev);  	map->bankwidth = 2;  	map->device_node = np; |