devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Graeme Gregory <gg@slimlogic.co.uk>
Cc: Laxman Dewangan <ldewangan@nvidia.com>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	"balbi@ti.com" <balbi@ti.com>, Rajendra Nayak <rnayak@ti.com>,
	"grant.likely@secretlab.ca" <grant.likely@secretlab.ca>,
	"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
	"rob@landley.net" <rob@landley.net>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"s-guiriec@ti.com" <s-guiriec@ti.com>,
	"sameo@linux.intel.com" <sameo@linux.intel.com>,
	"broonie@opensource.wolfsonmicro.com"
	<broonie@opensource.wolfsonmicro.com>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	Ian Lartey <ian@slimlogic.co.uk>
Subject: Re: [PATCH v3] USB: PHY: Palmas USB Transceiver Driver
Date: Tue, 26 Mar 2013 14:23:24 -0600	[thread overview]
Message-ID: <515203BC.7010003@wwwdotorg.org> (raw)
In-Reply-To: <5151D37A.4020300@slimlogic.co.uk>

On 03/26/2013 10:57 AM, Graeme Gregory wrote:
> On 26/03/13 16:22, Stephen Warren wrote:
>> On 03/26/2013 03:27 AM, Graeme Gregory wrote:
>> ...
>>> If we are tightly coupling as above then using platform_irq is an extra
>>> inefficiency. You both have to populate this then parse it afterwards.
>>> Why not just use the regmap helper? Ill admit this code is like this as
>>> there was a period where platform irqs in DT just was not working right!
>>>
>>> We should really agree now if we are going for loose or tight coupling
>>> now rather than keep switching?
>> Yes, this is something that I think needs to be fully resolved before
>> any more Palmas patches are discussed.
>>
>> So you can have the MFD components fully coupled or completely
>> standalone. We should fully pick one or the other, not some mish-mash of
>> the two.
>>
>> In practical terms, this means that:
>>
>> a) Tightly coupled
>>
>> The top-level MFD device knows exactly which child devices are present.
>> It has an internal table to defined the set of child devices, and
>> instantiate them. It provides them with IRQs, I2C addresses and register
>> base addresses (or regmaps), etc. etc., using purely Palmas-internal
>> APIs. If using device tree, the DT won't include any representation of
>> which child devices are present, nor their I2C addresses, nor their
>> register addresses, nor their IRQs, etc. That's all inside the driver.
>>
>> b) Completely decoupled.
>>
>> The top-level MFD device knows nothing about its children. It simply
>> provides a bus into which they can be instantiated, and a generic IRQ
>> controller into which they can hook.
>>
>> Platform data or device tree is solely used to define which children
>> exist, which of the top-level MFD's I2C addresses is used for each
>> child, the base register address for each child device, the IRQs used by
>> each child device, etc.
>>
>>
>> Which of those two models are different people expecting?
>>
>> (b) appears to be the most flexible, and since you have defined the DT
>> bindings to contain a separate node for each MFD child device, each with
>> its own compatible value, seems to be what you're aiming for. In this
>> scenario, there should be no private APIs between the top-level MFD
>> device and the children though; everything should be using standard bus
>> APIs.
>
> I was aiming towards (b) which would allow drivers for IP blocks that I
> know are shared between multiple devices such as RTC which is shared by
> twl6030, twl6032, tps80032, tps65910, tps65911, tps65912, tps80035,
> tps80036 and probably many more.
> 
> Finishing (b) implementation is currently beyond the time I have
> available I think.
> 
> If we choose to ignore path (b) and ignore the code duplication of half
> a dozen RTC drivers for the same IP than the path to (a) is much quicker
> and easier. Can just rip out a lot of the DT stuff, use mfd_add_devices.
> Makes the binding much simpler. Means we don't have to use platform
> resources for IRQs. Makes palmas and palmas-charger just 2 black boxes
> which is in line with other MFDs.
> 
> So I think I have come around to just do it the easy way and select (a)
> 
> I shall work on the main palmas series to implement (a).
> 
> This will obviously invalidate some comments on this patch and the main
> series.

Well, my question was more directed at which way we want to model the HW
in the device tree, rather than how we want to implement the driver. The
driver implementation style might end up being derived from the DT
structure, but it shouldn't be the other way around.

I think if people think (b) is the right way to go, we should just do
it, and ignore any time issues; if it takes a while to get it right
upstream, what is the issue with that?

  reply	other threads:[~2013-03-26 20:23 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-07 13:21 [PATCH v2 0/4] usb: added palmas-usb driver and a few misc fixes Kishon Vijay Abraham I
     [not found] ` <1362662506-14823-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-07 13:21   ` [PATCH v2 1/4] usb: dwc3: set dma_mask for dwc3_omap device Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 2/4] usb: dwc3: dwc3-omap: return -EPROBE_DEFER if probe has not yet executed Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 3/4] USB: Palmas OTG Transceiver Driver Kishon Vijay Abraham I
     [not found]   ` <1362662506-14823-4-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-14 13:56     ` Felipe Balbi
2013-03-14 14:53       ` kishon
2013-03-25  9:32     ` [PATCH v3] USB: PHY: Palmas USB " Kishon Vijay Abraham I
     [not found]       ` <1364203926-24488-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-25  9:46         ` Laxman Dewangan
2013-03-26  6:03           ` Kishon Vijay Abraham I
2013-03-26  9:01             ` Graeme Gregory
2013-03-26  9:12               ` Laxman Dewangan
2013-03-26  9:27                 ` Graeme Gregory
2013-03-26  9:34                   ` Laxman Dewangan
2013-03-26  9:51                     ` Graeme Gregory
2013-03-26 11:28                       ` Laxman Dewangan
     [not found]                   ` <51516A10.40704-kDsPt+C1G03kYMGBc/C6ZA@public.gmane.org>
2013-03-26 16:22                     ` Stephen Warren
2013-03-26 16:57                       ` Graeme Gregory
2013-03-26 20:23                         ` Stephen Warren [this message]
2013-03-27 11:03                           ` Graeme Gregory
2013-03-26 10:21               ` Felipe Balbi
2013-03-26 10:28                 ` Laxman Dewangan
     [not found]                   ` <51517859.2020407-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-03-26 12:07                     ` Felipe Balbi
2013-03-26 16:14                   ` Stephen Warren
2013-03-26 10:19             ` Felipe Balbi
2013-05-06 13:17     ` [PATCH v4] extcon: Palmas Extcon Driver Kishon Vijay Abraham I
2013-05-06 14:26       ` Laxman Dewangan
2013-05-07  5:06         ` Kishon Vijay Abraham I
2013-05-06 14:40       ` Mark Brown
2013-05-07  5:12         ` Kishon Vijay Abraham I
     [not found]           ` <51888D55.3090907-l0cyMroinI0@public.gmane.org>
2013-05-07  7:58             ` Mark Brown
2013-05-07  9:47               ` Kishon Vijay Abraham I
2013-05-07  9:49                 ` Graeme Gregory
2013-05-07 10:45                 ` Mark Brown
2013-05-14  9:18                   ` Kishon Vijay Abraham I
2013-05-14  9:54                     ` Graeme Gregory
2013-05-14 18:43                       ` Laxman Dewangan
2013-05-07  0:43       ` myungjoo.ham
2013-05-07  5:21         ` Kishon Vijay Abraham I
2013-05-22  6:23           ` Kishon Vijay Abraham I
2013-05-07  6:10       ` Chanwoo Choi
2013-05-07  6:25         ` Kishon Vijay Abraham I
2013-05-07  6:57           ` Chanwoo Choi
2013-05-07  7:05             ` Chanwoo Choi
     [not found]               ` <5188A7BE.4080509-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-05-07  8:17                 ` Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 4/4] usb: musb: omap2430: replace *_* with *-* in property names Kishon Vijay Abraham I
2013-03-14 13:57   ` Felipe Balbi

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=515203BC.7010003@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=balbi@ti.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=gg@slimlogic.co.uk \
    --cc=grant.likely@secretlab.ca \
    --cc=gregkh@linuxfoundation.org \
    --cc=ian@slimlogic.co.uk \
    --cc=kishon@ti.com \
    --cc=ldewangan@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=rnayak@ti.com \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=s-guiriec@ti.com \
    --cc=sameo@linux.intel.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 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).