Commit 724fabf5 authored by Stephen Boyd's avatar Stephen Boyd Committed by Vinod Koul
Browse files

dt-bindings: phy: qcom,qmp-usb3-dp: Add DP phy information



This binding only describes the USB phy inside the USB3 + DP "combo"
phy. Add information for the DP phy and describe the sub-nodes that
represent the DP and USB3 phys that exist inside the combo wrapper.
Remove reg-names from required properties because it isn't required nor
used by the kernel driver.

Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
Cc: Chandan Uddaraju <chandanu@codeaurora.org>
Cc: Vara Reddy <varar@codeaurora.org>
Cc: Tanmay Shah <tanmay@codeaurora.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Manu Gautam <mgautam@codeaurora.org>
Cc: Sandeep Maheswaram <sanm@codeaurora.org>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Jonathan Marek <jonathan@marek.ca>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: <devicetree@vger.kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Rob Clark <robdclark@chromium.org>
Link: https://lore.kernel.org/r/20200916231202.3637932-2-swboyd@chromium.org


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent b7132285
Loading
Loading
Loading
Loading
+84 −11
Original line number Diff line number Diff line
@@ -13,17 +13,21 @@ maintainers:
properties:
  compatible:
    enum:
      - qcom,sc7180-qmp-usb3-dp-phy
      - qcom,sc7180-qmp-usb3-phy
      - qcom,sdm845-qmp-usb3-dp-phy
      - qcom,sdm845-qmp-usb3-phy
  reg:
    items:
      - description: Address and length of PHY's common serdes block.
      - description: Address and length of PHY's USB serdes block.
      - description: Address and length of the DP_COM control block.
      - description: Address and length of PHY's DP serdes block.

  reg-names:
    items:
      - const: reg-base
      - const: usb
      - const: dp_com
      - const: dp

  "#clock-cells":
    enum: [ 1, 2 ]
@@ -74,16 +78,74 @@ properties:

#Required nodes:
patternProperties:
  "^phy@[0-9a-f]+$":
  "^usb3-phy@[0-9a-f]+$":
    type: object
    description:
      Each device node of QMP phy is required to have as many child nodes as
      the number of lanes the PHY has.
      The USB3 PHY.

    properties:
      reg:
        items:
          - description: Address and length of TX.
          - description: Address and length of RX.
          - description: Address and length of PCS.
          - description: Address and length of TX2.
          - description: Address and length of RX2.
          - description: Address and length of pcs_misc.

      clocks:
        items:
          - description: pipe clock

      clock-names:
        items:
          - const: pipe0

      clock-output-names:
        items:
          - const: usb3_phy_pipe_clk_src

      '#clock-cells':
        const: 0

      '#phy-cells':
        const: 0

    required:
      - reg
      - clocks
      - clock-names
      - '#clock-cells'
      - '#phy-cells'

  "^dp-phy@[0-9a-f]+$":
    type: object
    description:
      The DP PHY.

    properties:
      reg:
        items:
          - description: Address and length of TX.
          - description: Address and length of RX.
          - description: Address and length of PCS.
          - description: Address and length of TX2.
          - description: Address and length of RX2.

      '#clock-cells':
        const: 1

      '#phy-cells':
        const: 0

    required:
      - reg
      - '#clock-cells'
      - '#phy-cells'

required:
  - compatible
  - reg
  - reg-names
  - "#clock-cells"
  - "#address-cells"
  - "#size-cells"
@@ -101,14 +163,15 @@ examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
    usb_1_qmpphy: phy-wrapper@88e9000 {
        compatible = "qcom,sdm845-qmp-usb3-phy";
        compatible = "qcom,sdm845-qmp-usb3-dp-phy";
        reg = <0x088e9000 0x18c>,
              <0x088e8000 0x10>;
        reg-names = "reg-base", "dp_com";
              <0x088e8000 0x10>,
              <0x088ea000 0x40>;
        reg-names = "usb", "dp_com", "dp";
        #clock-cells = <1>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x0 0x088e9000 0x1000>;
        ranges = <0x0 0x088e9000 0x2000>;

        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
@@ -123,7 +186,7 @@ examples:
        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
        vdda-pll-supply = <&vdda_usb2_ss_core>;

        phy@200 {
        usb3-phy@200 {
            reg = <0x200 0x128>,
                  <0x400 0x200>,
                  <0xc00 0x218>,
@@ -136,4 +199,14 @@ examples:
            clock-names = "pipe0";
            clock-output-names = "usb3_phy_pipe_clk_src";
        };

        dp-phy@88ea200 {
            reg = <0xa200 0x200>,
                  <0xa400 0x200>,
                  <0xaa00 0x200>,
                  <0xa600 0x200>,
                  <0xa800 0x200>;
            #clock-cells = <1>;
            #phy-cells = <0>;
        };
    };