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

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.orgSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent b7132285
...@@ -13,17 +13,21 @@ maintainers: ...@@ -13,17 +13,21 @@ maintainers:
properties: properties:
compatible: compatible:
enum: enum:
- qcom,sc7180-qmp-usb3-dp-phy
- qcom,sc7180-qmp-usb3-phy - qcom,sc7180-qmp-usb3-phy
- qcom,sdm845-qmp-usb3-dp-phy
- qcom,sdm845-qmp-usb3-phy - qcom,sdm845-qmp-usb3-phy
reg: reg:
items: 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 the DP_COM control block.
- description: Address and length of PHY's DP serdes block.
reg-names: reg-names:
items: items:
- const: reg-base - const: usb
- const: dp_com - const: dp_com
- const: dp
"#clock-cells": "#clock-cells":
enum: [ 1, 2 ] enum: [ 1, 2 ]
...@@ -74,16 +78,74 @@ properties: ...@@ -74,16 +78,74 @@ properties:
#Required nodes: #Required nodes:
patternProperties: patternProperties:
"^phy@[0-9a-f]+$": "^usb3-phy@[0-9a-f]+$":
type: object type: object
description: description:
Each device node of QMP phy is required to have as many child nodes as The USB3 PHY.
the number of lanes the PHY has.
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: required:
- compatible - compatible
- reg - reg
- reg-names
- "#clock-cells" - "#clock-cells"
- "#address-cells" - "#address-cells"
- "#size-cells" - "#size-cells"
...@@ -101,14 +163,15 @@ examples: ...@@ -101,14 +163,15 @@ examples:
- | - |
#include <dt-bindings/clock/qcom,gcc-sdm845.h> #include <dt-bindings/clock/qcom,gcc-sdm845.h>
usb_1_qmpphy: phy-wrapper@88e9000 { usb_1_qmpphy: phy-wrapper@88e9000 {
compatible = "qcom,sdm845-qmp-usb3-phy"; compatible = "qcom,sdm845-qmp-usb3-dp-phy";
reg = <0x088e9000 0x18c>, reg = <0x088e9000 0x18c>,
<0x088e8000 0x10>; <0x088e8000 0x10>,
reg-names = "reg-base", "dp_com"; <0x088ea000 0x40>;
reg-names = "usb", "dp_com", "dp";
#clock-cells = <1>; #clock-cells = <1>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x088e9000 0x1000>; ranges = <0x0 0x088e9000 0x2000>;
clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
<&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
...@@ -123,7 +186,7 @@ examples: ...@@ -123,7 +186,7 @@ examples:
vdda-phy-supply = <&vdda_usb2_ss_1p2>; vdda-phy-supply = <&vdda_usb2_ss_1p2>;
vdda-pll-supply = <&vdda_usb2_ss_core>; vdda-pll-supply = <&vdda_usb2_ss_core>;
phy@200 { usb3-phy@200 {
reg = <0x200 0x128>, reg = <0x200 0x128>,
<0x400 0x200>, <0x400 0x200>,
<0xc00 0x218>, <0xc00 0x218>,
...@@ -136,4 +199,14 @@ examples: ...@@ -136,4 +199,14 @@ examples:
clock-names = "pipe0"; clock-names = "pipe0";
clock-output-names = "usb3_phy_pipe_clk_src"; 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>;
};
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment