devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Cc: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Boris Brezillon
	<boris-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Mike Turquette
	<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Emilio Lopez <emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org>,
	Linux Media Mailing List
	<linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-arm-kernel
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: [PATCH 3/9] clk: sunxi: Add prcm mod0 clock driver
Date: Wed, 03 Dec 2014 10:49:20 +0100	[thread overview]
Message-ID: <547EDCA0.4040805@redhat.com> (raw)
In-Reply-To: <20141202154524.GD30256@lukather>

Hi,

On 12/02/2014 04:45 PM, Maxime Ripard wrote:

 >> Ok, so thinking more about this, I'm still convinced that the MFD
>> framework is only getting in the way here.
>
> You still haven't said of what exactly it's getting in the way of.

Of using of_clk_define to bind to the mod0 clk in the prcm, because the
ir_clk node does not have its own reg property when the mfd framework is
used and of_clk_define requires the node to have its own reg property.

>> But I can see having things represented in devicetree properly, with
>> the clocks, etc. as child nodes of the prcm being something which we
>> want.
>
> Clocks and reset are the only thing set so far, because we need
> reference to them from the DT itself, nothing more.
>
> We could very much have more devices instatiated from the MFD itself.
>
>> So since all we are using the MFD for is to instantiate platform
>> devices under the prcm nodes, and assign an io resource for the regs
>> to them, why not simply make the prcm node itself a simple-bus.
>
> No, this is really not a bus. It shouldn't be described at all as
> such. It is a device, that has multiple functionnalities in the system
> => MFD. It really is that simple.

Ok, I can live with that, but likewise the clocks node is not a bus either!

So it should not have a simple-bus compatible either, and as such we cannot
simply change the mod0 driver from of_clk_define to a platform driver because
then we need to instantiate platform devs for the mod0 clock nodes, which
means making the clock node a simple-bus.

I can see your logic in wanting the ir_clk prcm sub-node to use the
mod0 compatible string, so how about we make the mod0 driver both
register through of_declare and as a platform driver. Note this means
that it will try to bind twice to the ir_clk node, since of_clk_declare
will cause it to try and bind there too AFAIK.

The of_clk_declare bind will fail though because there is no regs
property, so this double bind is not an issue as long as we do not
log errors on the first bind failure.

Note that the ir_clk node will still need an "ir-clk" compatible as
well for the MFD to find it and assign the proper resources to it.

But this way we will have the clk driver binding to the mod0 clk compatible,
which is what you want, while having the MFD assign resources on the
fact that it is the ir-clk node, so that things will still work if
there are multiple mod0 clks in the prcm.

>> This does everything the MFD prcm driver currently does, without
>> actually needing a specific kernel driver, and as added bonus this
>> will move the definition of the mfd function reg offsets out of the
>> kernel and into the devicetree where they belong in the first place.
>
> Which was nacked in the first place because such offsets are not
> supposed to be in the DT.
>
> Really, we have something that work here, there's no need to refactor
> it.

Ok, but that does bring us back to the original problem wrt the ir-clk,
see above for how I think we should solve this then. If you agree I
can implement the proposed fix.

Regards,

Hans

  reply	other threads:[~2014-12-03  9:49 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-20 15:55 [PATCH 0/9] sun6i / A31 ir receiver support Hans de Goede
     [not found] ` <1416498928-1300-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-20 15:55   ` [PATCH 1/9] clk: sunxi: Give sunxi_factors_register a registers parameter Hans de Goede
2014-11-21  8:35     ` Maxime Ripard
2014-11-21  8:44       ` Hans de Goede
     [not found]         ` <546EFB83.1020806-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-21 11:15           ` Maxime Ripard
2014-11-20 15:55   ` [PATCH 2/9] clk: sunxi: Make sun4i_a10_mod0_data available outside of clk-mod0.c Hans de Goede
2014-11-20 15:55   ` [PATCH 3/9] clk: sunxi: Add prcm mod0 clock driver Hans de Goede
     [not found]     ` <1416498928-1300-4-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-20 18:24       ` Chen-Yu Tsai
     [not found]         ` <CAGb2v66zoAy93mjZn+yf8zvCmkQ8AVWH92jKL-gyu90E5HLuuw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-20 19:32           ` Hans de Goede
2014-11-21  8:49       ` Maxime Ripard
2014-11-21  9:13         ` Hans de Goede
     [not found]           ` <546F0226.2040700-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-24 22:03             ` Maxime Ripard
2014-11-25  8:29               ` Hans de Goede
     [not found]                 ` <54743DE1.7020704-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-25  8:37                   ` Hans de Goede
2014-11-26 21:13                   ` Maxime Ripard
2014-11-27  8:41                     ` Hans de Goede
     [not found]                       ` <5476E3A5.4000708-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-27  9:28                         ` Chen-Yu Tsai
     [not found]                           ` <CAGb2v652m0bCdPWFF4LWwjcrCJZvnLibFPw8xXJ3Q-Ge+_-p7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-27 10:10                             ` Hans de Goede
     [not found]                               ` <5476F8AB.2000601-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-27 19:05                                 ` Maxime Ripard
2014-11-28 13:37                                   ` Hans de Goede
     [not found]                                     ` <54787A8A.6040209-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-02 15:45                                       ` Maxime Ripard
2014-12-03  9:49                                         ` Hans de Goede [this message]
     [not found]                                           ` <547EDCA0.4040805-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-07 18:08                                             ` Maxime Ripard
2014-12-08  8:19                                               ` Hans de Goede
     [not found]                                                 ` <54855EF6.1000900-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-09  8:51                                                   ` Maxime Ripard
2014-11-27 18:51                         ` Maxime Ripard
2014-11-27 16:40                     ` Boris Brezillon
2014-11-27 19:15                       ` Maxime Ripard
2014-11-20 15:55   ` [PATCH 4/9] rc: sunxi-cir: Add support for an optional reset controller Hans de Goede
2014-11-20 16:28     ` Mauro Carvalho Chehab
     [not found]       ` <20141120142831.003fb63e-+RedX5hVuTR+urZeOPWqwQ@public.gmane.org>
2014-11-21  8:51         ` Maxime Ripard
     [not found]     ` <1416498928-1300-5-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-20 23:05       ` Julian Calaby
2014-11-20 15:55   ` [PATCH 5/9] rc: sunxi-cir: Add support for the larger fifo found on sun5i and sun6i Hans de Goede
2014-11-20 16:28     ` Mauro Carvalho Chehab
2014-11-21  8:26       ` Maxime Ripard
2014-11-21  8:42         ` Hans de Goede
     [not found]           ` <546EFAE1.9050506-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-21  9:59             ` Maxime Ripard
2014-11-21 10:13               ` Hans de Goede
     [not found]                 ` <546F103D.6050004-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-23 15:47                   ` Maxime Ripard
2014-11-20 15:55   ` [PATCH 6/9] ARM: dts: sun6i: Add ir_clk node Hans de Goede
2014-11-20 15:55   ` [PATCH 7/9] ARM: dts: sun6i: Add ir node Hans de Goede
2014-11-20 15:55   ` [PATCH 8/9] ARM: dts: sun6i: Add pinmux settings for the ir pins Hans de Goede
2014-11-20 15:55   ` [PATCH 9/9] ARM: dts: sun6i: Enable ir receiver on the Mele M9 Hans de Goede

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=547EDCA0.4040805@redhat.com \
    --to=hdegoede-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=boris-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.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).