From patchwork Mon Oct 31 11:56:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Lindgren X-Patchwork-Id: 620387 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4426C38A02 for ; Mon, 31 Oct 2022 11:56:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229882AbiJaL4Y (ORCPT ); Mon, 31 Oct 2022 07:56:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229826AbiJaL4X (ORCPT ); Mon, 31 Oct 2022 07:56:23 -0400 Received: from muru.com (muru.com [72.249.23.125]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5AEADD85; Mon, 31 Oct 2022 04:56:22 -0700 (PDT) Received: from hillo.muru.com (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTP id 273F780CD; Mon, 31 Oct 2022 11:46:50 +0000 (UTC) From: Tony Lindgren To: Daniel Lezcano , Thomas Gleixner Cc: Georgi Vlaev , Grygorii Strashko , Keerthy , Ladislav Michl , Nishanth Menon , Suman Anna , Vignesh Raghavendra , linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 0/3] Make TI dmtimer features more usable Date: Mon, 31 Oct 2022 13:56:10 +0200 Message-Id: <20221031115613.56229-1-tony@atomide.com> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hi all, The TI dmtimer has been using a custom API to expose some hardware timer features for PWM and remoteproc so far with struct omap_dm_timer_ops. It seems that for most part we can nowadays replace most of the custom API with chained interrupts and clock provider features. There are lots of the dmtimer instances on TI SoCs, some have tens of them. Some timers have an IO pad available, which means the timers could be used as clock output for an external device with a 50% duty cycle. The timers also have input capture capability, but that is not currently supported. There have been some patches posted earlier for the PWM capture support though. These patches are against v6.1-rc2, and need also the following pending patch: [PATCH] clocksource/drivers/timer-ti-dm: Clear settings on probe and free For am6, these patches depend on the pending dts changes posted earlier: [PATCH v3 0/2] Configure dmtimers for am65 [PATCH 1/2] arm64: dts: ti: k3-am62: Add general purpose timers for am62 I have only lightly tested this so far to make sure I get clock output on k3-am625-sk on TIMER_IO2 at user expansion connector pin 10. I have not worried at all so far about disabling the legacy API if used with interrupts and clock framework. Regards, Tony Tony Lindgren (3): clocksource/drivers/timer-ti-dm: Add lock for register access clocksource/drivers/timer-ti-dm: Implement chained irq clocksource/drivers/timer-ti-dm: Add clock provider support drivers/clocksource/timer-ti-dm.c | 591 +++++++++++++++++++++++++++++- drivers/pwm/pwm-omap-dmtimer.c | 1 + include/clocksource/timer-ti-dm.h | 2 + 3 files changed, 578 insertions(+), 16 deletions(-)