Re: [RFC PATCH v2 0/2] clk: Support for DT assigned clock parents and rates

From: Maxime Coquelin
Date: Thu Mar 06 2014 - 08:47:35 EST


Hi Sylwester,

I like the principle of your implementation, but I have two questions:
1 - How can we manage PM with this solution, as the parent/rate will be set only once at probe time?
2 - How to set the parent of a parent clock (which can be shared with other devices)? Same question about the parent rates.


Thanks,
Maxime

On 03/03/2014 07:15 PM, Sylwester Nawrocki wrote:
This patch set adds a DT binding documentation for new 'clock-parents'
and 'clock-rates' DT properties and a helper function to parse them.
The helper is now being called from within the driver core, similarly
as it is done for the pins configuration binding to a device.

Patch 1/2 adds a variant of of_clk_get() function which accepts name of
a DT property containing list of phandle + clock specifier pairs, as
opposed to hard coded "clocks" property name in of_clk_get().
As Mike suggested I've renamed this function to of_clk_get_by_property().

Patch 2/2 actually adds the code searching for related DT properties at
device node and performing re-parenting and/or clock frequency setting
as specified.

Changes since v1:
- updated DT binding documentation,
- dropped the platform bus notifier, the clock setup routine is now
being called directly from the driver core before a driver probe() call;
this has an advantage such as all bus types are handled and any errors
are propagated, so that, for instance a driver probe() can be deferred
also when resources specified by clock-parents/clock-rates properties
are not yet available; an alternative would be to let drivers call
of_clk_device_setup() directly,
- dropped the patch adding a macro definition for maximum DT property
name length for now.

Open issues:
- handling of errors from of_clk_get_by_property() could be improved,
currently ENOENT is returned by this function not only for a null
entry.

This series has been tested on ARM, on Exynos4412 Trats2 board.
RFC v1 can be found at:
http://www.spinics.net/lists/arm-kernel/msg309241.html

Sylwester Nawrocki (2):
clk: Add function parsing arbitrary clock list DT property
clk: Add handling of clk parent and rate assigned from DT

.../devicetree/bindings/clock/clock-bindings.txt | 23 ++++++
drivers/base/dd.c | 5 ++
drivers/clk/clk.c | 77 ++++++++++++++++++++
drivers/clk/clk.h | 3 +
drivers/clk/clkdev.c | 25 ++++++-
include/linux/clk-provider.h | 6 ++
6 files changed, 135 insertions(+), 4 deletions(-)

--
1.7.9.5


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/