]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
phy: stm32-usbphyc: use connector for vbus-supply with phy-stm32-usbphyc
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 14 Sep 2021 12:31:16 +0000 (14:31 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Fri, 8 Oct 2021 06:19:59 +0000 (08:19 +0200)
The vbus-supply is an optional property of sub-node connector node.
and no more in the usb phyc node (in first proposed binding).

This regulator for USB VBUS may be needed for host mode.

See the latest kernel binding for details in
Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml.

  usbphyc_port0: usb-phy@0 {
      reg = <0>;
      phy-supply = <&vdd_usb>;
      #phy-cells = <0>;
      connector {
          compatible = "usb-a-connector";
          vbus-supply = <&vbus_sw>;
      };
  };

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
drivers/phy/phy-stm32-usbphyc.c

index 02d859a0398c9ca0f099b47c46d7cb33b541b334..c206efd28d4c1ee536e82d2b3775c3e075e8c40f 100644 (file)
@@ -339,7 +339,7 @@ static int stm32_usbphyc_probe(struct udevice *dev)
 {
        struct stm32_usbphyc *usbphyc = dev_get_priv(dev);
        struct reset_ctl reset;
-       ofnode node;
+       ofnode node, connector;
        int i, ret;
 
        usbphyc->base = dev_read_addr(dev);
@@ -395,10 +395,12 @@ static int stm32_usbphyc_probe(struct udevice *dev)
                        return ret;
                }
 
-               ret = stm32_usbphyc_get_regulator(node, "vbus-supply",
-                                                 &usbphyc_phy->vbus);
-               if (ret)
-                       usbphyc_phy->vbus = NULL;
+               usbphyc_phy->vbus = NULL;
+               connector = ofnode_find_subnode(node, "connector");
+               if (ofnode_valid(connector)) {
+                       ret = stm32_usbphyc_get_regulator(connector, "vbus-supply",
+                                                         &usbphyc_phy->vbus);
+               }
 
                node = dev_read_next_subnode(node);
        }