linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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

  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).