From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 1/8] clocksource: dmtimer: Remove all the exports
Date: Wed, 13 Dec 2017 08:51:10 -0800 [thread overview]
Message-ID: <20171213165110.GG14441@atomide.com> (raw)
In-Reply-To: <20171213091527.GA18859@lenoch>
* Ladislav Michl <ladis@linux-mips.org> [171213 09:17]:
> On Tue, Dec 12, 2017 at 10:21:50AM -0800, Tony Lindgren wrote:
> > * Ladislav Michl <ladis@linux-mips.org> [171212 18:06]:
> > > I do not follow. Each general-purpose timer module has its own interrupt line,
> > > so claiming that irq directly using request_irq seems enough. Could you
> > > explain interrupt controller idea a bit more?
> >
> > Well let's assume we have drivers/clocksource/timer-dm.c implement
> > an irq controller. Then the pwm driver would just do:
> >
> > pwm9: dmtimer-pwm {
> > compatible = "ti,omap-dmtimer-pwm";
> > #pwm-cells = <3>;
> > ti,timers = <&timer9>;
> > ti,clock-source = <0x00>; /* timer_sys_ck */
> > interrupts-extended = <&timer9 IRQ_TYPE_SOMETHING>;
> > };
> >
> > Then you can do whatever you need to in the pwm driver with
> > enable_irq/disable_irq + a handler?
>
> That seems to work. Now should we map 1:1 to timer interrupt or
> have separate interrupt for match, overflow and capture?
> Former would need some more dm_timer_ops to determine interrupt
> source, while later would work "automagically" - but I haven't
> tested it yet.
Hmm the second option sounds appealing to me as then the device
tree binding really follows the hardware:
bit 2 capture interrupt
bit 1 overflow interrupt
bit 0 match interrupt
and in the dts we can describe these with:
interrupts-extended = <&timer 9 2 IRQ_TYPE_EDGE_SOMETHING>;
interrupts-extended = <&timer 9 1 IRQ_TYPE_EDGE_SOMETHING>;
interrupts-extended = <&timer 9 0 IRQ_TYPE_EDGE_SOMETHING>;
I think these are all edge based on "Capture Mode Functionality"
chapter in the TRM?
> > If reading the line status is needed.. Then maybe the GPIO framework
> > needs to have hardware timer support instead?
>
> It does not seem OMAP can read event pin value in event capture mode.
Sounds like a bug somehwere, probably in software?
> > Anyways, just thinking out loud how we could have a Linux generic
> > hardware timer framework that drivers like pwm could then use.
>
> I need a bit longer chain:
> dmtimer -> pwm -> rc (which calls ir_raw_event_store from interrupt)
> Is extending pwm core with interrpt callback the right thing there?
> Something like:
> (*pulse_captured)(ktime_t width, ktime_t last_edge);
OK seems like having drivers/clocksource/timer-dm.c a chained
interrupt handler should do it :) Anyways, that's a different
set of patches on top of these.
Regards,
Tony
next prev parent reply other threads:[~2017-12-13 16:51 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-12 6:12 [PATCH v5 0/8] omap: dmtimer: Move driver out of plat-omap Keerthy
2017-12-12 6:12 ` [PATCH v5 1/8] clocksource: dmtimer: Remove all the exports Keerthy
2017-12-12 7:16 ` Ladislav Michl
2017-12-12 7:31 ` Keerthy
2017-12-12 8:01 ` Ladislav Michl
2017-12-12 8:08 ` Keerthy
2017-12-12 8:19 ` Ladislav Michl
2017-12-12 8:22 ` Keerthy
2017-12-12 17:00 ` Tony Lindgren
2017-12-12 18:03 ` Ladislav Michl
2017-12-12 18:21 ` Tony Lindgren
2017-12-13 9:15 ` Ladislav Michl
2017-12-13 16:51 ` Tony Lindgren [this message]
2017-12-12 6:12 ` [PATCH v5 2/8] arm: omap: timer: Wrap the inline functions under OMAP2PLUS define Keerthy
2017-12-12 6:12 ` [PATCH v5 3/8] arm: omap: Move dmtimer.h out of plat-omap Keerthy
2017-12-12 6:12 ` [PATCH v5 4/8] arm: OMAP: Move dmtimer driver out of plat-omap to drivers under clocksource Keerthy
2017-12-12 6:12 ` [PATCH v5 5/8] dmtimer: Add timer ops to the platform data structure Keerthy
2017-12-12 6:12 ` [PATCH v5 6/8] clocksource: dmtimer: Populate the timer ops to the pdata Keerthy
2017-12-12 6:12 ` [PATCH v5 7/8] pwm: pwm-omap-dmtimer: Adapt driver to utilize dmtimer pdata ops Keerthy
2017-12-18 9:31 ` Ladislav Michl
2017-12-18 12:55 ` Keerthy
2017-12-19 4:58 ` Keerthy
2017-12-19 8:25 ` Keerthy
2017-12-19 15:21 ` Ladislav Michl
2017-12-20 4:42 ` Keerthy
2017-12-12 6:12 ` [PATCH v5 8/8] arm: omap: pdata-quirks: Remove unused timer pdata Keerthy
2017-12-18 11:16 ` [PATCH v5 0/8] omap: dmtimer: Move driver out of plat-omap Ladislav Michl
2017-12-18 11:30 ` [PATCH 1/2] clocksource: timer-dm: Make unexported functions static Ladislav Michl
2017-12-19 8:33 ` Keerthy
2017-12-18 11:31 ` [PATCH 2/2] clocksource: timer-dm: Check prescaler value Ladislav Michl
2017-12-19 8:30 ` Keerthy
2017-12-18 12:54 ` [PATCH v5 0/8] omap: dmtimer: Move driver out of plat-omap Keerthy
2017-12-18 13:14 ` Ladislav Michl
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=20171213165110.GG14441@atomide.com \
--to=tony@atomide.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;
as well as URLs for NNTP newsgroup(s).