2020-05-15 08:09:15 +05:30
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id : "http://devicetree.org/schemas/phy/qcom,qmp-phy.yaml#"
$schema : "http://devicetree.org/meta-schemas/core.yaml#"
title : Qualcomm QMP PHY controller
maintainers :
- Manu Gautam <mgautam@codeaurora.org>
description :
QMP phy controller supports physical layer functionality for a number of
controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
properties :
compatible :
enum :
- qcom,ipq8074-qmp-pcie-phy
2020-06-08 19:41:15 +05:30
- qcom,ipq8074-qmp-usb3-phy
2020-05-15 08:09:15 +05:30
- qcom,msm8996-qmp-pcie-phy
- qcom,msm8996-qmp-ufs-phy
- qcom,msm8996-qmp-usb3-phy
- qcom,msm8998-qmp-pcie-phy
- qcom,msm8998-qmp-ufs-phy
- qcom,msm8998-qmp-usb3-phy
2021-01-20 14:45:30 -08:00
- qcom,sc8180x-qmp-ufs-phy
2021-01-20 17:43:38 -08:00
- qcom,sc8180x-qmp-usb3-phy
2020-05-15 08:09:15 +05:30
- qcom,sdm845-qhp-pcie-phy
- qcom,sdm845-qmp-pcie-phy
- qcom,sdm845-qmp-ufs-phy
- qcom,sdm845-qmp-usb3-uni-phy
- qcom,sm8150-qmp-ufs-phy
2021-01-15 09:47:20 -08:00
- qcom,sm8150-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-uni-phy
2020-05-15 08:09:15 +05:30
- qcom,sm8250-qmp-ufs-phy
2020-10-27 22:30:29 +05:30
- qcom,sm8250-qmp-gen3x1-pcie-phy
- qcom,sm8250-qmp-gen3x2-pcie-phy
- qcom,sm8250-qmp-modem-pcie-phy
2021-01-15 09:47:20 -08:00
- qcom,sm8250-qmp-usb3-phy
- qcom,sm8250-qmp-usb3-uni-phy
2021-02-04 22:28:03 +05:30
- qcom,sm8350-qmp-ufs-phy
2021-01-15 09:47:20 -08:00
- qcom,sm8350-qmp-usb3-phy
- qcom,sm8350-qmp-usb3-uni-phy
2021-01-11 17:00:09 +05:30
- qcom,sdx55-qmp-usb3-uni-phy
2020-05-15 08:09:15 +05:30
reg :
2021-01-15 09:47:20 -08:00
minItems : 1
maxItems : 2
2020-05-15 08:09:15 +05:30
items :
- description : Address and length of PHY's common serdes block.
2021-01-15 09:47:20 -08:00
- description : Address and length of PHY's DP_COM control block.
2020-05-15 08:09:15 +05:30
"#clock-cells" :
2020-04-20 21:24:47 -05:00
enum : [ 1 , 2 ]
2020-05-15 08:09:15 +05:30
"#address-cells" :
enum : [ 1 , 2 ]
"#size-cells" :
enum : [ 1 , 2 ]
2020-06-11 08:52:38 -06:00
ranges : true
2020-05-15 08:09:15 +05:30
clocks :
minItems : 1
maxItems : 4
clock-names :
minItems : 1
maxItems : 4
resets :
minItems : 1
maxItems : 3
reset-names :
minItems : 1
maxItems : 3
vdda-phy-supply :
description :
2020-04-20 21:24:47 -05:00
Phandle to a regulator supply to PHY core block.
2020-05-15 08:09:15 +05:30
vdda-pll-supply :
description :
2020-04-20 21:24:47 -05:00
Phandle to 1.8V regulator supply to PHY refclk pll block.
2020-05-15 08:09:15 +05:30
vddp-ref-clk-supply :
description :
2020-04-20 21:24:47 -05:00
Phandle to a regulator supply to any specific refclk pll block.
2020-05-15 08:09:15 +05:30
#Required nodes:
patternProperties :
"^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.
required :
- compatible
- reg
- "#clock-cells"
- "#address-cells"
- "#size-cells"
2020-06-11 08:52:38 -06:00
- ranges
2020-05-15 08:09:15 +05:30
- clocks
- clock-names
- resets
- reset-names
- vdda-phy-supply
- vdda-pll-supply
additionalProperties : false
allOf :
- if :
properties :
compatible :
contains :
enum :
- qcom,sdm845-qmp-usb3-uni-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : Phy config clock.
- description : 19.2 MHz ref clk.
- description : Phy common block aux clock.
clock-names :
items :
- const : aux
- const : cfg_ahb
- const : ref
- const : com_aux
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
- const : phy
- const : common
2021-01-11 17:00:09 +05:30
- if :
properties :
compatible :
contains :
enum :
- qcom,sdx55-qmp-usb3-uni-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : Phy config clock.
- description : 19.2 MHz ref clk.
clock-names :
items :
- const : aux
- const : cfg_ahb
- const : ref
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
- const : phy
- const : common
2020-05-15 08:09:15 +05:30
- if :
properties :
compatible :
contains :
enum :
- qcom,msm8996-qmp-pcie-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : Phy config clock.
- description : 19.2 MHz ref clk.
clock-names :
items :
- const : aux
- const : cfg_ahb
- const : ref
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
- description : phy's ahb cfg block reset.
reset-names :
items :
- const : phy
- const : common
- const : cfg
- if :
properties :
compatible :
contains :
enum :
2020-06-08 19:41:15 +05:30
- qcom,ipq8074-qmp-usb3-phy
2020-05-15 08:09:15 +05:30
- qcom,msm8996-qmp-usb3-phy
- qcom,msm8998-qmp-pcie-phy
- qcom,msm8998-qmp-usb3-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : Phy config clock.
- description : 19.2 MHz ref clk.
clock-names :
items :
- const : aux
- const : cfg_ahb
- const : ref
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
2020-04-20 21:24:47 -05:00
- const : phy
- const : common
2020-05-15 08:09:15 +05:30
- if :
properties :
compatible :
contains :
enum :
- qcom,msm8996-qmp-ufs-phy
then :
properties :
clocks :
items :
- description : 19.2 MHz ref clk.
clock-names :
items :
- const : ref
resets :
items :
- description : PHY reset in the UFS controller.
reset-names :
items :
- const : ufsphy
- if :
properties :
compatible :
contains :
enum :
- qcom,msm8998-qmp-ufs-phy
- qcom,sdm845-qmp-ufs-phy
- qcom,sm8150-qmp-ufs-phy
- qcom,sm8250-qmp-ufs-phy
then :
properties :
clocks :
items :
- description : 19.2 MHz ref clk.
- description : Phy reference aux clock.
clock-names :
items :
- const : ref
- const : ref_aux
resets :
items :
- description : PHY reset in the UFS controller.
reset-names :
items :
- const : ufsphy
- if :
properties :
compatible :
contains :
enum :
- qcom,ipq8074-qmp-pcie-phy
then :
properties :
clocks :
items :
- description : pipe clk.
clock-names :
items :
- const : pipe_clk
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
- const : phy
- const : common
- if :
properties :
compatible :
contains :
enum :
- qcom,sdm845-qhp-pcie-phy
- qcom,sdm845-qmp-pcie-phy
2020-10-27 22:30:29 +05:30
- qcom,sm8250-qmp-gen3x1-pcie-phy
- qcom,sm8250-qmp-gen3x2-pcie-phy
- qcom,sm8250-qmp-modem-pcie-phy
2020-05-15 08:09:15 +05:30
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : Phy config clock.
- description : 19.2 MHz ref clk.
- description : Phy refgen clk.
clock-names :
items :
- const : aux
- const : cfg_ahb
- const : ref
- const : refgen
resets :
items :
- description : reset of phy block.
reset-names :
items :
- const : phy
2021-01-15 09:47:20 -08:00
- if :
properties :
compatible :
contains :
enum :
- qcom,sm8150-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-uni-phy
- qcom,sm8250-qmp-usb3-uni-phy
- qcom,sm8350-qmp-usb3-uni-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : 19.2 MHz ref clk source.
- description : 19.2 MHz ref clk.
- description : Phy common block aux clock.
clock-names :
items :
- const : aux
- const : ref_clk_src
- const : ref
- const : com_aux
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
- const : phy
- const : common
- if :
properties :
compatible :
contains :
enum :
- qcom,sm8250-qmp-usb3-phy
- qcom,sm8350-qmp-usb3-phy
then :
properties :
clocks :
items :
- description : Phy aux clock.
- description : 19.2 MHz ref clk.
- description : Phy common block aux clock.
clock-names :
items :
- const : aux
- const : ref_clk_src
- const : com_aux
resets :
items :
- description : reset of phy block.
- description : phy common block reset.
reset-names :
items :
- const : phy
- const : common
2020-05-15 08:09:15 +05:30
examples :
- |
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
2020-05-15 08:09:16 +05:30
usb_2_qmpphy : phy-wrapper@88eb000 {
compatible = "qcom,sdm845-qmp-usb3-uni-phy";
2020-06-11 08:52:38 -06:00
reg = <0x088eb000 0x18c>;
2020-05-15 08:09:15 +05:30
#clock-cells = <1>;
2020-06-11 08:52:38 -06:00
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x088eb000 0x2000>;
2020-05-15 08:09:15 +05:30
2020-05-15 08:09:16 +05:30
clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >,
2020-05-15 08:09:15 +05:30
<&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
2020-05-15 08:09:16 +05:30
<&gcc GCC_USB3_SEC_CLKREF_CLK>,
<&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
2020-05-15 08:09:15 +05:30
clock-names = "aux", "cfg_ahb", "ref", "com_aux";
2020-05-15 08:09:16 +05:30
resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
<&gcc GCC_USB3_PHY_SEC_BCR>;
2020-05-15 08:09:15 +05:30
reset-names = "phy", "common";
vdda-phy-supply = <&vdda_usb2_ss_1p2>;
vdda-pll-supply = <&vdda_usb2_ss_core>;
2020-06-11 08:52:38 -06:00
usb_2_ssphy : phy@200 {
reg = <0x200 0x128>,
<0x400 0x1fc>,
<0x800 0x218>,
<0x600 0x70>;
2020-05-15 08:09:15 +05:30
#clock-cells = <0>;
#phy-cells = <0>;
2020-05-15 08:09:16 +05:30
clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
2020-05-15 08:09:15 +05:30
clock-names = "pipe0";
2020-05-15 08:09:16 +05:30
clock-output-names = "usb3_uni_phy_pipe_clk_src";
2020-05-15 08:09:15 +05:30
};
};