All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cousson, Benoit" <b-cousson@ti.com>
To: Paul Walmsley <paul@pwsan.com>
Cc: "Kristo, Tero" <t-kristo@ti.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv9 03/18] TEMP: OMAP3xxx: hwmod data: add PRM hwmod
Date: Thu, 20 Oct 2011 16:51:14 +0200	[thread overview]
Message-ID: <4EA03562.7000309@ti.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1110131047110.24155@utopia.booyaka.com>

On 10/13/2011 6:51 PM, Paul Walmsley wrote:
> On Thu, 13 Oct 2011, Paul Walmsley wrote:
>
>> On Wed, 12 Oct 2011, Cousson, Benoit wrote:
>>
>>> On 10/11/2011 1:26 AM, Paul Walmsley wrote:
>>>> On Tue, 11 Oct 2011, Cousson, Benoit wrote:
>>>>
>>>>> In fact the device name does not have to match the hwmod name. So we
>>>>> can just create an "omap2_prm" omap_device for OMAP2, "omap3_prm"
>>>>> omap_device for OMAP3... That will allow the relevant PRM driver to
>>>>> be bound to the proper device.
>>>>
>>>> Incidentally, given that we would be using the hwmod name and the version
>>>> number to determine the appropriate omap_device name, what IP version
>>>> numbers should we assign to these PRM IP blocks for different SoCs?
>>>
>>> It can just be 1, 2 and 3... The idea is just to differentiate the IP for each
>>> OMAP.
>>
>> So those are basically arbitrary?  Something is not clear here.
>>
>> In the current hwmod design, IP blocks with different interfaces were
>> intended to be uniquely identified by the hwmod name alone.  That is why
>> omap_hwmod_lookup() only takes a 'name' parameter.
>>
>> If I understand what you want to do, you wish to change this to uniquely
>> identify them by a (name, interface version number) tuple.
>>
>> I don't have a problem with this in theory, but it implies some changes to
>> the existing model.  Specifically:
>>
>> - we'll need to add an interface version number to the struct omap_hwmod
>>
>> - we'll need to modify omap_hwmod_lookup() to take an interface version
>> number
>>
>> - the "ti,hwmod" DT binding that you proposed earlier will need to include
>> an interface version number
>
> Hmm, reflecting on this further, is your intention to bind drivers to
> hwmods by the struct omap_hwmod_class instead?

Well, somehow, the class was added for that purpose, to allow one timer 
driver to bind to 2 different hwmods. But in that case the device name 
was the same.

> If we define that "rev" field as the interface version number, that should
> probably work.
>
> So then in C struct format, in a platform_device system, the mapping table
> would basically become
>
> struct omap_hwmod_driver_map {
> 	const char *class_name;
> 	const u32 class_rev;
> 	const char *platform_device_name;
> }

This is needed if and only if you want to have a different driver for 
the same IP.

In the case of the timer, we do have only one device name and one driver:
class=timer, rev=1, device=omap_timer
class=timer, rev=2, device=omap_timer

Regards,
Benoit

WARNING: multiple messages have this Message-ID (diff)
From: b-cousson@ti.com (Cousson, Benoit)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv9 03/18] TEMP: OMAP3xxx: hwmod data: add PRM hwmod
Date: Thu, 20 Oct 2011 16:51:14 +0200	[thread overview]
Message-ID: <4EA03562.7000309@ti.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1110131047110.24155@utopia.booyaka.com>

On 10/13/2011 6:51 PM, Paul Walmsley wrote:
> On Thu, 13 Oct 2011, Paul Walmsley wrote:
>
>> On Wed, 12 Oct 2011, Cousson, Benoit wrote:
>>
>>> On 10/11/2011 1:26 AM, Paul Walmsley wrote:
>>>> On Tue, 11 Oct 2011, Cousson, Benoit wrote:
>>>>
>>>>> In fact the device name does not have to match the hwmod name. So we
>>>>> can just create an "omap2_prm" omap_device for OMAP2, "omap3_prm"
>>>>> omap_device for OMAP3... That will allow the relevant PRM driver to
>>>>> be bound to the proper device.
>>>>
>>>> Incidentally, given that we would be using the hwmod name and the version
>>>> number to determine the appropriate omap_device name, what IP version
>>>> numbers should we assign to these PRM IP blocks for different SoCs?
>>>
>>> It can just be 1, 2 and 3... The idea is just to differentiate the IP for each
>>> OMAP.
>>
>> So those are basically arbitrary?  Something is not clear here.
>>
>> In the current hwmod design, IP blocks with different interfaces were
>> intended to be uniquely identified by the hwmod name alone.  That is why
>> omap_hwmod_lookup() only takes a 'name' parameter.
>>
>> If I understand what you want to do, you wish to change this to uniquely
>> identify them by a (name, interface version number) tuple.
>>
>> I don't have a problem with this in theory, but it implies some changes to
>> the existing model.  Specifically:
>>
>> - we'll need to add an interface version number to the struct omap_hwmod
>>
>> - we'll need to modify omap_hwmod_lookup() to take an interface version
>> number
>>
>> - the "ti,hwmod" DT binding that you proposed earlier will need to include
>> an interface version number
>
> Hmm, reflecting on this further, is your intention to bind drivers to
> hwmods by the struct omap_hwmod_class instead?

Well, somehow, the class was added for that purpose, to allow one timer 
driver to bind to 2 different hwmods. But in that case the device name 
was the same.

> If we define that "rev" field as the interface version number, that should
> probably work.
>
> So then in C struct format, in a platform_device system, the mapping table
> would basically become
>
> struct omap_hwmod_driver_map {
> 	const char *class_name;
> 	const u32 class_rev;
> 	const char *platform_device_name;
> }

This is needed if and only if you want to have a different driver for 
the same IP.

In the case of the timer, we do have only one device name and one driver:
class=timer, rev=1, device=omap_timer
class=timer, rev=2, device=omap_timer

Regards,
Benoit

  reply	other threads:[~2011-10-20 14:51 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-23 12:46 [PATCHv9 00/18] omap PRCM chain handler Tero Kristo
2011-09-23 12:46 ` Tero Kristo
2011-09-23 12:46 ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 01/18] OMAP2+: hwmod: Add API to enable IO ring wakeup Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 02/18] OMAP2+: hwmod: Add API to check IO PAD wakeup status Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 03/18] TEMP: OMAP3xxx: hwmod data: add PRM hwmod Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-10-10 19:24   ` Paul Walmsley
2011-10-10 19:24     ` Paul Walmsley
2011-10-10 19:54     ` Cousson, Benoit
2011-10-10 19:54       ` Cousson, Benoit
2011-10-10 20:11       ` Paul Walmsley
2011-10-10 20:11         ` Paul Walmsley
2011-10-10 20:42       ` Paul Walmsley
2011-10-10 20:42         ` Paul Walmsley
2011-10-10 22:17         ` Cousson, Benoit
2011-10-10 22:17           ` Cousson, Benoit
2011-10-10 22:35           ` Paul Walmsley
2011-10-10 22:35             ` Paul Walmsley
2011-10-12  8:14             ` Cousson, Benoit
2011-10-12  8:14               ` Cousson, Benoit
2011-10-10 23:26           ` Paul Walmsley
2011-10-10 23:26             ` Paul Walmsley
2011-10-12  8:16             ` Cousson, Benoit
2011-10-12  8:16               ` Cousson, Benoit
2011-10-13 16:38               ` Paul Walmsley
2011-10-13 16:38                 ` Paul Walmsley
2011-10-13 16:51                 ` Paul Walmsley
2011-10-13 16:51                   ` Paul Walmsley
2011-10-20 14:51                   ` Cousson, Benoit [this message]
2011-10-20 14:51                     ` Cousson, Benoit
2011-10-20 15:25                     ` Tero Kristo
2011-10-20 15:25                       ` Tero Kristo
2011-10-20 15:25                       ` Tero Kristo
2011-10-20 14:43                 ` Cousson, Benoit
2011-10-20 14:43                   ` Cousson, Benoit
2011-09-23 12:46 ` [PATCHv9 04/18] TEMP: OMAP4xxx: " Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 05/18] mfd: omap-prm: add driver skeleton Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-11-18 21:35   ` Kevin Hilman
2011-11-18 21:35     ` Kevin Hilman
2011-09-23 12:46 ` [PATCHv9 06/18] mfd: omap-prm: added chain interrupt handler Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-11-17 22:34   ` Kevin Hilman
2011-11-17 22:34     ` Kevin Hilman
2011-11-17 22:34     ` Kevin Hilman
2011-11-18 19:18     ` Felipe Balbi
2011-11-18 19:18       ` Felipe Balbi
2011-11-21 13:10       ` Tero Kristo
2011-11-21 13:10         ` Tero Kristo
2011-11-21 13:10         ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 07/18] mfd: omap-prm: added suspend prepare and complete callbacks Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-11-18 19:02   ` Kevin Hilman
2011-11-18 19:02     ` Kevin Hilman
2011-11-18 19:02     ` Kevin Hilman
2011-11-21 13:00     ` Tero Kristo
2011-11-21 13:00       ` Tero Kristo
2011-11-21 13:00       ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 08/18] OMAP2+: mux: add support for PAD wakeup interrupts Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 09/18] omap3: pm: use prcm chain handler Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 10/18] OMAP3: pm: do not enable PRCM MPU interrupts manually Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 11/18] omap3+: add omap prm driver initialization Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 12/18] TEMP: serial: added mux support Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 13/18] TEMP: 4430sdp: use common serial init with " Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 14/18] TEMP: mux: added trace for io wkup event Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 15/18] TEMP: OMAP3: pm: remove serial resume / idle calls from idle path Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 16/18] TEMP: OMAP3: serial: made serial to work properly with PRCM chain handler Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 17/18] TEMP: OMAP: serial: remove padconf hacks Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46 ` [PATCHv9 18/18] TEMP: OMAP device: change pr_warnings to pr_debugs Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 12:46   ` Tero Kristo
2011-09-23 22:23 ` [PATCHv9 00/18] omap PRCM chain handler Valdis.Kletnieks
2011-09-23 22:23   ` Valdis.Kletnieks
2011-09-23 22:23   ` Valdis.Kletnieks at vt.edu
2011-09-24  5:24   ` Sripathy, Vishwanath
2011-09-24  5:24     ` Sripathy, Vishwanath
2011-09-24  5:55     ` Valdis.Kletnieks
2011-09-24  5:55       ` Valdis.Kletnieks
2011-09-24  5:55       ` Valdis.Kletnieks at vt.edu

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=4EA03562.7000309@ti.com \
    --to=b-cousson@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=t-kristo@ti.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.