From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH v8 10/16] reset: Add a reset controller driver for the Lantiq XWAY based SoCs Date: Thu, 03 Aug 2017 10:33:42 +0200 Message-ID: <1501749222.23911.4.camel@pengutronix.de> References: <20170802225717.24408-1-hauke@hauke-m.de> <20170802225717.24408-11-hauke@hauke-m.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170802225717.24408-11-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Hauke Mehrtens Cc: ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org, john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org, linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, hauke.mehrtens-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: devicetree@vger.kernel.org Hi Hauke, On Thu, 2017-08-03 at 00:57 +0200, Hauke Mehrtens wrote: > From: Martin Blumenstingl > > The reset controllers (on xRX200 and newer SoCs have two of them) are > provided by the RCU module. This was initially implemented as a simple > reset controller. However, the RCU module provides more functionality > (ethernet GPHYs, USB PHY, etc.), which makes it a MFD device. > The old reset controller driver implementation from > arch/mips/lantiq/xway/reset.c did not honor this fact. > > For some devices the request and the status bits are different. > > Signed-off-by: Hauke Mehrtens > Cc: Philipp Zabel > Reviewed-by: Andy Shevchenko > --- > .../devicetree/bindings/reset/lantiq,reset.txt | 30 +++ > drivers/reset/Kconfig | 6 + > drivers/reset/Makefile | 1 + > drivers/reset/reset-lantiq.c | 224 +++++++++++++++++++++ > 4 files changed, 261 insertions(+) > create mode 100644 Documentation/devicetree/bindings/reset/lantiq,reset.txt > create mode 100644 drivers/reset/reset-lantiq.c > [...] > diff --git a/drivers/reset/reset-lantiq.c b/drivers/reset/reset-lantiq.c > new file mode 100644 > index 000000000000..b84c45e7e6b8 > --- /dev/null > +++ b/drivers/reset/reset-lantiq.c > @@ -0,0 +1,224 @@ [...] > +static int lantiq_rcu_reset_of_probe(struct platform_device *pdev, > + struct lantiq_rcu_reset_priv *priv) > +{ > + struct device *dev = &pdev->dev; > + struct resource *res; > + struct resource res_parent; > + int ret; > + > + priv->regmap = syscon_node_to_regmap(dev->of_node->parent); > + if (IS_ERR(priv->regmap)) { > + dev_err(&pdev->dev, "Failed to lookup RCU regmap\n"); > + return PTR_ERR(priv->regmap); > + } > + > + ret = of_address_to_resource(dev->of_node->parent, 0, &res_parent); > + if (ret) > + return ret; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) { > + dev_err(&pdev->dev, "Failed to get RCU reset offset\n"); > + return ret; This should return -EINVAL instead of 0. > + } > + > + if (res->start < res_parent.start) > + return -ENOENT; > + priv->reset_offset = res->start - res_parent.start; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + if (!res) { > + dev_err(&pdev->dev, "Failed to get RCU status offset\n"); > + return ret; Same here. With this fixed, Acked-by: Philipp Zabel regards Philipp -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html