From: mturquette@linaro.org (Mike Turquette)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 21/33 v2] clk: ux500: Add Device Tree support for the PRCC Kernel clock
Date: Fri, 21 Jun 2013 11:20:49 -0700 [thread overview]
Message-ID: <20130621182049.20448.88353@quantum> (raw)
In-Reply-To: <20130619074203.GD31320@laptop>
Quoting Lee Jones (2013-06-19 00:42:03)
> > Quoting Arnd Bergmann (2013-06-12 07:46:30)
> > > On Tuesday 11 June 2013, Lee Jones wrote:
> > > > This patch enables clocks to be specified from Device Tree via phandles
> > > > to the "prcc-kernel-clock" node.
> > > >
> > > > Cc: Mike Turquette <mturquette@linaro.org>
> > > > Cc: Ulf Hansson <ulf.hansson@linaro.org>
> > > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > >
> > >
> > > I don't understand the design of the common clock subsystem here, but is it really
> > > necessary to hardcode all the clocks using clk_reg_prcc_kclk() here *and* register
> > > a clkdev *and* store the pointer in an array, when you can get all that information
> > > from the device tree?
> > >
> > > Mike?
> >
> > I'm a bit confused by what is going on here too. There are several
> > different ways to handle this.
> >
> > 1) Since you have your own clock driver (e.g. not the basic clock types)
> > then you could expand the argument list of clk_reg_prcc_kclk to include
> > the clkdev dev_id string and toss the call to clk_register_clkdev inside
> > of clk_reg_prcc_kclk.
>
> Yes, that's actually a pretty good idea. It has nothing to do with
> this patchset, but I will add it to my TODO.
>
> NB: I am away from tomorrow until after Connect, so I will continue
> with this after that.
>
> > 2) Move your clock data into DT and teach the driver to use of_clk_get
> > to fetch the clk phandle directly instead of using the string-matching
> > clkdev mechanisms. Of course both your clock and device bits need to be
> > converted to DT first.
>
> I'm sure this is the end-goal, but we still have to support the !DT
> case. At least until all of the ATAGs stuff has been completely
> removed from platform.
>
> > Can you explain what prcc_kclk[] and friends are doing? Is that a legacy
> > clock framework thing that is still hanging around? I'm curious to know
> > why your clock driver needs a list of the clocks it registers.
>
> Sure.
>
> 1. So when we register a clock, we store a pointer to it in a 'struct
> clk *array[]' using known cell identifying read-ins. For peripheral
> (pclk) and kernel (kclk) clocks these are peripheral number (the
> kernel clocks have these too) and their associated 8bit register
> enable BIT(). The PRCMU clocks are read-in to the array only by their
> 32bit register enable BIT().
>
> 2. We then register with of_clk_add_provider() passing the array using
> the 'void *data' argument. So:
>
> clk = clk_reg_prcc_[p|k]clk(blah, blah, blah);
> array[(periph * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk
> of_clk_add_provider(child, ux500_twocell_get, array);
>
> 3. In the DTS(I) files we request clocks using their known identifiers
> by way of tuplets for the kclks and pclks and by a 1 #cell variant for
> the PRCMU clocks. So:
>
> pclk & kclk:
> /* pclk/kclk periph BIT() */
> clocks = <&prcc_[p|k]clk 1 9>;
>
> PRCMU:
> /* prcmu BIT() */
> clocks = <&prcmu_clk PRCMU_DMACLK>;
>
> The PRCMU can then use the clk framework supplied
> of_clk_src_onecell_get() call-back and the pclk and kclks use the 2
> #cell variant we provide. They both read into the aforementioned
> array[]s we populated earlier in the process to fetch the correct
> 'struct clk*'.
Ok, so I had to re-read that several times. It's probably not a win for
readability but if that is the binding you want then go for it.
For patches #17-23:
Acked-by: Mike Turquette <mturquette@linaro.org>
>
> --
> Lee Jones
> Linaro ST-Ericsson Landing Team Lead
> Linaro.org ? Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2013-06-21 18:20 UTC|newest]
Thread overview: 178+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 12:16 [PATCH 00/32] ARM: ux500: Enable clocks for Device Tree Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 01/33] mfd: dbx500-prcmu: Provide PRCMU numerical clock identifiers Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 02/33] ARM: ux500: Add PRCMU clock node to DBx500 Device Tree Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 03/33] ARM: ux500: Supply the DMA clock lookup to the DBX500 DT Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 04/33] ARM: ux500: Add PRCC Peripheral clock node to DBx500 Device Tree Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 05/33] ARM: ux500: Supply the GPIO clocks lookup to the DBX500 DT Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 06/33] ARM: ux500: Supply the USB clock " Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 07/33] ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 08/33] ARM: ux500: Add PRCC Kernel clock node to DBx500 Device Tree Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 09/33] ARM: ux500: Supply the I2C clocks lookup to the DBX500 DT Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-08-20 9:11 ` Linus Walleij
2013-08-20 9:11 ` Linus Walleij
2013-08-20 9:30 ` Sascha Hauer
2013-08-20 9:30 ` Sascha Hauer
2013-08-22 13:37 ` Mark Rutland
2013-08-22 13:37 ` Mark Rutland
2013-08-22 13:49 ` Lee Jones
2013-08-22 13:49 ` Lee Jones
2013-08-22 14:19 ` Lee Jones
2013-08-22 14:19 ` Lee Jones
2013-08-22 15:17 ` Mark Rutland
2013-08-22 15:17 ` Mark Rutland
2013-08-22 15:41 ` Lee Jones
2013-08-22 15:41 ` Lee Jones
2013-08-22 16:04 ` Mark Rutland
2013-08-22 16:04 ` Mark Rutland
2013-08-22 21:19 ` Sascha Hauer
2013-08-22 21:19 ` Sascha Hauer
2013-08-23 7:56 ` Lee Jones
2013-08-23 7:56 ` Lee Jones
2013-08-23 16:55 ` Mark Rutland
2013-08-23 16:55 ` Mark Rutland
2013-08-27 8:06 ` Lee Jones
2013-08-27 8:06 ` Lee Jones
2013-08-27 13:46 ` Mark Rutland
2013-08-27 13:46 ` Mark Rutland
2013-08-27 13:46 ` Mark Rutland
2013-08-27 14:08 ` Lee Jones
2013-08-27 14:08 ` Lee Jones
2013-08-27 15:51 ` Rob Herring
2013-08-27 15:51 ` Rob Herring
2013-08-27 16:15 ` Pawel Moll
2013-08-27 16:15 ` Pawel Moll
2013-08-21 8:28 ` Lee Jones
2013-08-21 8:28 ` Lee Jones
2013-08-21 22:44 ` Linus Walleij
2013-08-21 22:44 ` Linus Walleij
2013-08-22 9:23 ` Lee Jones
2013-08-22 9:23 ` Lee Jones
2013-06-06 12:16 ` [PATCH 10/33] ARM: ux500: Supply the UART " Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:16 ` [PATCH 11/33] ARM: ux500: Supply the SDI (MMC) " Lee Jones
2013-06-06 12:16 ` Lee Jones
2013-06-06 12:17 ` [PATCH 12/33] ARM: ux500: Supply the MSP (Audio) " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 13/33] ARM: ux500: Add RTC (fixed-frequency) clock node to DBx500 Device Tree Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 14/33] ARM: ux500: Supply the RTC clock lookup to the DBX500 DT Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 15/33] ARM: ux500: Add TWD (fixed-factor) clock node to DBx500 Device Tree Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 16/33] ARM: ux500: Supply the TWD Timer clock lookup to the DBX500 DT Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 17/33] clk: ux500: Provide u8500_clk with skeleton Device Tree support Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 18/33] clk: ux500: Add a 2-cell Device Tree parser for obtaining PRCC clocks Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-10 20:54 ` Ulf Hansson
2013-06-10 20:54 ` Ulf Hansson
2013-06-11 9:12 ` Lee Jones
2013-06-11 9:12 ` Lee Jones
2013-06-11 11:07 ` [PATCH 18/33 v2] " Lee Jones
2013-06-11 11:07 ` Lee Jones
2013-06-06 12:17 ` [PATCH 19/33] clk: ux500: Add Device Tree support for the PRCMU clock Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-10 21:19 ` Ulf Hansson
2013-06-10 21:19 ` Ulf Hansson
2013-06-11 11:10 ` Lee Jones
2013-06-11 11:10 ` Lee Jones
2013-06-11 11:12 ` Lee Jones
2013-06-11 11:12 ` Lee Jones
2013-08-21 8:23 ` Linus Walleij
2013-08-21 8:23 ` Linus Walleij
2013-08-21 10:10 ` Lee Jones
2013-08-21 10:10 ` Lee Jones
2013-06-06 12:17 ` [PATCH 20/33] clk: ux500: Add Device Tree support for the PRCC Peripheral clock Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-11 11:51 ` [PATCH 20/33 v2] " Lee Jones
2013-06-11 11:51 ` Lee Jones
2013-06-06 12:17 ` [PATCH 21/33] clk: ux500: Add Device Tree support for the PRCC Kernel clock Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-10 21:24 ` Ulf Hansson
2013-06-10 21:24 ` Ulf Hansson
2013-06-11 9:10 ` Lee Jones
2013-06-11 9:10 ` Lee Jones
2013-06-11 11:09 ` [PATCH 21/33 v2] " Lee Jones
2013-06-11 11:09 ` Lee Jones
2013-06-12 14:46 ` Arnd Bergmann
2013-06-12 14:46 ` Arnd Bergmann
2013-06-18 21:17 ` Mike Turquette
2013-06-18 21:17 ` Mike Turquette
2013-06-19 7:42 ` Lee Jones
2013-06-19 7:42 ` Lee Jones
2013-06-21 18:20 ` Mike Turquette [this message]
2013-08-21 8:17 ` [PATCH 21/33] " Linus Walleij
2013-08-21 8:17 ` Linus Walleij
2013-08-21 10:14 ` Lee Jones
2013-08-21 10:14 ` Lee Jones
2013-08-21 22:46 ` Linus Walleij
2013-08-21 22:46 ` Linus Walleij
2013-08-22 9:21 ` Lee Jones
2013-08-22 9:21 ` Lee Jones
2013-08-23 18:01 ` Linus Walleij
2013-08-23 18:01 ` Linus Walleij
2013-08-24 8:00 ` Arnd Bergmann
2013-08-24 8:00 ` Arnd Bergmann
2013-08-24 21:19 ` Linus Walleij
2013-08-24 21:19 ` Linus Walleij
2013-08-27 8:23 ` Lee Jones
2013-08-27 8:23 ` Lee Jones
2013-09-12 12:50 ` Linus Walleij
2013-09-12 12:50 ` Linus Walleij
2013-09-12 14:56 ` Lee Jones
2013-09-12 14:56 ` Lee Jones
2013-09-13 7:20 ` Linus Walleij
2013-09-13 7:20 ` Linus Walleij
2013-06-06 12:17 ` [PATCH 22/33] clk: ux500: Add Device Tree support for the RTC clock Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 23/33] clk: ux500: Add Device Tree support for the TWD clock Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 24/33] ARM: ux500: Remove AUXDATA relating to GPIO clock-name bindings Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 25/33] ARM: ux500: Remove AUXDATA relating to UART " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 26/33] ARM: ux500: Remove AUXDATA relating to SDI (MMC) " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-08-23 13:31 ` Linus Walleij
2013-08-23 13:31 ` Linus Walleij
2013-08-23 14:45 ` Lee Jones
2013-08-23 14:45 ` Lee Jones
2013-08-24 7:57 ` Arnd Bergmann
2013-08-24 7:57 ` Arnd Bergmann
2013-08-27 8:11 ` Lee Jones
2013-08-27 8:11 ` Lee Jones
2013-06-06 12:17 ` [PATCH 27/33] ARM: ux500: Remove AUXDATA relating to I2C " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 28/33] ARM: ux500: Remove AUXDATA relating to MSP (Audio) " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-08-21 8:08 ` Linus Walleij
2013-08-21 8:08 ` Linus Walleij
2013-08-21 8:17 ` Lee Jones
2013-08-21 8:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 29/33] ARM: ux500: Remove AUXDATA relating to USB " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 30/33] ARM: ux500: Remove AUXDATA relating to Ethernet " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 31/33] ARM: ux500: Remove AUXDATA relating to DMA " Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 32/33] ARM: ux500: Reclassify PRCMU AUXDATA entry Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-06 12:17 ` [PATCH 33/33] ARM: ux500: Remove SSP AUXDATA pertaining to DMA bindings Lee Jones
2013-06-06 12:17 ` Lee Jones
2013-06-12 13:27 ` [PATCH 00/32] ARM: ux500: Enable clocks for Device Tree Lee Jones
2013-06-12 13:27 ` Lee Jones
2013-06-13 8:41 ` Linus Walleij
2013-06-13 8:41 ` Linus Walleij
2013-06-13 9:34 ` Lee Jones
2013-06-13 9:34 ` Lee Jones
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=20130621182049.20448.88353@quantum \
--to=mturquette@linaro.org \
--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 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.