Message ID | 14f60578e2935c0844537eab162af3afa52ffe39.1686126439.git.quic_varada@quicinc.com |
---|---|
State | New |
Headers | show |
Series | Enable IPQ5332 USB2 | expand |
On 15/06/2023 07:27, Varadarajan Narayanan wrote: >>> + - enum: >>> + - qcom,m31-usb-hsphy >> >> I am confused what's this. If m31 is coming from some IP block provider, >> then you are using wrong vendor prefix. >> https://www.m31tech.com/download_file/M31_USB.pdf >> >> >>> + - qcom,ipq5332-m31-usb-hsphy >> >> This confuses me even more. IPQ m31? > > Will change this to m31,usb-hsphy and m31,ipq5332-usb-hsphy respectively. > Will that be acceptable? m31,ipq5332 seems wrong, as m31 did not create ipq5332. Does the m31 device have some name/version/model? If it is not really known, then I would just propose to go with qcom,ipq5332-usb-hsphy. Skip generic compatible ("usb-hsphy") entirely. And then we have... existing bindings qcom,usb-hs-phy.yaml. Don't create something similar with difference in the hyphen. Just use device specific compatible thus device specific filename. > >>> + >>> + reg: >>> + description: >>> + Offset and length of the M31 PHY register set >> >> Drop description, obvious. > > Ok. > >>> + maxItems: 2 >>> + >>> + reg-names: >>> + items: >>> + - const: m31usb_phy_base >>> + - const: qscratch_base >> >> Drop "_base" from both. > > Ok. Will drop qscratch_base. This is in the controller space. > Should not come here. Then drop reg-names entirely. > >>> + >>> + phy_type: >>> + oneOf: >>> + - items: >>> + - enum: >>> + - utmi >>> + - ulpi >> >> This does not belong to phy, but to USB node. > > This is used by the driver to set a bit during phy init. Hence > have it as a replication of the USB node's entry. If this is not > permissible, is there some way to get this from the USB node, > or any other alternative mechanism? Shouldn't USB controller choose what type of PHY type it wants? > >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + #include <dt-bindings/clock/qcom,ipq5332-gcc.h> >>> + hs_m31phy_0: hs_m31phy@5b00 { >> >> Node names should be generic. See also explanation and list of examples >> in DT specification: >> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation >> >> Also, no underscores in node names. > > Will change this as usbphy0:hs_m31phy@7b000 This does not solve my comments. I did not write "label" but "node name". Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/phy/qcom,m31.yaml b/Documentation/devicetree/bindings/phy/qcom,m31.yaml new file mode 100644 index 0000000..8ad4ba4 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/qcom,m31.yaml @@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/qcom,m31.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm M31 USB PHY + +maintainers: + - Sricharan Ramabadhran <quic_srichara@quicinc.com> + - Varadarajan Narayanan <quic_varada@quicinc.org> + +description: + This file contains documentation for the USB M31 PHY found in Qualcomm + IPQ5018, IPQ5332 SoCs. + +properties: + compatible: + oneOf: + - items: + - enum: + - qcom,m31-usb-hsphy + - qcom,ipq5332-m31-usb-hsphy + + reg: + description: + Offset and length of the M31 PHY register set + maxItems: 2 + + reg-names: + items: + - const: m31usb_phy_base + - const: qscratch_base + + phy_type: + oneOf: + - items: + - enum: + - utmi + - ulpi + + resets: + maxItems: 1 + description: + List of phandles and reset pairs, one for each entry in reset-names. + + reset-names: + items: + - const: + usb2_phy_reset + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/qcom,ipq5332-gcc.h> + hs_m31phy_0: hs_m31phy@5b00 { + compatible = "qcom,m31-usb-hsphy"; + reg = <0x5b000 0x3000>, + <0x08af8800 0x400>; + reg-names = "m31usb_phy_base", + "qscratch_base"; + phy_type = "utmi"; + resets = <&gcc GCC_QUSB2_0_PHY_BCR>; + reset-names = "usb2_phy_reset"; + + status = "ok"; + };