lkml.org 
[lkml]   [2018]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 5/6] clocksource: Add a new timer-ingenic driver
Hi,

Le mer. 3 janv. 2018 à 22:08, Rob Herring <robh@kernel.org> a écrit :
> On Mon, Jan 01, 2018 at 03:33:43PM +0100, Paul Cercueil wrote:
>> This driver will use the TCU (Timer Counter Unit) present on the
>> Ingenic
>> JZ47xx SoCs to provide the kernel with a clocksource and timers.
>>
>> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>> ---
>> .../devicetree/bindings/timer/ingenic,tcu.txt | 35 +++
>
> Separate patch please.

OK.

>> drivers/clocksource/Kconfig | 8 +
>> drivers/clocksource/Makefile | 1 +
>> drivers/clocksource/timer-ingenic.c | 256
>> +++++++++++++++++++++
>> 4 files changed, 300 insertions(+)
>> create mode 100644
>> Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>> create mode 100644 drivers/clocksource/timer-ingenic.c
>>
>> v2: Use SPDX identifier for the license
>>
>> diff --git
>> a/Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>> b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>> new file mode 100644
>> index 000000000000..e4944972ea53
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>> @@ -0,0 +1,35 @@
>> +Ingenic JZ47xx SoCs Timer/Counter Unit driver
>> +---------------------------------------------
>> +
>> +Required properties:
>> +
>> +- compatible : should be "ingenic,<socname>-tcu". Valid strings
>> are:
>> + * ingenic,jz4740-tcu
>> + * ingenic,jz4770-tcu
>> + * ingenic,jz4780-tcu
>> +- interrupt-parent : phandle of the TCU interrupt controller.
>> +- interrupts : Specifies the interrupts the controller is
>> connected to.
>> +- clocks : List of phandle & clock specifiers for the TCU clocks.
>> +- clock-names : List of name strings for the TCU clocks.
>> +- ingenic,channels: a list of TCU channels to be used as timers.
>
> Why is this needed? This looks like you are trying to assign certain
> timers to clocksource and clockevent. A common problem, but one that
> should be decided by describing h/w features. There must be some
> property present or missing to make you decide to use a given channel
> or
> not.

Well, it's not easy; some TCU channels will be used as PWM, and there's
no way
to know that when the clocksource driver probes. And which ones are PWM
/ which
ones are not, is board-specific. If you have a better solution though,
I take it.

>> +
>> +Example:
>> +
>> +/ {
>> + regmap {
>> + compatible = "simple-mfd", "syscon";
>> + reg = <0x10002000 0x1000>;
>> +
>> + tcu: timer {
>> + compatible = "ingenic,jz4740-tcu";
>> +
>> + clocks = <&tcu 0>, <&tcu 1>;
>> + clock-names = "timer0", "timer1";
>
> It's curious that you have timer0 and timer1 here and then channels 0
> and 1 below. Would your clocks change if you use channel 2 for
> example?
> The binding should be a list of clock connections in the h/w, not
> just what the driver needs or what the used h/w configuration is.
>
> Rob

I only put these to simplify the example, but you're right, I should
have
all the timer clocks supplied there.

Thanks,
-Paul

\
 
 \ /
  Last update: 2018-01-03 22:56    [W:0.079 / U:7.904 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site