All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Rob Herring <robh@kernel.org>, hzpeterchen@gmail.com
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-usb@vger.kernel.org,
	Ulf Hansson <ulf.hansson@linaro.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>,
	m.szyprowski@samsung.com
Subject: Re: [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting
Date: Fri, 06 May 2016 08:10:38 +0200	[thread overview]
Message-ID: <572C355E.7090008@samsung.com> (raw)
In-Reply-To: <20160505224240.GA31429@rob-hp-laptop>

On 05/06/2016 12:42 AM, Rob Herring wrote:
> On Thu, May 05, 2016 at 02:34:13PM +0200, Krzysztof Kozlowski wrote:
>> Hi,
>>
>> This is a different, second try to fix usb3503+lan on Odroid U3 board
>> if it was initialized by bootloader (e.g. for TFTP boot).
>>
>> First version:
>> http://www.spinics.net/lists/linux-usb/msg140042.html
>>
>>
>> Problem
>> =======
>> When Odroid U3 (usb3503 + smsc95xx + max77686) boots from network (TFTP),
>> the usb3503 and LAN smsc95xx do not show up in "lsusb". Hard-reset
>> is required, e.g. by suspend to RAM. The actual TFTP boot does
>> not have to happen. Just "usb start" from U-Boot is sufficient.
>>
>> From the schematics, the regulator is a supply only to LAN, however
>> without toggling it off/on, the usb3503 hub won appear neither.
>>
>>
>> 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 
> 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.

Okay, I got it, no node for pwrseq but parse device properties. In case
of reset-gpios it seems quite obvious but also actively used:
$ git grep reset-gpios arch/arm/boot/dts | wc -l
142

Definitely pwrseq shouldn't add itself to all of these devices.

My questions would be then:
1. An additional pwrseq compatible for device is acceptable?
2. How would you name the regulator? We shouldn't toggle off/on every
regulator but probably only some specific ones.

> 
>> 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.

Yes, I left it for next iteration because it would require much more
changes in USB core. As for now, these bindings are useless for USB
devices which are not yet enumerated (because power sequence has to be
done on them). Making use of these bindings would be a next step... Just
let me do it one step a time.

Best regards,
Krzysztof

> 
> Rob
> 
> [1] http://www.spinics.net/lists/linux-usb/msg134082.html
> 
> 

WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC v2 00/13] usb/mmc/power: Fix USB/LAN when TFTP booting
Date: Fri, 06 May 2016 08:10:38 +0200	[thread overview]
Message-ID: <572C355E.7090008@samsung.com> (raw)
In-Reply-To: <20160505224240.GA31429@rob-hp-laptop>

On 05/06/2016 12:42 AM, Rob Herring wrote:
> On Thu, May 05, 2016 at 02:34:13PM +0200, Krzysztof Kozlowski wrote:
>> Hi,
>>
>> This is a different, second try to fix usb3503+lan on Odroid U3 board
>> if it was initialized by bootloader (e.g. for TFTP boot).
>>
>> First version:
>> http://www.spinics.net/lists/linux-usb/msg140042.html
>>
>>
>> Problem
>> =======
>> When Odroid U3 (usb3503 + smsc95xx + max77686) boots from network (TFTP),
>> the usb3503 and LAN smsc95xx do not show up in "lsusb". Hard-reset
>> is required, e.g. by suspend to RAM. The actual TFTP boot does
>> not have to happen. Just "usb start" from U-Boot is sufficient.
>>
>> From the schematics, the regulator is a supply only to LAN, however
>> without toggling it off/on, the usb3503 hub won appear neither.
>>
>>
>> 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 
> 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.

Okay, I got it, no node for pwrseq but parse device properties. In case
of reset-gpios it seems quite obvious but also actively used:
$ git grep reset-gpios arch/arm/boot/dts | wc -l
142

Definitely pwrseq shouldn't add itself to all of these devices.

My questions would be then:
1. An additional pwrseq compatible for device is acceptable?
2. How would you name the regulator? We shouldn't toggle off/on every
regulator but probably only some specific ones.

> 
>> 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.

Yes, I left it for next iteration because it would require much more
changes in USB core. As for now, these bindings are useless for USB
devices which are not yet enumerated (because power sequence has to be
done on them). Making use of these bindings would be a next step... Just
let me do it one step a time.

Best regards,
Krzysztof

> 
> Rob
> 
> [1] http://www.spinics.net/lists/linux-usb/msg134082.html
> 
> 

  parent reply	other threads:[~2016-05-06  6:10 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 [this message]
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
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=572C355E.7090008@samsung.com \
    --to=k.kozlowski@samsung.com \
    --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=hzpeterchen@gmail.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 \
    --cc=ulf.hansson@linaro.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.