From mboxrd@z Thu Jan 1 00:00:00 1970 From: Prashant Gaikwad Subject: Re: [PATCH v5 05/10] clk: tegra: Add flags to tegra_clk_periph() Date: Mon, 4 Feb 2013 12:03:42 +0530 Message-ID: <510F5646.80907@nvidia.com> References: <1359713962-16822-1-git-send-email-pdeschrijver@nvidia.com> <1359713962-16822-6-git-send-email-pdeschrijver@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1359713962-16822-6-git-send-email-pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Peter De Schrijver Cc: Russell King , "linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Rob Herring , Joseph Lo , "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Mike Turquette , "devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org" , "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" List-Id: devicetree@vger.kernel.org On Friday 01 February 2013 03:48 PM, Peter De Schrijver wrote: > We will need some tegra peripheral clocks with the CLK_IGNORE_UNUSED flag, > most notably mselect, which is a bridge between AXI and most peripherals. > > Signed-off-by: Peter De Schrijver > --- Looks good to me. Reviewed-by: Prashant Gaikwad > drivers/clk/tegra/clk-periph.c | 11 ++++++----- > drivers/clk/tegra/clk-tegra20.c | 2 +- > drivers/clk/tegra/clk-tegra30.c | 2 +- > drivers/clk/tegra/clk.h | 9 ++++++--- > 4 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/drivers/clk/tegra/clk-periph.c b/drivers/clk/tegra/clk-periph.c > index 788486e..067abb3 100644 > --- a/drivers/clk/tegra/clk-periph.c > +++ b/drivers/clk/tegra/clk-periph.c > @@ -170,14 +170,15 @@ const struct clk_ops tegra_clk_periph_nodiv_ops = { > static struct clk *_tegra_clk_register_periph(const char *name, > const char **parent_names, int num_parents, > struct tegra_clk_periph *periph, > - void __iomem *clk_base, u32 offset, bool div) > + void __iomem *clk_base, u32 offset, bool div, > + unsigned long flags) > { > struct clk *clk; > struct clk_init_data init; > > init.name = name; > init.ops = div ? &tegra_clk_periph_ops : &tegra_clk_periph_nodiv_ops; > - init.flags = div ? 0 : CLK_SET_RATE_PARENT; > + init.flags = flags; > init.parent_names = parent_names; > init.num_parents = num_parents; > > @@ -202,10 +203,10 @@ static struct clk *_tegra_clk_register_periph(const char *name, > struct clk *tegra_clk_register_periph(const char *name, > const char **parent_names, int num_parents, > struct tegra_clk_periph *periph, void __iomem *clk_base, > - u32 offset) > + u32 offset, unsigned long flags) > { > return _tegra_clk_register_periph(name, parent_names, num_parents, > - periph, clk_base, offset, true); > + periph, clk_base, offset, true, flags); > } > > struct clk *tegra_clk_register_periph_nodiv(const char *name, > @@ -214,5 +215,5 @@ struct clk *tegra_clk_register_periph_nodiv(const char *name, > u32 offset) > { > return _tegra_clk_register_periph(name, parent_names, num_parents, > - periph, clk_base, offset, false); > + periph, clk_base, offset, false, CLK_SET_RATE_PARENT); > } > diff --git a/drivers/clk/tegra/clk-tegra20.c b/drivers/clk/tegra/clk-tegra20.c > index 54c6777..870349e 100644 > --- a/drivers/clk/tegra/clk-tegra20.c > +++ b/drivers/clk/tegra/clk-tegra20.c > @@ -1048,7 +1048,7 @@ static void __init tegra20_periph_clk_init(void) > data = &tegra_periph_clk_list[i]; > clk = tegra_clk_register_periph(data->name, data->parent_names, > data->num_parents, &data->periph, > - clk_base, data->offset); > + clk_base, data->offset, data->flags); > clk_register_clkdev(clk, data->con_id, data->dev_id); > clks[data->clk_id] = clk; > } > diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c > index 078f9b8..126747b 100644 > --- a/drivers/clk/tegra/clk-tegra30.c > +++ b/drivers/clk/tegra/clk-tegra30.c > @@ -1665,7 +1665,7 @@ static void __init tegra30_periph_clk_init(void) > data = &tegra_periph_clk_list[i]; > clk = tegra_clk_register_periph(data->name, data->parent_names, > data->num_parents, &data->periph, > - clk_base, data->offset); > + clk_base, data->offset, data->flags); > clk_register_clkdev(clk, data->con_id, data->dev_id); > clks[data->clk_id] = clk; > } > diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h > index 4d0f556..79f5e2a 100644 > --- a/drivers/clk/tegra/clk.h > +++ b/drivers/clk/tegra/clk.h > @@ -411,7 +411,7 @@ extern const struct clk_ops tegra_clk_periph_ops; > struct clk *tegra_clk_register_periph(const char *name, > const char **parent_names, int num_parents, > struct tegra_clk_periph *periph, void __iomem *clk_base, > - u32 offset); > + u32 offset, unsigned long flags); > struct clk *tegra_clk_register_periph_nodiv(const char *name, > const char **parent_names, int num_parents, > struct tegra_clk_periph *periph, void __iomem *clk_base, > @@ -454,12 +454,14 @@ struct tegra_periph_init_data { > u32 offset; > const char *con_id; > const char *dev_id; > + unsigned long flags; > }; > > #define TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parent_names, _offset,\ > _mux_shift, _mux_mask, _mux_flags, _div_shift, \ > _div_width, _div_frac_width, _div_flags, _regs, \ > - _clk_num, _enb_refcnt, _gate_flags, _clk_id, _table) \ > + _clk_num, _enb_refcnt, _gate_flags, _clk_id, _table,\ > + _flags) \ > { \ > .name = _name, \ > .clk_id = _clk_id, \ > @@ -474,6 +476,7 @@ struct tegra_periph_init_data { > .offset = _offset, \ > .con_id = _con_id, \ > .dev_id = _dev_id, \ > + .flags = _flags \ > } > > #define TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parent_names, _offset,\ > @@ -484,7 +487,7 @@ struct tegra_periph_init_data { > _mux_shift, BIT(_mux_width) - 1, _mux_flags, \ > _div_shift, _div_width, _div_frac_width, _div_flags, \ > _regs, _clk_num, _enb_refcnt, _gate_flags, _clk_id,\ > - NULL) > + NULL, 0) > > /** > * struct clk_super_mux - super clock >