From: William McVicker <willmcvicker@google.com>
To: "André Draszik" <andre.draszik@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Peter Griffin <peter.griffin@linaro.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Sylwester Nawrocki <s.nawrocki@samsung.com>,
Alim Akhtar <alim.akhtar@samsung.com>,
Sam Protsenko <semen.protsenko@linaro.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Tudor Ambarus <tudor.ambarus@linaro.org>,
Roy Luo <royluo@google.com>,
kernel-team@android.com, linux-phy@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v3 6/6] phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)
Date: Fri, 21 Jun 2024 17:07:44 -0700 [thread overview]
Message-ID: <ZnYV0MfjLyyI5uqQ@google.com> (raw)
In-Reply-To: <20240617-usb-phy-gs101-v3-6-b66de9ae7424@linaro.org>
On 06/17/2024, André Draszik wrote:
> Add support for the Exynos USB 3.1 DRD combo phy, as found in Exynos 9
> SoCs like Google GS101. It supports USB SS, HS and DisplayPort.
>
> In terms of UTMI+, this is very similar to the existing Exynos850
> support in this driver. The difference is that this combo phy supports
> both UTMI+ (HS) and PIPE3 (SS). It also supports DP alt mode.
>
> The number of ports for UTMI+ and PIPE3 can be determined using the
> LINKPORT register (which also exists on Exynos E850).
>
> For SuperSpeed (SS) a new SS phy is in use and its PIPE3 interface is
> new compared to Exynos E850, and also very different from the existing
> support for older Exynos SoCs in this driver.
>
> The SS phy needs a bit more configuration work and register tuning for
> signal quality to work reliably, presumably due to the higher
> frequency, e.g. to account for different board layouts. Additionally,
> power needs to be enabled before writing to the SS phy registers.
>
> This commit adds the necessary changes for USB HS and SS to work.
> DisplayPort is out of scope in this commit.
>
> Notes:
> * For the register tuning, exynos5_usbdrd_apply_phy_tunes() has been
> added with the appropriate data structures to support tuning at
> various stages during initialisation. Since these are hardware
> specific, the platform data is supposed to be populated accordingly.
> The implementation is loosely modelled after the Samsung UFS PHY
> driver.
>
> There is one tuning state for UTMI+, PTS_UTMI_POSTINIT, to execute
> after init and generally intended for HS signal tuning, as done in
> this commit.
>
> PTS_PIPE3_PREINIT PTS_PIPE3_INIT PTS_PIPE3_POSTINIT
> PTS_PIPE3_POSTLOCK are tuning states for PIPE3. In the downstream
> driver, preinit differs by Exynos SoC, and postinit and postlock
> are different per board. The latter haven't been implemented for
> gs101 here, because downstream doesn't use them on gs101 either.
>
> * Signal lock acquisition for SS depends on the orientation of the
> USB-C plug. Since there currently is no infrastructure to chain
> connector events to both the USB DWC3 driver and this phy driver, a
> work-around has been added in
> exynos5_usbdrd_usbdp_g2_v4_pma_check_cdr_lock() to check both
> registers if it failed in one of the orientations.
>
> * Equally, we can only establish SS speed in one of the connector
> orientations due to programming differences when selecting the lane
> mux in exynos5_usbdrd_usbdp_g2_v4_pma_lane_mux_sel(), which really
> needs to be dynamic, based on the orientation of the connector.
>
> * As is, we can establish a HS link using any cable, and an SS link in
> one orientation of the plug, falling back to HS if the orientation is
> reversed to the expectation.
>
> Signed-off-by: André Draszik <andre.draszik@linaro.org>
Tested-by: Will McVicker <willmcvicker@google.com>
[...]
Thanks,
Will
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: William McVicker <willmcvicker@google.com>
To: "André Draszik" <andre.draszik@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Peter Griffin <peter.griffin@linaro.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Sylwester Nawrocki <s.nawrocki@samsung.com>,
Alim Akhtar <alim.akhtar@samsung.com>,
Sam Protsenko <semen.protsenko@linaro.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Tudor Ambarus <tudor.ambarus@linaro.org>,
Roy Luo <royluo@google.com>,
kernel-team@android.com, linux-phy@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v3 6/6] phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)
Date: Fri, 21 Jun 2024 17:07:44 -0700 [thread overview]
Message-ID: <ZnYV0MfjLyyI5uqQ@google.com> (raw)
In-Reply-To: <20240617-usb-phy-gs101-v3-6-b66de9ae7424@linaro.org>
On 06/17/2024, André Draszik wrote:
> Add support for the Exynos USB 3.1 DRD combo phy, as found in Exynos 9
> SoCs like Google GS101. It supports USB SS, HS and DisplayPort.
>
> In terms of UTMI+, this is very similar to the existing Exynos850
> support in this driver. The difference is that this combo phy supports
> both UTMI+ (HS) and PIPE3 (SS). It also supports DP alt mode.
>
> The number of ports for UTMI+ and PIPE3 can be determined using the
> LINKPORT register (which also exists on Exynos E850).
>
> For SuperSpeed (SS) a new SS phy is in use and its PIPE3 interface is
> new compared to Exynos E850, and also very different from the existing
> support for older Exynos SoCs in this driver.
>
> The SS phy needs a bit more configuration work and register tuning for
> signal quality to work reliably, presumably due to the higher
> frequency, e.g. to account for different board layouts. Additionally,
> power needs to be enabled before writing to the SS phy registers.
>
> This commit adds the necessary changes for USB HS and SS to work.
> DisplayPort is out of scope in this commit.
>
> Notes:
> * For the register tuning, exynos5_usbdrd_apply_phy_tunes() has been
> added with the appropriate data structures to support tuning at
> various stages during initialisation. Since these are hardware
> specific, the platform data is supposed to be populated accordingly.
> The implementation is loosely modelled after the Samsung UFS PHY
> driver.
>
> There is one tuning state for UTMI+, PTS_UTMI_POSTINIT, to execute
> after init and generally intended for HS signal tuning, as done in
> this commit.
>
> PTS_PIPE3_PREINIT PTS_PIPE3_INIT PTS_PIPE3_POSTINIT
> PTS_PIPE3_POSTLOCK are tuning states for PIPE3. In the downstream
> driver, preinit differs by Exynos SoC, and postinit and postlock
> are different per board. The latter haven't been implemented for
> gs101 here, because downstream doesn't use them on gs101 either.
>
> * Signal lock acquisition for SS depends on the orientation of the
> USB-C plug. Since there currently is no infrastructure to chain
> connector events to both the USB DWC3 driver and this phy driver, a
> work-around has been added in
> exynos5_usbdrd_usbdp_g2_v4_pma_check_cdr_lock() to check both
> registers if it failed in one of the orientations.
>
> * Equally, we can only establish SS speed in one of the connector
> orientations due to programming differences when selecting the lane
> mux in exynos5_usbdrd_usbdp_g2_v4_pma_lane_mux_sel(), which really
> needs to be dynamic, based on the orientation of the connector.
>
> * As is, we can establish a HS link using any cable, and an SS link in
> one orientation of the plug, falling back to HS if the orientation is
> reversed to the expectation.
>
> Signed-off-by: André Draszik <andre.draszik@linaro.org>
Tested-by: Will McVicker <willmcvicker@google.com>
[...]
Thanks,
Will
next prev parent reply other threads:[~2024-06-22 0:07 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 16:44 [PATCH v3 0/6] USB31DRD phy support for Google Tensor gs101 (HS & SS) André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-17 16:44 ` [PATCH v3 1/6] dt-bindings: phy: samsung,usb3-drd-phy: add gs101 compatible André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-24 5:19 ` Krzysztof Kozlowski
2024-06-24 5:19 ` Krzysztof Kozlowski
2024-06-24 11:13 ` Peter Griffin
2024-06-24 11:13 ` Peter Griffin
2024-06-17 16:44 ` [PATCH v3 2/6] phy: exynos5-usbdrd: support isolating HS and SS ports independently André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-22 0:02 ` William McVicker
2024-06-22 0:02 ` William McVicker
2024-06-24 11:20 ` Peter Griffin
2024-06-24 11:20 ` Peter Griffin
2024-06-17 16:44 ` [PATCH v3 3/6] phy: exynos5-usbdrd: convert core clocks to clk_bulk André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-22 0:05 ` William McVicker
2024-06-22 0:05 ` William McVicker
2024-06-24 11:22 ` Peter Griffin
2024-06-24 11:22 ` Peter Griffin
2024-06-17 16:44 ` [PATCH v3 4/6] phy: exynos5-usbdrd: convert (phy) register access clock " André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-22 0:03 ` William McVicker
2024-06-22 0:03 ` William McVicker
2024-06-24 11:23 ` Peter Griffin
2024-06-24 11:23 ` Peter Griffin
2024-06-17 16:44 ` [PATCH v3 5/6] phy: exynos5-usbdrd: convert Vbus supplies to regulator_bulk André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-22 0:06 ` William McVicker
2024-06-22 0:06 ` William McVicker
2024-06-24 11:28 ` Peter Griffin
2024-06-24 11:28 ` Peter Griffin
2024-06-17 16:44 ` [PATCH v3 6/6] phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS) André Draszik
2024-06-17 16:44 ` André Draszik
2024-06-22 0:07 ` William McVicker [this message]
2024-06-22 0:07 ` William McVicker
2024-06-24 11:33 ` Peter Griffin
2024-06-24 11:33 ` Peter Griffin
2024-06-22 0:24 ` [PATCH v3 0/6] USB31DRD phy support for Google Tensor gs101 " William McVicker
2024-06-22 0:24 ` William McVicker
2024-07-02 13:36 ` Vinod Koul
2024-07-02 13:36 ` Vinod Koul
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=ZnYV0MfjLyyI5uqQ@google.com \
--to=willmcvicker@google.com \
--cc=alim.akhtar@samsung.com \
--cc=andre.draszik@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kernel-team@android.com \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=royluo@google.com \
--cc=s.nawrocki@samsung.com \
--cc=semen.protsenko@linaro.org \
--cc=tudor.ambarus@linaro.org \
--cc=vkoul@kernel.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.