On 01/24, Vivek Gautam wrote:
Below is one binding that works for me.The unit address '@0' should be replaced with something from the
--------------------
phy@34000 {
compatible = "qcom,msm8996-qmp-pcie-phy";
reg = <0x034000 0x488>;
#clock-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
<&gcc GCC_PCIE_PHY_CFG_AHB_CLK>,
<&gcc GCC_PCIE_CLKREF_CLK>;
clock-names = "aux", "cfg_ahb", "ref";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
resets = <&gcc GCC_PCIE_PHY_BCR>,
<&gcc GCC_PCIE_PHY_COM_BCR>,
<&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>;
reset-names = "phy", "common", "cfg";
pciephy_p0: port@0 {
reg properties.
Also 'port' and 'ports' are almost keywords in DT now with the
graph binding so we need to be careful when using them.
The non-pcie qmp phys still have one lane, that provides tx/rx.
reg = <0x035000 0x130>,What's the plan for non-pcie qmp phy binding? In that case we
<0x035200 0x200>,
<0x035400 0x1dc>;
#phy-cells = <0>;
clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
clock-names = "pipe0";
resets = <&gcc GCC_PCIE_0_PHY_BCR>;
reset-names = "lane0";
};
pciephy_p1: port@1 {
reg = <0x036000 0x130>,
<0x036200 0x200>,
<0x036400 0x1dc>;
#phy-cells = <0>;
clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
clock-names = "pipe1";
resets = <&gcc GCC_PCIE_1_PHY_BCR>;
reset-names = "lane1";
};
pciephy_p2: port@2 {
reg = <0x037000 0x130>,
<0x037200 0x200>,
<0x037400 0x1dc>;
#phy-cells = <0>;
clocks = <&gcc GCC_PCIE_2_PIPE_CLK>;
clock-names = "pipe2";
resets = <&gcc GCC_PCIE_2_PHY_BCR>;
reset-names = "lane2";
};
};
--------------------
let me know if this looks okay.
don't have ports, so it gets folded into one node?