All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: hzpeterchen@gmail.com, Ulf Hansson <ulf.hansson@linaro.org>,
	Sebastian Reichel <sre@kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Javier Martinez Canillas <javier@osg.samsung.com>,
	linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-pm@vger.kernel.or, Alan Stern <stern@rowland.harvard.edu>,
	linux-usb@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>, Kukjin Kim <kgene@kernel.org>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Subject: [PATCH v3 00/12] usb/mmc/power: Generic power sequence (and fix USB/LAN when TFTP booting)
Date: Wed, 01 Jun 2016 10:02:09 +0200	[thread overview]
Message-ID: <1464768141-25420-1-git-send-email-k.kozlowski@samsung.com> (raw)

Hi,


My third approach for a USB power sequence which fixes usb3503+lan
on Odroid U3 board if it was initialized by bootloader
(e.g. for TFTP boot).


Changes since v2
================
1. Add Javier's reviewed-by tags. Address some comments.
2. Re-use existing properties for GPIOs etc by pwrseq-simple
   driver.  New property is still added: "power-sequence".
   I tried to address and do according to Rob's comments.

   Please look at patch 6/12 ("power: pwrseq: simple: Add support
   for regulator and generic property") for bindings and the
   new code around matching "power-sequence" property.

3. I marked the usb code as "EXAMPLE" because that part
   is left to Peter Chen.


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,
2. Extend the pwrseq-simple with regulator toggling,
3. Add support to USB hub and port core for pwrseq,
4. Toggle the regulator when needed.

Best regards,
Krzysztof

Krzysztof Kozlowski (12):
  power/mmc: Move pwrseq drivers to power/pwrseq
  MAINTAINERS: Retain Ulf Hansson as the same maintainer of pwrseq
  power: pwrseq: Enable COMPILE_TEST for drivers
  power: pwrseq: Remove mmc prefix from mmc_pwrseq
  power: pwrseq: Generalize mmc_pwrseq operations by removing mmc prefix
  power: pwrseq: simple: Add support for regulator and generic property
  power: pwrseq: Add support for USB hubs with external power
  usb: hub: Handle deferred probe
  EXAMPLE CODE: usb: port: Parse pwrseq phandle from Device Tree
  EXAMPLE CODE: usb: hub: Power sequence the ports on activation
  ARM: dts: exynos: Switch the buck8 to GPIO mode on Odroid U3
  ARM: dts: exynos: Fix LAN and HUB after bootloader initialization on
    Odroid U3

 .../pwrseq/pwrseq-emmc.txt}                        |   0
 .../pwrseq/pwrseq-simple.txt}                      |  29 +++-
 MAINTAINERS                                        |   9 ++
 arch/arm/boot/dts/exynos4412-odroidu3.dts          |   5 +
 drivers/mmc/Kconfig                                |   2 -
 drivers/mmc/core/Makefile                          |   3 -
 drivers/mmc/core/core.c                            |   8 +-
 drivers/mmc/core/host.c                            |   2 +-
 drivers/mmc/core/pwrseq.c                          | 110 ---------------
 drivers/mmc/core/pwrseq.h                          |  52 -------
 drivers/power/Kconfig                              |   1 +
 drivers/power/Makefile                             |   1 +
 drivers/{mmc/core => power/pwrseq}/Kconfig         |  22 ++-
 drivers/power/pwrseq/Makefile                      |   3 +
 drivers/power/pwrseq/pwrseq.c                      | 153 +++++++++++++++++++++
 drivers/{mmc/core => power/pwrseq}/pwrseq_emmc.c   |  17 +--
 drivers/{mmc/core => power/pwrseq}/pwrseq_simple.c | 110 ++++++++++++---
 drivers/usb/core/hub.c                             |  16 ++-
 drivers/usb/core/hub.h                             |   3 +
 drivers/usb/core/port.c                            |  15 ++
 include/linux/mmc/host.h                           |   4 +-
 include/linux/pwrseq.h                             |  63 +++++++++
 22 files changed, 414 insertions(+), 214 deletions(-)
 rename Documentation/devicetree/bindings/{mmc/mmc-pwrseq-emmc.txt => power/pwrseq/pwrseq-emmc.txt} (100%)
 rename Documentation/devicetree/bindings/{mmc/mmc-pwrseq-simple.txt => power/pwrseq/pwrseq-simple.txt} (53%)
 delete mode 100644 drivers/mmc/core/pwrseq.c
 delete mode 100644 drivers/mmc/core/pwrseq.h
 rename drivers/{mmc/core => power/pwrseq}/Kconfig (60%)
 create mode 100644 drivers/power/pwrseq/Makefile
 create mode 100644 drivers/power/pwrseq/pwrseq.c
 rename drivers/{mmc/core => power/pwrseq}/pwrseq_emmc.c (88%)
 rename drivers/{mmc/core => power/pwrseq}/pwrseq_simple.c (52%)
 create mode 100644 include/linux/pwrseq.h

-- 
1.9.1

WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 00/12] usb/mmc/power: Generic power sequence (and fix USB/LAN when TFTP booting)
Date: Wed, 01 Jun 2016 10:02:09 +0200	[thread overview]
Message-ID: <1464768141-25420-1-git-send-email-k.kozlowski@samsung.com> (raw)

Hi,


My third approach for a USB power sequence which fixes usb3503+lan
on Odroid U3 board if it was initialized by bootloader
(e.g. for TFTP boot).


Changes since v2
================
1. Add Javier's reviewed-by tags. Address some comments.
2. Re-use existing properties for GPIOs etc by pwrseq-simple
   driver.  New property is still added: "power-sequence".
   I tried to address and do according to Rob's comments.

   Please look at patch 6/12 ("power: pwrseq: simple: Add support
   for regulator and generic property") for bindings and the
   new code around matching "power-sequence" property.

3. I marked the usb code as "EXAMPLE" because that part
   is left to Peter Chen.


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,
2. Extend the pwrseq-simple with regulator toggling,
3. Add support to USB hub and port core for pwrseq,
4. Toggle the regulator when needed.

Best regards,
Krzysztof

Krzysztof Kozlowski (12):
  power/mmc: Move pwrseq drivers to power/pwrseq
  MAINTAINERS: Retain Ulf Hansson as the same maintainer of pwrseq
  power: pwrseq: Enable COMPILE_TEST for drivers
  power: pwrseq: Remove mmc prefix from mmc_pwrseq
  power: pwrseq: Generalize mmc_pwrseq operations by removing mmc prefix
  power: pwrseq: simple: Add support for regulator and generic property
  power: pwrseq: Add support for USB hubs with external power
  usb: hub: Handle deferred probe
  EXAMPLE CODE: usb: port: Parse pwrseq phandle from Device Tree
  EXAMPLE CODE: usb: hub: Power sequence the ports on activation
  ARM: dts: exynos: Switch the buck8 to GPIO mode on Odroid U3
  ARM: dts: exynos: Fix LAN and HUB after bootloader initialization on
    Odroid U3

 .../pwrseq/pwrseq-emmc.txt}                        |   0
 .../pwrseq/pwrseq-simple.txt}                      |  29 +++-
 MAINTAINERS                                        |   9 ++
 arch/arm/boot/dts/exynos4412-odroidu3.dts          |   5 +
 drivers/mmc/Kconfig                                |   2 -
 drivers/mmc/core/Makefile                          |   3 -
 drivers/mmc/core/core.c                            |   8 +-
 drivers/mmc/core/host.c                            |   2 +-
 drivers/mmc/core/pwrseq.c                          | 110 ---------------
 drivers/mmc/core/pwrseq.h                          |  52 -------
 drivers/power/Kconfig                              |   1 +
 drivers/power/Makefile                             |   1 +
 drivers/{mmc/core => power/pwrseq}/Kconfig         |  22 ++-
 drivers/power/pwrseq/Makefile                      |   3 +
 drivers/power/pwrseq/pwrseq.c                      | 153 +++++++++++++++++++++
 drivers/{mmc/core => power/pwrseq}/pwrseq_emmc.c   |  17 +--
 drivers/{mmc/core => power/pwrseq}/pwrseq_simple.c | 110 ++++++++++++---
 drivers/usb/core/hub.c                             |  16 ++-
 drivers/usb/core/hub.h                             |   3 +
 drivers/usb/core/port.c                            |  15 ++
 include/linux/mmc/host.h                           |   4 +-
 include/linux/pwrseq.h                             |  63 +++++++++
 22 files changed, 414 insertions(+), 214 deletions(-)
 rename Documentation/devicetree/bindings/{mmc/mmc-pwrseq-emmc.txt => power/pwrseq/pwrseq-emmc.txt} (100%)
 rename Documentation/devicetree/bindings/{mmc/mmc-pwrseq-simple.txt => power/pwrseq/pwrseq-simple.txt} (53%)
 delete mode 100644 drivers/mmc/core/pwrseq.c
 delete mode 100644 drivers/mmc/core/pwrseq.h
 rename drivers/{mmc/core => power/pwrseq}/Kconfig (60%)
 create mode 100644 drivers/power/pwrseq/Makefile
 create mode 100644 drivers/power/pwrseq/pwrseq.c
 rename drivers/{mmc/core => power/pwrseq}/pwrseq_emmc.c (88%)
 rename drivers/{mmc/core => power/pwrseq}/pwrseq_simple.c (52%)
 create mode 100644 include/linux/pwrseq.h

-- 
1.9.1

             reply	other threads:[~2016-06-01  8:02 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-01  8:02 Krzysztof Kozlowski [this message]
2016-06-01  8:02 ` [PATCH v3 00/12] usb/mmc/power: Generic power sequence (and fix USB/LAN when TFTP booting) Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 01/12] power/mmc: Move pwrseq drivers to power/pwrseq Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 02/12] MAINTAINERS: Retain Ulf Hansson as the same maintainer of pwrseq Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 03/12] power: pwrseq: Enable COMPILE_TEST for drivers Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 04/12] power: pwrseq: Remove mmc prefix from mmc_pwrseq Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 05/12] power: pwrseq: Generalize mmc_pwrseq operations by removing mmc prefix Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 06/12] power: pwrseq: simple: Add support for regulator and generic property Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-03  2:02   ` Rob Herring
2016-06-03  2:02     ` Rob Herring
2016-06-03 12:35     ` Krzysztof Kozlowski
2016-06-03 12:35       ` Krzysztof Kozlowski
2016-06-06  3:22       ` Peter Chen
2016-06-06  3:22         ` Peter Chen
2016-06-07  9:29     ` Krzysztof Kozlowski
2016-06-07  9:29       ` Krzysztof Kozlowski
2016-06-07  9:29       ` Krzysztof Kozlowski
2016-06-08 19:03       ` Rob Herring
2016-06-08 19:03         ` Rob Herring
2016-06-09  2:34         ` Chen-Yu Tsai
2016-06-09  2:34           ` Chen-Yu Tsai
2016-06-09  2:34           ` Chen-Yu Tsai
2016-06-09  5:11           ` Krzysztof Kozlowski
2016-06-09  5:11             ` Krzysztof Kozlowski
2016-06-09  5:11             ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 07/12] power: pwrseq: Add support for USB hubs with external power Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 08/12] usb: hub: Handle deferred probe Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 09/12] EXAMPLE CODE: usb: port: Parse pwrseq phandle from Device Tree Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:57   ` Stephen Boyd
2016-06-01  8:57     ` Stephen Boyd
2016-06-01  8:57     ` Stephen Boyd
2016-06-01  9:06     ` Krzysztof Kozlowski
2016-06-01  9:06       ` Krzysztof Kozlowski
2016-06-01 12:05     ` Peter Chen
2016-06-01 12:05       ` Peter Chen
2016-06-01 18:16       ` Stephen Boyd
2016-06-01 18:16         ` Stephen Boyd
2016-06-02  1:24         ` Peter Chen
2016-06-02  1:24           ` Peter Chen
2016-06-02 23:59           ` Stephen Boyd
2016-06-02 23:59             ` Stephen Boyd
2016-06-01  8:02 ` [PATCH v3 10/12] EXAMPLE CODE: usb: hub: Power sequence the ports on activation Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 11/12] ARM: dts: exynos: Switch the buck8 to GPIO mode on Odroid U3 Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01  8:02 ` [PATCH v3 12/12] ARM: dts: exynos: Fix LAN and HUB after bootloader initialization " Krzysztof Kozlowski
2016-06-01  8:02   ` Krzysztof Kozlowski
2016-06-01 11:59   ` Peter Chen
2016-06-01 11:59     ` Peter Chen
2016-06-02  7:26     ` Krzysztof Kozlowski
2016-06-02  7:26       ` Krzysztof Kozlowski
2016-06-02  7:58       ` Peter Chen
2016-06-02  7:58         ` Peter Chen
2016-06-06 20:43 ` [PATCH v3 00/12] usb/mmc/power: Generic power sequence (and fix USB/LAN when TFTP booting) Heiko Stübner
2016-06-06 20:43   ` Heiko Stübner
2016-06-07  6:03   ` Krzysztof Kozlowski
2016-06-07  6:03     ` 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=1464768141-25420-1-git-send-email-k.kozlowski@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=galak@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hzpeterchen@gmail.com \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=javier@osg.samsung.com \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.or \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    --cc=stern@rowland.harvard.edu \
    --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.