From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/11] mfd: add the Berlin controller driver
Date: Wed, 18 Feb 2015 15:06:02 +0000 [thread overview]
Message-ID: <20150218150602.GE22296@x1> (raw)
In-Reply-To: <54E48EF0.4050807@gmail.com>
On Wed, 18 Feb 2015, Sebastian Hesselbarth wrote:
> On 02/18/2015 12:58 PM, Lee Jones wrote:
> >I do agree that using 'simple-bus' to describe only this IP would be
> >an abuse. However, my foundation thought/argument is unchanged. This
> >'driver' is a hack. It has no functional use besides to work around a
> >problem of semantics and as such has no place in MFD.
>
> Lee,
>
> sorry I don't get it. Here you say that using simple-bus is an abuse...
>
> >Back onto the simple-bus theme, as this is a syscon device it is a bus
> >of sorts. Have you thought about making it a child of your its syscon
> >node, then using simple-bus to get the OF framework to register the
> >child devices?
>
> ... and here you suggest to use simple-bus to register the child
> devices?
Nope, that's not what I said:
"I do agree that using 'simple-bus' to describe *ONLY THIS IP* would
be an abuse."
... although I believe there is a need to treat syscon devices as
simple buses. There are examples of devices doing this already:
git grep -El 'syscon.*simple-bus' next/master
next/master:arch/arm/boot/dts/imx6qdl.dtsi
next/master:arch/arm/boot/dts/imx6sl.dtsi
next/master:arch/arm/boot/dts/imx6sx.dtsi
next/master:arch/arm/boot/dts/zynq-7000.dtsi
> I fundamentally disagree that either this registers or syscon in general
> should in any way be seen as a bus. The chip control registers is an
> highly unsorted bunch of bits that we try to match with cleanly
> separated subsystems. This makes it a resource but no bus of any sort.
This is where my comment about semantics comes into play. syscon may
not be a bus is the truest sense; however, this is clearly a
requirement for sub devices to be probed in the same way a simple-bus
is currently. So we're just missing a framework somewhere. We can
fix that.
> The problem that we try to solve here is not a DT problem but solely
> driven by the fact that we need something to register platform_devices
> for pinctrl and reset. The unit we describe in DT is a pinctrl-clock-
> power-reset-unit - or short chip control.
I agree with the last part, but this is a DT problem. It lacks the
functionality to be able to cleanly register these types of
(sub-)devices. Devices which, in my opinion should be described
inside the parent syscon node.
> If you argue that mfd is not the right place for this "driver" we'll
> have to find a different place for it. I remember Mike has no problem
> with extending early probed clock drivers to register additional
> platform_devices - so I guess we end up putting it in there ignoring
> mfd's ability to do it for us.
My argument is not that this fake driver doesn't belong in MFD, it's
that it doesn't belong. That includes shoving it in drivers/clk. I
will be only too happy to have a chat with Mike and provide him with
my reasons why.
What I think we should do however, it write some framework code which
can neatly handle these use-cases, which may just be a case of:
s/of_platform_bus_probe/of_platform_subdevice_probe/
... obviously I'm oversimplifying by quite some margin, but I'm sure
you catch my drift.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Antoine Tenart <antoine.tenart@free-electrons.com>,
sameo@linux.intel.com, jszhang@marvell.com, zmxu@marvell.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, arnd@arndb.de
Subject: Re: [PATCH 01/11] mfd: add the Berlin controller driver
Date: Wed, 18 Feb 2015 15:06:02 +0000 [thread overview]
Message-ID: <20150218150602.GE22296@x1> (raw)
In-Reply-To: <54E48EF0.4050807@gmail.com>
On Wed, 18 Feb 2015, Sebastian Hesselbarth wrote:
> On 02/18/2015 12:58 PM, Lee Jones wrote:
> >I do agree that using 'simple-bus' to describe only this IP would be
> >an abuse. However, my foundation thought/argument is unchanged. This
> >'driver' is a hack. It has no functional use besides to work around a
> >problem of semantics and as such has no place in MFD.
>
> Lee,
>
> sorry I don't get it. Here you say that using simple-bus is an abuse...
>
> >Back onto the simple-bus theme, as this is a syscon device it is a bus
> >of sorts. Have you thought about making it a child of your its syscon
> >node, then using simple-bus to get the OF framework to register the
> >child devices?
>
> ... and here you suggest to use simple-bus to register the child
> devices?
Nope, that's not what I said:
"I do agree that using 'simple-bus' to describe *ONLY THIS IP* would
be an abuse."
... although I believe there is a need to treat syscon devices as
simple buses. There are examples of devices doing this already:
git grep -El 'syscon.*simple-bus' next/master
next/master:arch/arm/boot/dts/imx6qdl.dtsi
next/master:arch/arm/boot/dts/imx6sl.dtsi
next/master:arch/arm/boot/dts/imx6sx.dtsi
next/master:arch/arm/boot/dts/zynq-7000.dtsi
> I fundamentally disagree that either this registers or syscon in general
> should in any way be seen as a bus. The chip control registers is an
> highly unsorted bunch of bits that we try to match with cleanly
> separated subsystems. This makes it a resource but no bus of any sort.
This is where my comment about semantics comes into play. syscon may
not be a bus is the truest sense; however, this is clearly a
requirement for sub devices to be probed in the same way a simple-bus
is currently. So we're just missing a framework somewhere. We can
fix that.
> The problem that we try to solve here is not a DT problem but solely
> driven by the fact that we need something to register platform_devices
> for pinctrl and reset. The unit we describe in DT is a pinctrl-clock-
> power-reset-unit - or short chip control.
I agree with the last part, but this is a DT problem. It lacks the
functionality to be able to cleanly register these types of
(sub-)devices. Devices which, in my opinion should be described
inside the parent syscon node.
> If you argue that mfd is not the right place for this "driver" we'll
> have to find a different place for it. I remember Mike has no problem
> with extending early probed clock drivers to register additional
> platform_devices - so I guess we end up putting it in there ignoring
> mfd's ability to do it for us.
My argument is not that this fake driver doesn't belong in MFD, it's
that it doesn't belong. That includes shoving it in drivers/clk. I
will be only too happy to have a chat with Mike and provide him with
my reasons why.
What I think we should do however, it write some framework code which
can neatly handle these use-cases, which may just be a case of:
s/of_platform_bus_probe/of_platform_subdevice_probe/
... obviously I'm oversimplifying by quite some margin, but I'm sure
you catch my drift.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2015-02-18 15:06 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 16:15 [PATCH 00/11] ARM: berlin: refactor chip and system controllers Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 01/11] mfd: add the Berlin controller driver Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-16 12:48 ` Lee Jones
2015-02-16 12:48 ` Lee Jones
2015-02-17 9:20 ` Antoine Tenart
2015-02-17 9:20 ` Antoine Tenart
2015-02-17 11:54 ` Lee Jones
2015-02-17 11:54 ` Lee Jones
2015-02-18 8:40 ` Antoine Tenart
2015-02-18 8:40 ` Antoine Tenart
2015-02-18 9:09 ` Lee Jones
2015-02-18 9:09 ` Lee Jones
2015-02-18 9:22 ` Antoine Tenart
2015-02-18 9:22 ` Antoine Tenart
2015-02-18 10:40 ` Lee Jones
2015-02-18 10:40 ` Lee Jones
2015-02-18 10:51 ` Antoine Tenart
2015-02-18 10:51 ` Antoine Tenart
2015-02-18 11:10 ` Sebastian Hesselbarth
2015-02-18 11:10 ` Sebastian Hesselbarth
2015-02-18 11:58 ` Lee Jones
2015-02-18 11:58 ` Lee Jones
2015-02-18 13:09 ` Sebastian Hesselbarth
2015-02-18 13:09 ` Sebastian Hesselbarth
2015-02-18 15:06 ` Lee Jones [this message]
2015-02-18 15:06 ` Lee Jones
2015-02-18 15:07 ` Lee Jones
2015-02-18 15:07 ` Lee Jones
2015-02-18 15:06 ` Arnd Bergmann
2015-02-18 15:06 ` Arnd Bergmann
2015-02-18 15:59 ` Sebastian Hesselbarth
2015-02-18 15:59 ` Sebastian Hesselbarth
2015-02-18 16:15 ` Arnd Bergmann
2015-02-18 16:15 ` Arnd Bergmann
2015-02-18 16:26 ` Lee Jones
2015-02-18 16:26 ` Lee Jones
2015-02-18 10:27 ` Sebastian Hesselbarth
2015-02-18 10:27 ` Sebastian Hesselbarth
2015-02-11 16:15 ` [PATCH 02/11] Documentation: bindings: add the Berlin controller documentation Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 03/11] ARM: berlin: select MFD_BERLIN_CTRL Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 04/11] reset: berlin: convert to a platform driver Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 05/11] Documentation: bindings: move the Berlin reset documentation Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 06/11] pinctrl: berlin: use the regmap provided by syscon Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-03-05 9:38 ` Linus Walleij
2015-03-05 9:38 ` Linus Walleij
2015-02-11 16:15 ` [PATCH 07/11] pinctrl: berlin: use proper compatibles Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-03-05 9:39 ` Linus Walleij
2015-03-05 9:39 ` Linus Walleij
2015-02-11 16:15 ` [PATCH 08/11] Documentation: bindings: move the Berlin pinctrl documentation Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-03-05 9:41 ` Linus Walleij
2015-03-05 9:41 ` Linus Walleij
2015-02-11 16:15 ` [PATCH 09/11] ARM: berlin: rework chip and system controller nodes for BG2 Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-18 10:29 ` Sebastian Hesselbarth
2015-02-18 10:29 ` Sebastian Hesselbarth
2015-02-18 10:33 ` Antoine Tenart
2015-02-18 10:33 ` Antoine Tenart
2015-02-18 10:35 ` Sebastian Hesselbarth
2015-02-18 10:35 ` Sebastian Hesselbarth
2015-02-11 16:15 ` [PATCH 10/11] ARM: berlin: rework chip and system controller nodes for BG2CD Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
2015-02-11 16:15 ` [PATCH 11/11] ARM: berlin: rework chip and system controller nodes for BG2Q Antoine Tenart
2015-02-11 16:15 ` Antoine Tenart
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=20150218150602.GE22296@x1 \
--to=lee.jones@linaro.org \
--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 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.