From: viresh.kumar@st.com (Viresh KUMAR)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/11] ST SPEAr: Added basic header files for SPEAr platform
Date: Wed, 10 Mar 2010 12:02:22 +0530 [thread overview]
Message-ID: <4B973CF6.4030009@st.com> (raw)
In-Reply-To: <63386a3d1003092140o67a6c943rdee3a6c905cea7ef@mail.gmail.com>
Linus,
On 3/10/2010 11:10 AM, Linus Walleij wrote:
> 2010/3/3 Viresh KUMAR <viresh.kumar@st.com>:
>
>> arch/arm/plat-spear/include/plat/gpt.h | 108 ++++++++++++++++++++++++++++++++
>
> If this file is only supposed to be used from plat-spear/time.c, move it down
> into plat-spear/gpt.h and #include "gpt.h" so noone else will
> accidentally use it.
GPT's on SPEAr can be used from time.c, platform specific drivers and machine
specific drivers or any driver wishing to use hardware timer.
In first two cases "gpt.h" will work, but in rest of cases we need gpt.h to be
in plat-spear/include/plat
Is it okay?
>
>> (...)
>>
>> +#ifndef __ASM_PLAT_GPT_H
>> +#define __ASM_PLAT_GPT_H
>
> This file to macro match i.e. __PLAT_GPT_H again I think...
> (But see below.)
will be changed
>
>> +
>> +/* register offsets */
>> +#define GPT_CTRL_OFF 0x80 /* Control Register */
>> +#define GPT_INT_OFF 0x84 /* Interrupt Regiset */
>> +#define GPT_LOAD_OFF 0x88 /* Load Register */
>> +#define GPT_COUNT_OFF 0x8C /* Current Count Register */
>
> Some people want you to do all the indentation e.g. between
> GPT_CTRL_OFF -> 0x80 with TABs only, and I tend to do that
> to keep everybody happy. (This would go for all .h files with
> register definitions.
>
I have done it the way you said. I don't know what happened to
formatting, even if i see my original patchset, i see tabs and no
spaces. I will take care of this in next version of patchset too.
>> +
>> + * Following functions are exported by gpt.c which can be used by other
>> + * kernel entities
>> + */
>> +int spear_timer_init(struct spear_timer *, int);
>> +
>> +struct spear_timer *spear_timer_request(void);
>> +struct spear_timer *spear_timer_request_specific(int id);
>> +
>> +int spear_timer_free(struct spear_timer *timer);
>> +int spear_timer_enable(struct spear_timer *timer);
>> +int spear_timer_disable(struct spear_timer *timer);
>> +
>> +int spear_timer_get_irq(struct spear_timer *timer);
>> +
>> +struct clk *spear_timer_get_fclk(struct spear_timer *timer);
>> +
>> +int spear_timer_start(struct spear_timer *timer);
>> +int spear_timer_stop(struct spear_timer *timer);
>> +
>> +int spear_timer_set_source(struct spear_timer *timer, int source);
>> +int spear_timer_set_load(struct spear_timer *timer, int autoreload,
>> + u16 value);
>> +int spear_timer_set_load_start(struct spear_timer *timer, int autoreload,
>> + u16 value);
>> +int spear_timer_match_irq(struct spear_timer *timer, int enable);
>> +int spear_timer_set_prescaler(struct spear_timer *timer, int prescaler);
>> +
>> +int spear_timer_read_status(struct spear_timer *timer);
>> +int spear_timer_clear_status(struct spear_timer *timer, u16 value);
>> +
>> +int spear_timer_read_counter(struct spear_timer *timer);
>> +
>> +int spear_timer_active(struct spear_timer *);
>
> Am I right in assuming that this will only ever be used from the plat/timer.c
> file?
This will be used by any module looking to use hardware timer.
>
> I would contemplate moving away the abstraction API altogether and put
> everything into timer.c, and just hardcode in the timers you're using as
> clocksource and clock event, and put the register definitions and
> offsets from base there as well. This will get down the number of files
> and reduce the forest of files in a nice way.
>
> If you have some other use of timers that you're planning, the API may
> be justified, please detail the uses you have in mind in that case.
>
> I know writing APIs is great fun, but sometimes it's easier to read the
> code if you just get rid of them and keep things simple...
>
Explained earlier.
viresh kumar
next prev parent reply other threads:[~2010-03-10 6:32 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-03 5:07 [PATCH 00/11] Adding Support for SPEAr Platform under ARM architecture Viresh KUMAR
2010-03-03 5:07 ` [PATCH 01/11] ST SPEAr: Added ARM PrimeXsys System Controller SP810 header file Viresh KUMAR
2010-03-03 5:07 ` [PATCH 02/11] ST SPEAr: Added basic header files for SPEAr3xx machine family Viresh KUMAR
2010-03-03 5:07 ` [PATCH 03/11] ST SPEAr: Added basic header files for SPEAr6xx " Viresh KUMAR
2010-03-03 5:07 ` [PATCH 04/11] ST SPEAr: Added basic header files for SPEAr platform Viresh KUMAR
2010-03-03 5:07 ` [PATCH 05/11] ST SPEAr: Added clock framework for SPEAr platform and machines Viresh KUMAR
2010-03-03 5:07 ` [PATCH 06/11] ST SPEAr: Added source files for SPEAr platform Viresh KUMAR
2010-03-03 5:07 ` [PATCH 07/11] ST SPEAr: Added source files for SPEAr3xx machine family Viresh KUMAR
2010-03-03 5:07 ` [PATCH 08/11] ST SPEAr: Added source files for SPEAr6xx " Viresh KUMAR
2010-03-03 5:07 ` [PATCH 09/11] ST SPEAr: Added support for SPEAr platform and machines in arch/arm/ Viresh KUMAR
2010-03-03 5:07 ` [PATCH 10/11] ST SPEAr: Added default configuration files for SPEAr machines Viresh KUMAR
2010-03-03 5:07 ` [PATCH 11/11] ST SPEAr: Updated Maintainers and added Documentation/arm/SPEAr Viresh KUMAR
2010-03-11 20:18 ` [PATCH 10/11] ST SPEAr: Added default configuration files for SPEAr machines Linus Walleij
2010-03-11 20:26 ` Russell King - ARM Linux
2010-03-12 4:12 ` Viresh KUMAR
2010-03-09 6:46 ` [PATCH 07/11] ST SPEAr: Added source files for SPEAr3xx machine family Linus Walleij
2010-03-09 7:05 ` Viresh KUMAR
2010-03-10 5:15 ` Linus Walleij
2010-03-10 6:10 ` viresh kumar
2010-03-11 10:41 ` Russell King - ARM Linux
2010-03-12 5:19 ` Viresh KUMAR
2010-03-11 11:22 ` [PATCH 06/11] ST SPEAr: Added source files for SPEAr platform Linus Walleij
2010-03-11 7:00 ` [PATCH 05/11] ST SPEAr: Added clock framework for SPEAr platform and machines Linus Walleij
2010-03-11 10:18 ` Shiraz HASHIM
2010-03-12 8:46 ` Linus Walleij
2010-03-12 4:19 ` Viresh KUMAR
2010-03-11 10:28 ` Russell King - ARM Linux
2010-03-12 4:22 ` Viresh KUMAR
2010-03-10 5:40 ` [PATCH 04/11] ST SPEAr: Added basic header files for SPEAr platform Linus Walleij
2010-03-10 6:32 ` Viresh KUMAR [this message]
2010-03-10 9:31 ` Linus Walleij
2010-03-10 10:11 ` Viresh KUMAR
2010-03-10 14:16 ` Paul Mundt
2010-03-10 16:36 ` Thomas Gleixner
2010-03-10 22:16 ` Tony Lindgren
2010-03-10 23:29 ` Paul Mundt
2010-03-10 23:42 ` Thomas Gleixner
2010-03-11 6:43 ` Linus Walleij
2010-03-11 9:47 ` Shiraz HASHIM
2010-03-11 11:26 ` Linus Walleij
2010-03-09 20:42 ` [PATCH 02/11] ST SPEAr: Added basic header files for SPEAr3xx machine family Linus Walleij
2010-03-10 6:01 ` Viresh KUMAR
2010-03-10 6:07 ` Linus Walleij
2010-03-11 10:33 ` Russell King - ARM Linux
2010-03-12 4:39 ` Viresh KUMAR
2010-03-09 20:14 ` [PATCH 01/11] ST SPEAr: Added ARM PrimeXsys System Controller SP810 header file Linus Walleij
2010-03-10 5:09 ` Viresh KUMAR
2010-03-11 10:45 ` Russell King - ARM Linux
2010-03-12 5:19 ` Viresh KUMAR
2010-03-07 15:54 ` [PATCH 00/11] Adding Support for SPEAr Platform under ARM architecture viresh kumar
2010-03-08 13:48 ` Armando VISCONTI
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=4B973CF6.4030009@st.com \
--to=viresh.kumar@st.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).