devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Ingenic JZ47xx TCU drivers
@ 2017-12-29 12:59 Paul Cercueil
  2017-12-29 12:59 ` [PATCH 1/6] mfd: syscon: Add ingenic-tcu.h header Paul Cercueil
                   ` (5 more replies)
  0 siblings, 6 replies; 81+ messages in thread
From: Paul Cercueil @ 2017-12-29 12:59 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland,
	Thomas Gleixner, Jason Cooper, Marc Zyngier, Daniel Lezcano,
	Lee Jones
  Cc: linux-clk-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Hi,

This patch set introduces three new drivers, which together control the
TCU (Timer/Counter Unit) of Ingenic JZ47xx SoCs.

The ingenic-tcu-intc driver will demultiplex the TCU IRQ interrupts; the 
ingenic-tcu-clocks driver will handle the TCU clocks (enable/disable,
reparenting, reclocking); and the ingenic-tcu driver provides a
clocksource and timers to the system.

The purpose of this patch series is to eventually completely remove the
non-standard platform and board code that handles timers for the Ingenic
SoCs. Before this can be achieved, the watchdog and PWM drivers (already
upstream) will be modified to use the same regmap as the rest of the TCU
drivers.

Thanks,
-Paul

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 81+ messages in thread
* Re: [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver
@ 2018-04-09 15:32 Paul Cercueil
  0 siblings, 0 replies; 81+ messages in thread
From: Paul Cercueil @ 2018-04-09 15:32 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: Thomas Gleixner, Rob Herring, Maarten ter Huurne, linux-doc,
	Jonathan Corbet, linux-mips, Jason Cooper, James Hogan,
	Mark Rutland, Marc Zyngier, linux-kernel, linux-clk, devicetree,
	Ralf Baechle, Lee Jones

Le 3 avr. 2018 6:59 AM, Daniel Lezcano <daniel.lezcano@linaro.org> a écrit :
>
> On 31/03/2018 19:46, Paul Cercueil wrote: 
> > Le 2018-03-31 10:10, Daniel Lezcano a écrit : 
> >> On 29/03/2018 16:52, Paul Cercueil wrote: 
> >>> 
> >>> 
> >>> Le mer. 28 mars 2018 à 18:25, Daniel Lezcano <daniel.lezcano@linaro.org> 
> >>> a écrit : 
> >>>> On 28/03/2018 17:15, Paul Cercueil wrote: 
> >>>>>  Le 2018-03-24 07:26, Daniel Lezcano a écrit : 
> >>>>>>  On 18/03/2018 00:29, 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. 
> >>>>>> 
> >>>>>>  Please provide a more detailed description about the timer. 
> >>>>> 
> >>>>>  There's a doc file for that :) 
> >>>> 
> >>>> Usually, when there is a new driver I ask for a description in the 
> >>>> changelog for reference. 
> >>>> 
> >>>>>>  Where is the clocksource ? 
> >>>>> 
> >>>>>  Right, there is no clocksource, just timers. 
> >>>>> 
> >>>>>>  I don't see the point of using channel idx and pwm checking here. 
> >>>>>> 
> >>>>>>  There is one clockevent, why create multiple channels ? Can't you 
> >>>>>> stick 
> >>>>>>  to the usual init routine for a timer. 
> >>>>> 
> >>>>>  So the idea is that we use all the TCU channels that won't be used 
> >>>>> for PWM 
> >>>>>  as timers. Hence the PWM checking. Why is this bad? 
> >>>> 
> >>>> It is not bad but arguable. By checking the channels used by the pwm in 
> >>>> the code, you introduce an adherence between two subsystems even if it 
> >>>> is just related to the DT parsing part. 
> >>>> 
> >>>> As it is not needed to have more than one timer in the time framework 
> >>>> (at least with the same characteristics), the pwm channels check is 
> >>>> pointless. We can assume the author of the DT file is smart enough to 
> >>>> prevent conflicts and define a pwm and a timer properly instead of 
> >>>> adding more code complexity. 
> >>>> 
> >>>> In addition, simplifying the code will allow you to use the timer-of 
> >>>> code and reduce very significantly the init function. 
> >>> 
> >>> That's what I had in my V1 and V2, my DT node for the timer-ingenic 
> >>> driver 
> >>> had a "timers" property (e.g. "timers = <4 5>;") to select the channels 
> >>> that 
> >>> should be used as timers. Then Rob told me I shouldn't do that, and 
> >>> instead 
> >>> detect the channels that will be used for PWM. 
> >>> 
> >> 
> >> [ ... ] 
> >> 
> >> How do you specify the channels used for PWM ? 
> > 
> > To detect the channels that will be used as PWM I parse the whole 
> > devicetree 
> > searching for "pwms" properties; check that the PWM handle is for our 
> > TCU PWM 
> > driver; then read the PWM number from there. 
> > 
> > Of course it's hackish, and it only works for devicetree. I preferred the 
> > method with the "timers" property. 
>
> Do you have a DT portion describing that? Eg somewhere in the kernel's 
> git tree ? 
>
> From what I understood, we can specify the channel for a pwm but not for 
> a timer, there is certainly something I'm missing. 

No, it was something custom. There is no standard way to specify a channel to use for a timer.

> >>>>>>> 
> >>>>>>>  +config INGENIC_TIMER 
> >>>>>>>  +    bool "Clocksource/timer using the TCU in Ingenic JZ SoCs" 
> >>>>>>>  +    depends on MACH_INGENIC || COMPILE_TEST 
> >>>>>> 
> >>>>>>  bool "Clocksource/timer using the TCU in Ingenic JZ SoCs" if 
> >>>>>> COMPILE_TEST 
> >>>>>> 
> >>>>>>  Remove the depends MACH_INGENIC. 
> >>>>> 
> >>>>>  This driver is not useful on anything else than Ingenic SoCs, why 
> >>>>> should I 
> >>>>>  remove MACH_INGENIC then? 
> >>>> 
> >>>> For COMPILE_TEST on x86. 
> >>> 
> >>> Well that's a logical OR right here, so it will work... 
> >> 
> >> Right, I missed the second part of the condition. For consistency 
> >> reason, we don't add a dependency on the platform. The platform will 
> >> select it. Look the other timer options and you will see there is no 
> >> MACH deps. I'm trying consolidating all these options to have same 
> >> format and hopefully factor them out. 
> > 
> > I'm all for factorisation, but what I dislike with not depending on 
> > MACH_INGENIC, is that the driver now appears in the menuconfig for 
> > every arch, even if it only applies to one MIPS SoC. 
>
> Can you do the following change? 
>
> bool "Clocksource/timer using the TCU in Ingenic JZ SoCs" if COMPILE_TEST 
>
> so it will appear only when the COMPILE_TEST option is set whatever the 
> platform which is the purpose of this option to increase compile test 
> coverage. 

Ok, I get it now. It won't appear in the menuconfig unless COMPILE_TEST is selected, but I can still select it from the platform.

Thanks!
-Paul

^ permalink raw reply	[flat|nested] 81+ messages in thread

end of thread, other threads:[~2018-04-09 15:32 UTC | newest]

Thread overview: 81+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-29 12:59 [PATCH 0/6] Ingenic JZ47xx TCU drivers Paul Cercueil
2017-12-29 12:59 ` [PATCH 1/6] mfd: syscon: Add ingenic-tcu.h header Paul Cercueil
2018-01-01 14:33   ` [PATCH v2 " Paul Cercueil
2018-01-01 14:33     ` [PATCH v2 2/6] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil
2018-01-03 20:49       ` Rob Herring
2018-01-01 14:33     ` [PATCH v2 3/6] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil
     [not found]       ` <20180101143344.2099-3-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-03 20:58         ` Rob Herring
2018-01-03 21:50           ` Paul Cercueil
2018-01-01 14:33     ` [PATCH v2 4/6] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil
2018-01-02 19:13       ` Stephen Boyd
2018-01-02 20:08         ` Paul Cercueil
2018-01-02 22:59           ` Stephen Boyd
2018-01-01 14:33     ` [PATCH v2 5/6] clocksource: Add a new timer-ingenic driver Paul Cercueil
2018-01-03 21:08       ` Rob Herring
2018-01-03 21:56         ` Paul Cercueil
     [not found]           ` <1515016576.1642.2-nb6JAIIttxhEPksTRSfcJOTW4wlIGRCZ@public.gmane.org>
2018-01-05 23:27             ` Rob Herring
     [not found]               ` <CAL_Jsq+DQnfX29AOJWMtH9ZB7=neOVwiyZggEuwOmazzVQ6MVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-05 23:48                 ` Paul Cercueil
     [not found]                   ` <1515196105.2058.1-nb6JAIIttxhEPksTRSfcJOTW4wlIGRCZ@public.gmane.org>
2018-01-09  1:09                     ` Rob Herring
2018-01-01 14:33     ` [PATCH v2 6/6] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil
2018-01-02 15:51     ` [PATCH v2 1/6] mfd: syscon: Add ingenic-tcu.h header Lee Jones
2018-01-10 22:48     ` [PATCH v3 1/9] " Paul Cercueil
2018-01-10 22:48       ` [PATCH v3 3/9] doc: dt-bindings: Add doc for Ingenic TCU IRQ driver Paul Cercueil
     [not found]         ` <20180110224838.16711-3-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-19 21:05           ` Rob Herring
2018-01-10 22:48       ` [PATCH v3 4/9] doc: dt-bindings: Add doc for the Ingenic TCU clocks driver Paul Cercueil
     [not found]         ` <20180110224838.16711-4-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-19 21:11           ` Rob Herring
2018-01-10 22:48       ` [PATCH v3 5/9] doc: dt-bindings: Add doc for the Ingenic TCU timers driver Paul Cercueil
2018-01-19 21:12         ` Rob Herring
2018-01-10 22:48       ` [PATCH v3 6/9] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil
     [not found]         ` <20180110224838.16711-6-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-11 15:38           ` Marc Zyngier
2018-01-11 16:25             ` Paul Cercueil
2018-01-20 13:06               ` Marc Zyngier
2018-01-22  9:26                 ` Lee Jones
2018-01-22  9:55                   ` Marc Zyngier
     [not found]                     ` <bdae1be4-0ed2-1b7d-8b08-7439ce06e762-5wv7dgnIgG8@public.gmane.org>
2018-01-22 11:46                       ` Lee Jones
2018-01-10 22:48       ` [PATCH v3 7/9] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil
     [not found]         ` <20180110224838.16711-7-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-27  0:37           ` Stephen Boyd
2018-01-10 22:48       ` [PATCH v3 8/9] clocksource: Add a new timer-ingenic driver Paul Cercueil
     [not found]         ` <20180110224838.16711-8-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-11 14:53           ` Rob Herring
     [not found]             ` <CAL_Jsq+StZS1+qTd9CG1X2_3ay5onMgEmYG9MRUVWs-4K4-EZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-11 16:16               ` Paul Cercueil
2018-01-10 22:48       ` [PATCH v3 9/9] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil
     [not found]       ` <20180110224838.16711-1-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org>
2018-01-10 22:48         ` [PATCH v3 2/9] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil
2018-03-17 23:28           ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Paul Cercueil
2018-03-17 23:28             ` [PATCH v4 1/8] mfd: syscon: Add ingenic-tcu.h header Paul Cercueil
2018-03-17 23:28             ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil
2018-03-19 21:27               ` Stephen Boyd
2018-03-20  7:15               ` Mathieu Malaterre
2018-03-28 15:04                 ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks, Paul Cercueil
2018-03-28 18:35                   ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks Mathieu Malaterre
2018-03-17 23:28             ` [PATCH v4 3/8] doc: Add doc for the Ingenic TCU hardware Paul Cercueil
2018-03-17 23:52               ` Randy Dunlap
2018-03-28 14:59                 ` [PATCH v4 3/8] doc: Add doc for the Ingenic TCU hardware, Paul Cercueil
2018-03-17 23:28             ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Paul Cercueil
2018-03-20  8:52               ` Marc Zyngier
2018-03-28 15:09                 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers, Paul Cercueil
2018-03-27 14:46               ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Rob Herring
2018-03-28 15:33                 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers, Paul Cercueil
2018-03-28 16:28                   ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Rob Herring
2018-03-29 15:59                     ` Paul Cercueil
2018-03-17 23:28             ` [PATCH v4 5/8] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil
2018-03-17 23:28             ` [PATCH v4 6/8] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil
2018-03-17 23:29             ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Paul Cercueil
2018-03-24  6:26               ` Daniel Lezcano
2018-03-28 15:15                 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver, Paul Cercueil
2018-03-28 16:25                   ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Daniel Lezcano
2018-03-29 14:52                     ` Paul Cercueil
2018-03-31  8:10                       ` Daniel Lezcano
2018-03-31 17:46                         ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver, Paul Cercueil
2018-04-03  9:59                           ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Daniel Lezcano
2018-03-17 23:29             ` [PATCH v4 8/8] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil
2018-03-18 22:13             ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Daniel Lezcano
2018-03-28 15:01               ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers, Paul Cercueil
2018-03-28 15:10                 ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Daniel Lezcano
2018-01-23  9:52         ` [PATCH v3 1/9] mfd: syscon: Add ingenic-tcu.h header Lee Jones
2017-12-29 12:59 ` [PATCH 2/6] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil
2017-12-29 12:59 ` [PATCH 3/6] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil
2017-12-29 12:59 ` [PATCH 4/6] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil
2017-12-29 14:02   ` Paul Cercueil
2018-01-01 12:47   ` kbuild test robot
2017-12-29 12:59 ` [PATCH 5/6] clocksource: Add a new timer-ingenic driver Paul Cercueil
2017-12-29 12:59 ` [PATCH 6/6] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil
2018-04-09 15:32 [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Paul Cercueil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).