* [PATCH 0/2] STM32 USBPHYC vbus-supply property support
@ 2021-03-17 16:09 Amelie Delaunay
2021-03-17 16:09 ` [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc Amelie Delaunay
2021-03-17 16:09 ` [PATCH 2/2] phy: stm32: manage optional vbus regulator on phy_power_on/off Amelie Delaunay
0 siblings, 2 replies; 5+ messages in thread
From: Amelie Delaunay @ 2021-03-17 16:09 UTC (permalink / raw)
To: Kishon Vijay Abraham I, Vinod Koul, Rob Herring,
Alexandre Torgue, Maxime Coquelin
Cc: linux-phy, linux-kernel, devicetree, linux-arm-kernel,
linux-stm32, Amelie Delaunay
STM32 USBPHYC provides two USB High-Speed ports which are used by controllers
with Host capabilities. That's why vbus-supply has to be supported on each
phy node.
Amelie Delaunay (2):
dt-bindings: phy: add vbus-supply optional property to
phy-stm32-usbphyc
phy: stm32: manage optional vbus regulator on phy_power_on/off
.../bindings/phy/phy-stm32-usbphyc.yaml | 3 ++
drivers/phy/st/phy-stm32-usbphyc.c | 31 +++++++++++++++++++
2 files changed, 34 insertions(+)
--
2.17.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc
2021-03-17 16:09 [PATCH 0/2] STM32 USBPHYC vbus-supply property support Amelie Delaunay
@ 2021-03-17 16:09 ` Amelie Delaunay
2021-03-26 0:28 ` Rob Herring
2021-03-17 16:09 ` [PATCH 2/2] phy: stm32: manage optional vbus regulator on phy_power_on/off Amelie Delaunay
1 sibling, 1 reply; 5+ messages in thread
From: Amelie Delaunay @ 2021-03-17 16:09 UTC (permalink / raw)
To: Kishon Vijay Abraham I, Vinod Koul, Rob Herring,
Alexandre Torgue, Maxime Coquelin
Cc: linux-phy, linux-kernel, devicetree, linux-arm-kernel,
linux-stm32, Amelie Delaunay
This patch adds vbus-supply optional property to phy sub-nodes.
A regulator for USB VBUS may be needed for host mode.
Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
---
Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
index 018cc1246ee1..ad2378c30334 100644
--- a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
+++ b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
@@ -71,6 +71,9 @@ patternProperties:
phy-supply:
description: regulator providing 3V3 power supply to the PHY.
+ vbus-supply:
+ description: regulator providing 5V Vbus to the USB connector.
+
"#phy-cells":
enum: [ 0x0, 0x1 ]
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] phy: stm32: manage optional vbus regulator on phy_power_on/off
2021-03-17 16:09 [PATCH 0/2] STM32 USBPHYC vbus-supply property support Amelie Delaunay
2021-03-17 16:09 ` [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc Amelie Delaunay
@ 2021-03-17 16:09 ` Amelie Delaunay
1 sibling, 0 replies; 5+ messages in thread
From: Amelie Delaunay @ 2021-03-17 16:09 UTC (permalink / raw)
To: Kishon Vijay Abraham I, Vinod Koul, Rob Herring,
Alexandre Torgue, Maxime Coquelin
Cc: linux-phy, linux-kernel, devicetree, linux-arm-kernel,
linux-stm32, Amelie Delaunay
This patch adds support for optional vbus regulator.
It is managed on phy_power_on/off calls and may be needed for host mode.
Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
---
drivers/phy/st/phy-stm32-usbphyc.c | 31 ++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/drivers/phy/st/phy-stm32-usbphyc.c b/drivers/phy/st/phy-stm32-usbphyc.c
index c184f4e34584..3e491dfb2525 100644
--- a/drivers/phy/st/phy-stm32-usbphyc.c
+++ b/drivers/phy/st/phy-stm32-usbphyc.c
@@ -57,6 +57,7 @@ struct pll_params {
struct stm32_usbphyc_phy {
struct phy *phy;
struct stm32_usbphyc *usbphyc;
+ struct regulator *vbus;
u32 index;
bool active;
};
@@ -291,9 +292,31 @@ static int stm32_usbphyc_phy_exit(struct phy *phy)
return stm32_usbphyc_pll_disable(usbphyc);
}
+static int stm32_usbphyc_phy_power_on(struct phy *phy)
+{
+ struct stm32_usbphyc_phy *usbphyc_phy = phy_get_drvdata(phy);
+
+ if (usbphyc_phy->vbus)
+ return regulator_enable(usbphyc_phy->vbus);
+
+ return 0;
+}
+
+static int stm32_usbphyc_phy_power_off(struct phy *phy)
+{
+ struct stm32_usbphyc_phy *usbphyc_phy = phy_get_drvdata(phy);
+
+ if (usbphyc_phy->vbus)
+ return regulator_disable(usbphyc_phy->vbus);
+
+ return 0;
+}
+
static const struct phy_ops stm32_usbphyc_phy_ops = {
.init = stm32_usbphyc_phy_init,
.exit = stm32_usbphyc_phy_exit,
+ .power_on = stm32_usbphyc_phy_power_on,
+ .power_off = stm32_usbphyc_phy_power_off,
.owner = THIS_MODULE,
};
@@ -519,6 +542,14 @@ static int stm32_usbphyc_probe(struct platform_device *pdev)
usbphyc->phys[port]->index = index;
usbphyc->phys[port]->active = false;
+ usbphyc->phys[port]->vbus = devm_regulator_get_optional(&phy->dev, "vbus");
+ if (IS_ERR(usbphyc->phys[port]->vbus)) {
+ ret = PTR_ERR(usbphyc->phys[port]->vbus);
+ if (ret == -EPROBE_DEFER)
+ goto put_child;
+ usbphyc->phys[port]->vbus = NULL;
+ }
+
port++;
}
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc
2021-03-17 16:09 ` [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc Amelie Delaunay
@ 2021-03-26 0:28 ` Rob Herring
2021-03-26 9:05 ` Amelie DELAUNAY
0 siblings, 1 reply; 5+ messages in thread
From: Rob Herring @ 2021-03-26 0:28 UTC (permalink / raw)
To: Amelie Delaunay
Cc: Kishon Vijay Abraham I, Vinod Koul, Alexandre Torgue,
Maxime Coquelin, linux-phy, linux-kernel, devicetree,
linux-arm-kernel, linux-stm32
On Wed, Mar 17, 2021 at 05:09:53PM +0100, Amelie Delaunay wrote:
> This patch adds vbus-supply optional property to phy sub-nodes.
> A regulator for USB VBUS may be needed for host mode.
>
> Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
> ---
> Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> index 018cc1246ee1..ad2378c30334 100644
> --- a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> +++ b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> @@ -71,6 +71,9 @@ patternProperties:
> phy-supply:
> description: regulator providing 3V3 power supply to the PHY.
>
> + vbus-supply:
> + description: regulator providing 5V Vbus to the USB connector.
Unless Vbus is powering the phy, then this only belongs in the USB
connector node.
> +
> "#phy-cells":
> enum: [ 0x0, 0x1 ]
>
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc
2021-03-26 0:28 ` Rob Herring
@ 2021-03-26 9:05 ` Amelie DELAUNAY
0 siblings, 0 replies; 5+ messages in thread
From: Amelie DELAUNAY @ 2021-03-26 9:05 UTC (permalink / raw)
To: Rob Herring
Cc: Kishon Vijay Abraham I, Vinod Koul, Alexandre Torgue,
Maxime Coquelin, linux-phy, linux-kernel, devicetree,
linux-arm-kernel, linux-stm32
Hi Rob,
On 3/26/21 1:28 AM, Rob Herring wrote:
> On Wed, Mar 17, 2021 at 05:09:53PM +0100, Amelie Delaunay wrote:
>> This patch adds vbus-supply optional property to phy sub-nodes.
>> A regulator for USB VBUS may be needed for host mode.
>>
>> Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
>> ---
>> Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
>> index 018cc1246ee1..ad2378c30334 100644
>> --- a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
>> +++ b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
>> @@ -71,6 +71,9 @@ patternProperties:
>> phy-supply:
>> description: regulator providing 3V3 power supply to the PHY.
>>
>> + vbus-supply:
>> + description: regulator providing 5V Vbus to the USB connector.
>
> Unless Vbus is powering the phy, then this only belongs in the USB
> connector node.
>
Do you mean I should declare a connector node as a child of the phy node
and get the vbus-supply property from this connector node ?
In case of a on-board autonomous hub between the phy and the connectors,
so no driver to drive it nor to get the vbus-supply property to provide
VBUS to the hub, then the connectors, how to use connector ?
[USB controller]===[USB PHY]===[(USB HUB)]===|> USB A connector
/ |> USB A connector
VBUS |> USB A connector
|> USB A connector
Please advise.
Regards,
Amelie
>> +
>> "#phy-cells":
>> enum: [ 0x0, 0x1 ]
>>
>> --
>> 2.17.1
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-26 9:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17 16:09 [PATCH 0/2] STM32 USBPHYC vbus-supply property support Amelie Delaunay
2021-03-17 16:09 ` [PATCH 1/2] dt-bindings: phy: add vbus-supply optional property to phy-stm32-usbphyc Amelie Delaunay
2021-03-26 0:28 ` Rob Herring
2021-03-26 9:05 ` Amelie DELAUNAY
2021-03-17 16:09 ` [PATCH 2/2] phy: stm32: manage optional vbus regulator on phy_power_on/off Amelie Delaunay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).