From: tomasz.figa@gmail.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv5 01/31] CLK: clkdev: add support for looking up clocks from DT
Date: Sat, 03 Aug 2013 16:02:36 +0200 [thread overview]
Message-ID: <2002722.lT3pR1Ni8o@flatron> (raw)
In-Reply-To: <1375460751-23676-2-git-send-email-t-kristo@ti.com>
Hi Tero,
On Friday 02 of August 2013 19:25:20 Tero Kristo wrote:
> clk_get_sys / clk_get can now find clocks from device-tree. If a DT
> clock is found, an entry is added to the clk_lookup list also for
> subsequent searches.
>
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> ---
> drivers/clk/clkdev.c | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index 442a313..cbeb252 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -93,6 +93,18 @@ struct clk *of_clk_get_by_name(struct device_node
> *np, const char *name) EXPORT_SYMBOL(of_clk_get_by_name);
> #endif
>
> +/**
> + * clkdev_add_nolock - add lookup entry for a clock
> + * @cl: pointer to new clock lookup entry
> + *
> + * Non-locking version, used internally by clk_find() to add DT based
> + * clock lookup entries.
> + */
> +static void clkdev_add_nolock(struct clk_lookup *cl)
> +{
> + list_add_tail(&cl->node, &clocks);
> +}
> +
> /*
> * Find the correct struct clk for the device and connection ID.
> * We do slightly fuzzy matching here:
> @@ -106,6 +118,9 @@ static struct clk_lookup *clk_find(const char
> *dev_id, const char *con_id) {
> struct clk_lookup *p, *cl = NULL;
> int match, best_found = 0, best_possible = 0;
> + struct device_node *node;
> + struct clk *clk;
> + struct of_phandle_args clkspec;
>
> if (dev_id)
> best_possible += 2;
> @@ -133,6 +148,24 @@ static struct clk_lookup *clk_find(const char
> *dev_id, const char *con_id) break;
> }
> }
> +
> + if (cl)
> + return cl;
> +
> + /* If clock was not found, attempt to look-up from DT */
> + node = of_find_node_by_name(NULL, con_id);
Why are we introducing the "lookup by name" brokenness to the yet (mostly)
sane DT world?
We already have a good way of binding things together in DT, which is
using phandles.
Not even saying that this (or something this patch relies on) breaks the
ePAPR recommendation about node naming, which states that node names
should not be used to convey platform-specific data, but instead should be
as generic as possible to show what kind of hardware is represented by the
node.
Best regards,
Tomasz
P.S. Added missing DT maintainers to CC.
> + clkspec.np = node;
> +
> + clk = of_clk_get_from_provider(&clkspec);
> +
> + if (!IS_ERR(clk)) {
> + /* We found a clock, add node to clkdev */
> + cl = clkdev_alloc(clk, con_id, dev_id);
> + if (cl)
> + clkdev_add_nolock(cl);
> + }
> +
> return cl;
> }
next prev parent reply other threads:[~2013-08-03 14:02 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-02 16:25 [PATCHv5 00/31] CLK: OMAP conversion to DT Tero Kristo
2013-08-02 16:25 ` [PATCHv5 01/31] CLK: clkdev: add support for looking up clocks from DT Tero Kristo
2013-08-03 14:02 ` Tomasz Figa [this message]
2013-08-03 18:35 ` Russell King - ARM Linux
2013-08-03 18:39 ` Tomasz Figa
2013-08-03 18:48 ` Russell King - ARM Linux
2013-08-03 19:04 ` Tomasz Figa
2013-08-19 9:12 ` Tero Kristo
2013-08-03 18:31 ` Russell King - ARM Linux
2013-08-26 14:36 ` Tero Kristo
2013-08-26 17:03 ` Russell King - ARM Linux
2013-08-26 18:12 ` Tero Kristo
2013-08-27 6:55 ` Tony Lindgren
2013-08-02 16:25 ` [PATCHv5 02/31] CLK: TI: Add DPLL clock support Tero Kristo
2013-08-13 10:50 ` Mark Rutland
2013-08-19 13:34 ` Tero Kristo
2013-08-19 14:18 ` Mark Rutland
2013-08-19 15:09 ` Tero Kristo
2013-08-19 16:24 ` Mark Rutland
2013-08-19 17:06 ` Tero Kristo
2013-08-19 22:00 ` Mike Turquette
2013-08-21 16:16 ` Tero Kristo
2013-08-22 8:04 ` Mike Turquette
2013-08-02 16:25 ` [PATCHv5 03/31] CLK: TI: add DT alias clock registration mechanism Tero Kristo
2013-08-02 16:25 ` [PATCHv5 04/31] CLK: TI: add autoidle support Tero Kristo
2013-08-02 16:25 ` [PATCHv5 05/31] CLK: TI: add support for OMAP gate clock Tero Kristo
2013-08-13 11:04 ` Mark Rutland
2013-08-19 13:42 ` Tero Kristo
2013-08-19 14:29 ` Mark Rutland
2013-08-19 14:43 ` Tero Kristo
2013-08-19 15:58 ` Mark Rutland
2013-08-19 16:19 ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 06/31] ARM: dts: omap4 clock data Tero Kristo
2013-08-03 14:16 ` Tomasz Figa
2013-08-19 13:43 ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 07/31] CLK: TI: add omap4 clock init file Tero Kristo
2013-08-05 7:27 ` Tony Lindgren
2013-08-19 13:46 ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 08/31] ARM: OMAP4: remove old clock data and link in new clock init code Tero Kristo
2013-08-02 16:25 ` [PATCHv5 09/31] ARM: dts: omap5 clock data Tero Kristo
2013-08-02 16:25 ` [PATCHv5 10/31] CLK: TI: add omap5 clock init file Tero Kristo
2013-08-02 16:25 ` [PATCHv5 11/31] CLK: TI: omap5: Initialize USB_DPLL at boot Tero Kristo
2013-08-02 16:25 ` [PATCHv5 12/31] ARM: dts: dra7 clock data Tero Kristo
2013-08-02 16:25 ` [PATCHv5 13/31] ARM: dts: clk: Add apll related clocks Tero Kristo
2013-08-02 16:25 ` [PATCHv5 14/31] ARM: dts: DRA7: Change apll_pcie_m2_ck to fixed factor clock Tero Kristo
2013-08-02 16:25 ` [PATCHv5 15/31] ARM: dts: DRA7: Add PCIe related clock nodes Tero Kristo
2013-08-02 16:25 ` [PATCHv5 16/31] CLK: TI: DRA7: Add APLL support Tero Kristo
2013-08-13 11:14 ` Mark Rutland
2013-08-19 13:52 ` Tero Kristo
2013-08-20 4:09 ` Keerthy
2013-08-02 16:25 ` [PATCHv5 17/31] CLK: TI: add dra7 clock init file Tero Kristo
2013-08-02 16:25 ` [PATCHv5 18/31] CLK: DT: add support for set-rate-parent flag Tero Kristo
2013-08-13 11:25 ` Mark Rutland
2013-08-02 16:25 ` [PATCHv5 19/31] ARM: dts: am33xx clock data Tero Kristo
2013-08-02 16:25 ` [PATCHv5 20/31] CLK: TI: add am33xx clock init file Tero Kristo
2013-08-02 16:25 ` [PATCHv5 21/31] ARM: AM33xx: remove old clock data and link in new clock init code Tero Kristo
2013-08-02 16:25 ` [PATCHv5 22/31] CLK: TI: add interface clock support for OMAP3 Tero Kristo
2013-08-13 11:30 ` Mark Rutland
2013-08-19 13:54 ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 23/31] ARM: OMAP: hwmod: fix an incorrect clk type cast with _get_clkdm Tero Kristo
2013-08-02 16:25 ` [PATCHv5 24/31] CLK: TI: gate: add support for OMAP36xx dpllx_mx_ck:s Tero Kristo
2013-08-02 16:25 ` [PATCHv5 25/31] ARM: OMAP3: hwmod: initialize clkdm from clkdm_name Tero Kristo
2013-08-02 16:25 ` [PATCHv5 26/31] ARM: dts: omap3 clock data Tero Kristo
2013-08-02 16:25 ` [PATCHv5 27/31] CLK: TI: add omap3 clock init file Tero Kristo
2013-08-02 16:25 ` [PATCHv5 28/31] ARM: dts: AM35xx clock data Tero Kristo
2013-08-02 16:25 ` [PATCHv5 29/31] ARM: dts: AM35xx: use DT " Tero Kristo
2013-08-02 16:25 ` [PATCHv5 30/31] ARM: OMAP3: use DT clock init if DT data is available Tero Kristo
2013-08-02 16:25 ` [PATCHv5 31/31] ARM: dts: am43xx clock data Tero Kristo
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=2002722.lT3pR1Ni8o@flatron \
--to=tomasz.figa@gmail.com \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox