From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com ([62.4.15.54]:38009 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965479AbeFZOj5 (ORCPT ); Tue, 26 Jun 2018 10:39:57 -0400 From: Gregory CLEMENT To: Miquel Raynal Cc: Michael Turquette , Stephen Boyd , Thomas Petazzoni , Nadav Haklai , Antoine Tenart , Maxime Chevallier , linux-clk@vger.kernel.org Subject: Re: [PATCH v2 1/2] clk: mvebu: armada-37xx-periph: save the IP base address in the driver data References: <20180626092926.26361-1-miquel.raynal@bootlin.com> Date: Tue, 26 Jun 2018 16:39:44 +0200 In-Reply-To: <20180626092926.26361-1-miquel.raynal@bootlin.com> (Miquel Raynal's message of "Tue, 26 Jun 2018 11:29:25 +0200") Message-ID: <87fu19a9xr.fsf@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-clk-owner@vger.kernel.org List-ID: Hi Miquel, On mar., juin 26 2018, Miquel Raynal wrote: > Prepare the introduction of suspend/resume hooks by having an easy way > to access all the registers in one go just from a device: add the IP > base address in the driver data. > > Signed-off-by: Miquel Raynal Reviewed-by: Gregory CLEMENT Thanks, Gregory > --- > > Changes since v1: > ================= > * None > > drivers/clk/mvebu/armada-37xx-periph.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c > index 6860bd5a37c5..a9e3dcc50a7b 100644 > --- a/drivers/clk/mvebu/armada-37xx-periph.c > +++ b/drivers/clk/mvebu/armada-37xx-periph.c > @@ -58,6 +58,7 @@ > struct clk_periph_driver_data { > struct clk_hw_onecell_data *hw_data; > spinlock_t lock; > + void __iomem *reg; > }; > > struct clk_double_div { > @@ -649,7 +650,6 @@ static int armada_3700_periph_clock_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > int num_periph = 0, i, ret; > struct resource *res; > - void __iomem *reg; > > data = of_device_get_match_data(dev); > if (!data) > @@ -658,11 +658,6 @@ static int armada_3700_periph_clock_probe(struct platform_device *pdev) > while (data[num_periph].name) > num_periph++; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - reg = devm_ioremap_resource(dev, res); > - if (IS_ERR(reg)) > - return PTR_ERR(reg); > - > driver_data = devm_kzalloc(dev, sizeof(*driver_data), GFP_KERNEL); > if (!driver_data) > return -ENOMEM; > @@ -675,12 +670,16 @@ static int armada_3700_periph_clock_probe(struct platform_device *pdev) > return -ENOMEM; > driver_data->hw_data->num = num_periph; > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + driver_data->reg = devm_ioremap_resource(dev, res); > + if (IS_ERR(driver_data->reg)) > + return PTR_ERR(driver_data->reg); > + > spin_lock_init(&driver_data->lock); > > for (i = 0; i < num_periph; i++) { > struct clk_hw **hw = &driver_data->hw_data->hws[i]; > - > - if (armada_3700_add_composite_clk(&data[i], reg, > + if (armada_3700_add_composite_clk(&data[i], driver_data->reg, > &driver_data->lock, dev, hw)) > dev_err(dev, "Can't register periph clock %s\n", > data[i].name); > -- > 2.14.1 > -- Gregory Clement, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering http://bootlin.com