From: "Heiko Stübner" <heiko@sntech.de>
To: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>,
mturquette@linaro.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org,
Sylwester Nawrocki <sylvester.nawrocki@gmail.com>,
t.figa@samsung.com
Subject: Re: [PATCH 4/4] clk: samsung: add infrastructure to add separate aliases
Date: Tue, 12 Mar 2013 11:04:37 +0100 [thread overview]
Message-ID: <201303121104.38251.heiko@sntech.de> (raw)
In-Reply-To: <CAJuYYwQ+-NhP+t-WEUhZxCN3AQFUzLSqt9aFWu5K0uwL_jO20A@mail.gmail.com>
Am Dienstag, 12. März 2013, 10:57:30 schrieb Thomas Abraham:
> On 12 March 2013 05:15, Heiko Stübner <heiko@sntech.de> wrote:
> > The current code adds aliases, if necessary, directly when adding the
> > clock, limiting the number of possible aliases to one.
> >
> > Some platforms need more than one alias, like the hsmmc pclocks on
> > s3c2416 which need a "hsmmc" and "mmc_busclk.0" alias for the s3c-sdhci
> > driver.
> >
> > Therefore add the possibility to separately add clock aliases for
> > previously created clocks.
> >
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> > change since the discussion: removed the list->alias check
> >
> > drivers/clk/samsung/clk.c | 33 +++++++++++++++++++++++++++++++++
> > drivers/clk/samsung/clk.h | 21 +++++++++++++++++++++
> > 2 files changed, 54 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
> > index 7c943f8..20ec566 100644
> > --- a/drivers/clk/samsung/clk.c
> > +++ b/drivers/clk/samsung/clk.c
> > @@ -94,6 +94,39 @@ void samsung_clk_add_lookup(struct clk *clk, unsigned
> > int id)
> >
> > clk_table[id] = clk;
> >
> > }
> >
> > +/* register a list of aliases */
> > +void __init samsung_clk_register_alias(struct samsung_clock_alias *list,
> > + unsigned int nr_clk)
> > +{
> > + struct clk *clk;
> > + unsigned int idx, ret;
> > +
> > + if (!clk_table) {
> > + pr_err("%s: clock table missing\n", __func__);
> > + return;
> > + }
> > +
> > + for (idx = 0; idx < nr_clk; idx++, list++) {
> > + if (!list->id) {
> > + pr_err("%s: clock id missing for index %d\n",
> > __func__, + idx);
> > + continue;
> > + }
> > +
> > + clk = clk_table[list->id];
> > + if (!clk) {
> > + pr_err("%s: failed to find clock %d\n", __func__,
> > + list->id);
> > + continue;
> > + }
> > +
> > + ret = clk_register_clkdev(clk, list->alias,
> > list->dev_name); + if (ret)
> > + pr_err("%s: failed to register lookup %s\n",
> > + __func__, list->alias);
> > + }
> > +}
> > +
> >
> > /* register a list of fixed clocks */
> > void __init samsung_clk_register_fixed_rate(
> >
> > struct samsung_fixed_rate_clock *list, unsigned int
> > nr_clk)
> >
> > diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
> > index 26a752b..6bacd6f 100644
> > --- a/drivers/clk/samsung/clk.h
> > +++ b/drivers/clk/samsung/clk.h
> > @@ -23,6 +23,25 @@
> >
> > #include <mach/map.h>
> >
> > /**
> >
> > + * struct samsung_clock_alias: information about mux clock
> > + * @id: platform specific id of the clock.
> > + * @dev_name: name of the device to which this clock belongs.
> > + * @alias: optional clock alias name to be assigned to this clock.
> > + */
> > +struct samsung_clock_alias {
> > + unsigned int id;
> > + const char *dev_name;
> > + const char *alias;
> > +};
> > +
> > +#define ALIAS(_id, dname, a) \
> > + { \
> > + .id = _id, \
> > + .dev_name = dname, \
> > + .alias = a, \
> > + }
> > +
> > +/**
> >
> > * struct samsung_fixed_rate_clock: information about fixed-rate clock
> > * @id: platform specific id of the clock.
> > * @name: name of this fixed-rate clock.
> >
> > @@ -251,6 +270,8 @@ extern void __init samsung_clk_of_register_fixed_ext(
> >
> > extern void samsung_clk_add_lookup(struct clk *clk, unsigned int id);
> >
> > +extern void samsung_clk_register_alias(struct samsung_clock_alias *list,
> > + unsigned int nr_clk);
> >
> > extern void __init samsung_clk_register_fixed_rate(
> >
> > struct samsung_fixed_rate_clock *clk_list, unsigned int
> > nr_clk);
> >
> > extern void __init samsung_clk_register_fixed_factor(
> >
> > --
> > 1.7.2.3
>
> This change looks fine but as discussed on 3/4 patch of this series,
> allocating clk_table for non-dt platforms would not be very helpful.
But how would we look up the previously registered clk otherwise?
Using clk_table for this lookup seemed like the best way to easily access
these clocks.
Thanks
Heiko
WARNING: multiple messages have this Message-ID (diff)
From: heiko@sntech.de (Heiko Stübner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] clk: samsung: add infrastructure to add separate aliases
Date: Tue, 12 Mar 2013 11:04:37 +0100 [thread overview]
Message-ID: <201303121104.38251.heiko@sntech.de> (raw)
In-Reply-To: <CAJuYYwQ+-NhP+t-WEUhZxCN3AQFUzLSqt9aFWu5K0uwL_jO20A@mail.gmail.com>
Am Dienstag, 12. M?rz 2013, 10:57:30 schrieb Thomas Abraham:
> On 12 March 2013 05:15, Heiko St?bner <heiko@sntech.de> wrote:
> > The current code adds aliases, if necessary, directly when adding the
> > clock, limiting the number of possible aliases to one.
> >
> > Some platforms need more than one alias, like the hsmmc pclocks on
> > s3c2416 which need a "hsmmc" and "mmc_busclk.0" alias for the s3c-sdhci
> > driver.
> >
> > Therefore add the possibility to separately add clock aliases for
> > previously created clocks.
> >
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> > change since the discussion: removed the list->alias check
> >
> > drivers/clk/samsung/clk.c | 33 +++++++++++++++++++++++++++++++++
> > drivers/clk/samsung/clk.h | 21 +++++++++++++++++++++
> > 2 files changed, 54 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
> > index 7c943f8..20ec566 100644
> > --- a/drivers/clk/samsung/clk.c
> > +++ b/drivers/clk/samsung/clk.c
> > @@ -94,6 +94,39 @@ void samsung_clk_add_lookup(struct clk *clk, unsigned
> > int id)
> >
> > clk_table[id] = clk;
> >
> > }
> >
> > +/* register a list of aliases */
> > +void __init samsung_clk_register_alias(struct samsung_clock_alias *list,
> > + unsigned int nr_clk)
> > +{
> > + struct clk *clk;
> > + unsigned int idx, ret;
> > +
> > + if (!clk_table) {
> > + pr_err("%s: clock table missing\n", __func__);
> > + return;
> > + }
> > +
> > + for (idx = 0; idx < nr_clk; idx++, list++) {
> > + if (!list->id) {
> > + pr_err("%s: clock id missing for index %d\n",
> > __func__, + idx);
> > + continue;
> > + }
> > +
> > + clk = clk_table[list->id];
> > + if (!clk) {
> > + pr_err("%s: failed to find clock %d\n", __func__,
> > + list->id);
> > + continue;
> > + }
> > +
> > + ret = clk_register_clkdev(clk, list->alias,
> > list->dev_name); + if (ret)
> > + pr_err("%s: failed to register lookup %s\n",
> > + __func__, list->alias);
> > + }
> > +}
> > +
> >
> > /* register a list of fixed clocks */
> > void __init samsung_clk_register_fixed_rate(
> >
> > struct samsung_fixed_rate_clock *list, unsigned int
> > nr_clk)
> >
> > diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
> > index 26a752b..6bacd6f 100644
> > --- a/drivers/clk/samsung/clk.h
> > +++ b/drivers/clk/samsung/clk.h
> > @@ -23,6 +23,25 @@
> >
> > #include <mach/map.h>
> >
> > /**
> >
> > + * struct samsung_clock_alias: information about mux clock
> > + * @id: platform specific id of the clock.
> > + * @dev_name: name of the device to which this clock belongs.
> > + * @alias: optional clock alias name to be assigned to this clock.
> > + */
> > +struct samsung_clock_alias {
> > + unsigned int id;
> > + const char *dev_name;
> > + const char *alias;
> > +};
> > +
> > +#define ALIAS(_id, dname, a) \
> > + { \
> > + .id = _id, \
> > + .dev_name = dname, \
> > + .alias = a, \
> > + }
> > +
> > +/**
> >
> > * struct samsung_fixed_rate_clock: information about fixed-rate clock
> > * @id: platform specific id of the clock.
> > * @name: name of this fixed-rate clock.
> >
> > @@ -251,6 +270,8 @@ extern void __init samsung_clk_of_register_fixed_ext(
> >
> > extern void samsung_clk_add_lookup(struct clk *clk, unsigned int id);
> >
> > +extern void samsung_clk_register_alias(struct samsung_clock_alias *list,
> > + unsigned int nr_clk);
> >
> > extern void __init samsung_clk_register_fixed_rate(
> >
> > struct samsung_fixed_rate_clock *clk_list, unsigned int
> > nr_clk);
> >
> > extern void __init samsung_clk_register_fixed_factor(
> >
> > --
> > 1.7.2.3
>
> This change looks fine but as discussed on 3/4 patch of this series,
> allocating clk_table for non-dt platforms would not be very helpful.
But how would we look up the previously registered clk otherwise?
Using clk_table for this lookup seemed like the best way to easily access
these clocks.
Thanks
Heiko
next prev parent reply other threads:[~2013-03-12 10:04 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-11 23:42 [PATCH 0/4] clk: samsung: small fixes and enhancements Heiko Stübner
2013-03-11 23:42 ` Heiko Stübner
2013-03-11 23:43 ` [PATCH 1/4] clk: samsung: register clk_div_tables for divider clocks Heiko Stübner
2013-03-11 23:43 ` Heiko Stübner
2013-03-12 8:50 ` Thomas Abraham
2013-03-12 8:50 ` Thomas Abraham
2013-03-11 23:44 ` [PATCH 2/4] clk: samsung: remove np check in clock init Heiko Stübner
2013-03-11 23:44 ` Heiko Stübner
2013-03-12 8:53 ` Thomas Abraham
2013-03-12 8:53 ` Thomas Abraham
2013-03-12 9:02 ` Heiko Stübner
2013-03-12 9:02 ` Heiko Stübner
2013-03-12 9:17 ` Heiko Stübner
2013-03-12 9:17 ` Heiko Stübner
2013-03-12 9:36 ` Thomas Abraham
2013-03-12 9:36 ` Thomas Abraham
2013-03-12 9:54 ` Heiko Stübner
2013-03-12 9:54 ` Heiko Stübner
2013-03-11 23:44 ` [PATCH 3/4] clk: samsung: always allocate the clk_table Heiko Stübner
2013-03-11 23:44 ` Heiko Stübner
2013-03-12 9:54 ` Thomas Abraham
2013-03-12 9:54 ` Thomas Abraham
2013-03-12 10:50 ` Heiko Stübner
2013-03-12 10:50 ` Heiko Stübner
2013-03-12 11:26 ` Thomas Abraham
2013-03-12 11:26 ` Thomas Abraham
2013-03-12 11:23 ` Sylwester Nawrocki
2013-03-12 11:23 ` Sylwester Nawrocki
2013-03-12 11:46 ` Thomas Abraham
2013-03-12 11:46 ` Thomas Abraham
2013-03-12 13:48 ` Sylwester Nawrocki
2013-03-12 13:48 ` Sylwester Nawrocki
2013-03-12 14:24 ` Thomas Abraham
2013-03-12 14:24 ` Thomas Abraham
2013-03-13 3:00 ` Alim Akhtar
2013-03-13 3:00 ` Alim Akhtar
2013-03-13 3:35 ` Sachin Kamat
2013-03-13 3:35 ` Sachin Kamat
2013-03-13 5:13 ` Kyungmin Park
2013-03-13 5:13 ` Kyungmin Park
2013-03-11 23:45 ` [PATCH 4/4] clk: samsung: add infrastructure to add separate aliases Heiko Stübner
2013-03-11 23:45 ` Heiko Stübner
2013-03-12 9:57 ` Thomas Abraham
2013-03-12 9:57 ` Thomas Abraham
2013-03-12 10:04 ` Heiko Stübner [this message]
2013-03-12 10:04 ` Heiko Stübner
2013-03-12 10:48 ` Thomas Abraham
2013-03-12 10:48 ` Thomas Abraham
-- strict thread matches above, loose matches on Subject: below --
2013-03-13 13:58 [PATCH v2 0/4] clk: samsung: pm fixes and multiple aliases Heiko Stübner
2013-03-13 14:00 ` [PATCH 4/4] clk: samsung: add infrastructure to add separate aliases Heiko Stübner
2013-03-13 14:00 ` Heiko Stübner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201303121104.38251.heiko@sntech.de \
--to=heiko@sntech.de \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=sylvester.nawrocki@gmail.com \
--cc=t.figa@samsung.com \
--cc=thomas.abraham@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.