All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	"devicetree@vger.kernel.org" <devicetree@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>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	linux-usb@vger.kernel.org, Sebastian Reichel <sre@kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mark Brown <broonie@kernel.org>,
	hverkuil@xs4all.nl, tjakobi@math.uni-bielefeld.de,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting
Date: Tue, 10 May 2016 13:02:08 +0200	[thread overview]
Message-ID: <CAPDyKFq2=mqujFjvJSYxg2nVmK=OrBKLtFfb-ErNJO3Zr_LMVw@mail.gmail.com> (raw)
In-Reply-To: <20160509181829.GA19687@rob-hp-laptop>

+ Arnd

[...]

>> >> Solution
>> >> ========
>> >> This is very similar to the MMC pwrseq behavior so the idea is to:
>> >> 1. Move MMC pwrseq drivers to generic place,
>> >
>> > You can do that, but I'm going to NAK any use of pwrseq bindings outside
>> > of MMC. I think it is the wrong way to do things. The DT should describe
>>
>> Huh, I didn't know that was your view of the mmc pwrseq bindings. Why
>> didn't you NAK them before?
>
> Unfortunately, either I missed it or it was a time I couldn't spend much
> time on reviews.

Okay, I guess it's common issue among maintainers. The problem with DT
is that it gets really hard to be fixed up later. :-)

>
>> > the devices. If they happen to be "simple" then the core can walk the
>> > tree and do any setup. For example, look for "reset-gpios" and toggle
>> > that GPIO. There is no need for a special node.
>> >
>> >> 2. Extend the pwrseq-simple with regulator toggling,
>> >> 3. Add support to USB hub and port core for pwrseq,
>> >
>> > We discussed this for USB already[1] and is why we defined how to add
>> > USB child devices. The idea is not to add pwrseq to that.
>>
>> I am not familiar with the USB discussion.
>>
>> Still, let me give you some more background to the mmc pwrseq. The
>> idea from the mmc pwrseq bindings comes from the power-domain DT
>> bindings, as I thought these things were a bit related.
>> In both cases they are not directly a property of the device, but more
>> describing a HW dependency to allow the device to work.
>
> I could see this as a board level power domain. However the difference
> is we are not generally exposing internal SOC details the same way as
> board level components. Perhaps we could extend power domains to board
> level, but that is not what was done here.
>
>> One could probably use a child node instead of a phandle, but that
>> wasn't chosen back then. Of course you are the DT expert, but could
>> you perhaps tell me why a child node is better for cases like this?
>
> If there is a control path hierarchy, then we try to model that in DT
> with child nodes. In cases of SDIO and USB, there is a clear hierarchy.
> Ignoring the discovery ordering problem, we already have defined ways to
> describe GPIO connections, regulators, etc. to devices. Describing those
> things separately from the device to solve a particular issue that is
> really a kernel limitation is what I don't like.

Okay, I see.

To move forward in trying to make mmc pwrseq a generic pwrseq, could
we perhaps allow both cases?

In the mmc case, there are already deployed bindings so we need to
cope with these by using the phandle option, but for USB etc we could
force the child node option.
As long as we agree that we keep using a compatible string for the
child node as well, both options should be able to co-exist and we
should probably be able to managed them both from a common pwrseq
driver framework.

Although, I do remember from an older conversations around some of
mine submission for the mmc pwrseq code, that some people (maybe
Arnd?) wasn't keen on adding a new framework for this. Perhaps that
has changed?

Kind regards
Uffe

WARNING: multiple messages have this Message-ID (diff)
From: ulf.hansson@linaro.org (Ulf Hansson)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting
Date: Tue, 10 May 2016 13:02:08 +0200	[thread overview]
Message-ID: <CAPDyKFq2=mqujFjvJSYxg2nVmK=OrBKLtFfb-ErNJO3Zr_LMVw@mail.gmail.com> (raw)
In-Reply-To: <20160509181829.GA19687@rob-hp-laptop>

+ Arnd

[...]

>> >> Solution
>> >> ========
>> >> This is very similar to the MMC pwrseq behavior so the idea is to:
>> >> 1. Move MMC pwrseq drivers to generic place,
>> >
>> > You can do that, but I'm going to NAK any use of pwrseq bindings outside
>> > of MMC. I think it is the wrong way to do things. The DT should describe
>>
>> Huh, I didn't know that was your view of the mmc pwrseq bindings. Why
>> didn't you NAK them before?
>
> Unfortunately, either I missed it or it was a time I couldn't spend much
> time on reviews.

Okay, I guess it's common issue among maintainers. The problem with DT
is that it gets really hard to be fixed up later. :-)

>
>> > the devices. If they happen to be "simple" then the core can walk the
>> > tree and do any setup. For example, look for "reset-gpios" and toggle
>> > that GPIO. There is no need for a special node.
>> >
>> >> 2. Extend the pwrseq-simple with regulator toggling,
>> >> 3. Add support to USB hub and port core for pwrseq,
>> >
>> > We discussed this for USB already[1] and is why we defined how to add
>> > USB child devices. The idea is not to add pwrseq to that.
>>
>> I am not familiar with the USB discussion.
>>
>> Still, let me give you some more background to the mmc pwrseq. The
>> idea from the mmc pwrseq bindings comes from the power-domain DT
>> bindings, as I thought these things were a bit related.
>> In both cases they are not directly a property of the device, but more
>> describing a HW dependency to allow the device to work.
>
> I could see this as a board level power domain. However the difference
> is we are not generally exposing internal SOC details the same way as
> board level components. Perhaps we could extend power domains to board
> level, but that is not what was done here.
>
>> One could probably use a child node instead of a phandle, but that
>> wasn't chosen back then. Of course you are the DT expert, but could
>> you perhaps tell me why a child node is better for cases like this?
>
> If there is a control path hierarchy, then we try to model that in DT
> with child nodes. In cases of SDIO and USB, there is a clear hierarchy.
> Ignoring the discovery ordering problem, we already have defined ways to
> describe GPIO connections, regulators, etc. to devices. Describing those
> things separately from the device to solve a particular issue that is
> really a kernel limitation is what I don't like.

Okay, I see.

To move forward in trying to make mmc pwrseq a generic pwrseq, could
we perhaps allow both cases?

In the mmc case, there are already deployed bindings so we need to
cope with these by using the phandle option, but for USB etc we could
force the child node option.
As long as we agree that we keep using a compatible string for the
child node as well, both options should be able to co-exist and we
should probably be able to managed them both from a common pwrseq
driver framework.

Although, I do remember from an older conversations around some of
mine submission for the mmc pwrseq code, that some people (maybe
Arnd?) wasn't keen on adding a new framework for this. Perhaps that
has changed?

Kind regards
Uffe

  reply	other threads:[~2016-05-10 11:02 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-05 12:34 [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting Krzysztof Kozlowski
2016-05-05 12:34 ` Krzysztof Kozlowski
2016-05-05 12:34 ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 01/13] usb: misc: usb3503: Clean up on driver unbind Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 18:32   ` Javier Martinez Canillas
2016-05-05 18:32     ` Javier Martinez Canillas
2016-05-06  6:13     ` Krzysztof Kozlowski
2016-05-06  6:13       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 02/13] power/mmc: Move pwrseq drivers to power/pwrseq Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 18:44   ` Javier Martinez Canillas
2016-05-05 18:44     ` Javier Martinez Canillas
2016-05-06  6:15     ` Krzysztof Kozlowski
2016-05-06  6:15       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 03/13] MAINTAINERS: Retain Ulf Hansson as the same maintainer of pwrseq Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 18:46   ` Javier Martinez Canillas
2016-05-05 18:46     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 04/13] power: pwrseq: Enable COMPILE_TEST for drivers Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 18:57   ` Javier Martinez Canillas
2016-05-05 18:57     ` Javier Martinez Canillas
2016-05-05 18:57     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 05/13] power: pwrseq: Remove mmc prefix from mmc_pwrseq Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 19:09   ` Javier Martinez Canillas
2016-05-05 19:09     ` Javier Martinez Canillas
2016-05-06  6:20     ` Krzysztof Kozlowski
2016-05-06  6:20       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 06/13] power: pwrseq: Generalize mmc_pwrseq operations by removing mmc prefix Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 19:14   ` Javier Martinez Canillas
2016-05-05 19:14     ` Javier Martinez Canillas
2016-05-05 19:14     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 07/13] power: pwrseq: simple: Add support for toggling regulator Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 19:31   ` Javier Martinez Canillas
2016-05-05 19:31     ` Javier Martinez Canillas
2016-05-06  6:24     ` Krzysztof Kozlowski
2016-05-06  6:24       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 08/13] usb: hub: Handle deferred probe Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 19:33   ` Javier Martinez Canillas
2016-05-05 19:33     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 09/13] power: pwrseq: Add support for USB hubs with external power Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 19:52   ` Javier Martinez Canillas
2016-05-05 19:52     ` Javier Martinez Canillas
2016-05-05 19:52     ` Javier Martinez Canillas
2016-05-06  6:26     ` Krzysztof Kozlowski
2016-05-06  6:26       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 10/13] usb: hub: Power sequence the ports on activation Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 14:09   ` Alan Stern
2016-05-05 14:09     ` Alan Stern
2016-05-05 14:09     ` Alan Stern
2016-05-05 17:37     ` Krzysztof Kozlowski
2016-05-05 17:37       ` Krzysztof Kozlowski
2016-05-05 19:56   ` Javier Martinez Canillas
2016-05-05 19:56     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 11/13] usb: port: Parse pwrseq phandle from Device Tree Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 20:10   ` Javier Martinez Canillas
2016-05-05 20:10     ` Javier Martinez Canillas
2016-05-06  6:27     ` Krzysztof Kozlowski
2016-05-06  6:27       ` Krzysztof Kozlowski
2016-05-05 12:34 ` [RFC v2 12/13] ARM: dts: exynos: Switch the buck8 to GPIO mode on Odroid U3 Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 20:11   ` Javier Martinez Canillas
2016-05-05 20:11     ` Javier Martinez Canillas
2016-05-05 12:34 ` [RFC v2 13/13] ARM: dts: exynos: Fix LAN and HUB after bootloader initialization " Krzysztof Kozlowski
2016-05-05 12:34   ` Krzysztof Kozlowski
2016-05-05 20:16   ` Javier Martinez Canillas
2016-05-05 20:16     ` Javier Martinez Canillas
2016-05-06  6:28     ` Krzysztof Kozlowski
2016-05-06  6:28       ` Krzysztof Kozlowski
2016-05-05 22:42 ` [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting Rob Herring
2016-05-05 22:42   ` Rob Herring
2016-05-05 22:42   ` Rob Herring
2016-05-06  5:44   ` Peter Chen
2016-05-06  5:44     ` Peter Chen
2016-05-06  6:12     ` Krzysztof Kozlowski
2016-05-06  6:12       ` Krzysztof Kozlowski
2016-05-06  7:15       ` Peter Chen
2016-05-06  7:15         ` Peter Chen
2016-05-06  7:15         ` Peter Chen
2016-05-06  6:10   ` Krzysztof Kozlowski
2016-05-06  6:10     ` Krzysztof Kozlowski
2016-05-06 13:01     ` Rob Herring
2016-05-06 13:01       ` Rob Herring
2016-05-06 13:01       ` Rob Herring
2016-05-09  7:46   ` Ulf Hansson
2016-05-09  7:46     ` Ulf Hansson
2016-05-09  7:46     ` Ulf Hansson
2016-05-09 18:18     ` Rob Herring
2016-05-09 18:18       ` Rob Herring
2016-05-09 18:18       ` Rob Herring
2016-05-10 11:02       ` Ulf Hansson [this message]
2016-05-10 11:02         ` Ulf Hansson
2016-05-10 11:02         ` Ulf Hansson
2016-05-28  3:36         ` Peter Chen
2016-05-28  3:36           ` Peter Chen
2016-05-28  3:36           ` Peter Chen
2016-05-31  0:58           ` Peter Chen
2016-05-31  0:58             ` Peter Chen
2016-05-31  0:58             ` Peter Chen
2016-05-31 11:54             ` Krzysztof Kozlowski
2016-05-31 11:54               ` Krzysztof Kozlowski
2016-05-31 11:54               ` Krzysztof Kozlowski
2016-12-13 12:20 ` Hans Verkuil
2016-12-13 12:20   ` Hans Verkuil
2016-12-13 12:34   ` Hans Verkuil
2016-12-13 12:34     ` Hans Verkuil
2016-12-13 13:53     ` Krzysztof Kozlowski
2016-12-13 13:53       ` Krzysztof Kozlowski

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='CAPDyKFq2=mqujFjvJSYxg2nVmK=OrBKLtFfb-ErNJO3Zr_LMVw@mail.gmail.com' \
    --to=ulf.hansson@linaro.org \
    --cc=arnd@arndb.de \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil@xs4all.nl \
    --cc=k.kozlowski@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=robh@kernel.org \
    --cc=sre@kernel.org \
    --cc=tjakobi@math.uni-bielefeld.de \
    /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.