From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934106AbbI2Q0P (ORCPT ); Tue, 29 Sep 2015 12:26:15 -0400 Received: from smtp2-g21.free.fr ([212.27.42.2]:23579 "EHLO smtp2-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933020AbbI2Q0E (ORCPT ); Tue, 29 Sep 2015 12:26:04 -0400 To: LKML Cc: Daniel Lezcano , Thomas Gleixner From: Mason Subject: Trivial clocksource driver Message-ID: <560ABB95.8000404@free.fr> Date: Tue, 29 Sep 2015 18:25:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 SeaMonkey/2.35 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello everyone, I am trying to submit a new ARM port, and Arnd pointed out that the clocksource code could not live in arch/arm/$PLATFORM, but had to move to drivers/clocksource (and it had to support DT). Did I understand correctly? Is this the right place to submit code as provided below? Regards. #include /* register_current_timer_delay */ #include /* clocksource_register_hz */ #include /* sched_clock_register */ #include /* of_iomap */ #include /* of_clk_get, clk_get_rate */ static void __iomem *xtal_in_cnt; static struct delay_timer delay_timer; static unsigned long read_xtal_counter(void) { return readl_relaxed(xtal_in_cnt); } static u64 read_sched_clock(void) { return read_xtal_counter(); } static cycle_t read_clocksource(struct clocksource *cs) { return read_xtal_counter(); } static struct clocksource tango_xtal = { .name = "tango-xtal", .rating = 350, .read = read_clocksource, .mask = CLOCKSOURCE_MASK(32), .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; static void __init tango_clksrc_init(struct device_node *np) { struct clk *clk = of_clk_get(np, 0); unsigned int xtal_freq = clk_get_rate(clk); xtal_in_cnt = of_iomap(np, 0); delay_timer.freq = xtal_freq; delay_timer.read_current_timer = read_xtal_counter; register_current_timer_delay(&delay_timer); sched_clock_register(read_sched_clock, 32, xtal_freq); clocksource_register_hz(&tango_xtal, xtal_freq); } CLOCKSOURCE_OF_DECLARE(tango, "sigma,xtal_in_cnt", tango_clksrc_init);