0006-v5.16-arm64-dts-qcom-Fix-IPQ8074-PCIe-PHY-nodes.patch 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. From a9ab8f5de2fc752e37918cfd5dcd16d625d9ecb2 Mon Sep 17 00:00:00 2001
  2. From: Shawn Guo <[email protected]>
  3. Date: Wed, 29 Sep 2021 11:42:51 +0800
  4. Subject: [PATCH] arm64: dts: qcom: Fix IPQ8074 PCIe PHY nodes
  5. IPQ8074 PCIe PHY nodes are broken in the many ways:
  6. - '#address-cells', '#size-cells' and 'ranges' are missing.
  7. - Child phy/lane node is missing, and the child properties like
  8. '#phy-cells' and 'clocks' are mistakenly put into parent node.
  9. - The clocks properties for parent node are missing.
  10. Fix them to get the nodes comply with the bindings schema.
  11. Signed-off-by: Shawn Guo <[email protected]>
  12. Signed-off-by: Bjorn Andersson <[email protected]>
  13. Link: https://lore.kernel.org/r/[email protected]
  14. ---
  15. arch/arm64/boot/dts/qcom/ipq8074.dtsi | 46 +++++++++++++++++++++------
  16. 1 file changed, 36 insertions(+), 10 deletions(-)
  17. --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
  18. +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
  19. @@ -174,34 +174,60 @@
  20. status = "disabled";
  21. };
  22. - pcie_phy0: phy@86000 {
  23. + pcie_qmp0: phy@86000 {
  24. compatible = "qcom,ipq8074-qmp-pcie-phy";
  25. reg = <0x00086000 0x1000>;
  26. - #phy-cells = <0>;
  27. - clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
  28. - clock-names = "pipe_clk";
  29. - clock-output-names = "pcie20_phy0_pipe_clk";
  30. + #address-cells = <1>;
  31. + #size-cells = <1>;
  32. + ranges;
  33. + clocks = <&gcc GCC_PCIE0_AUX_CLK>,
  34. + <&gcc GCC_PCIE0_AHB_CLK>;
  35. + clock-names = "aux", "cfg_ahb";
  36. resets = <&gcc GCC_PCIE0_PHY_BCR>,
  37. <&gcc GCC_PCIE0PHY_PHY_BCR>;
  38. reset-names = "phy",
  39. "common";
  40. status = "disabled";
  41. +
  42. + pcie_phy0: phy@86200 {
  43. + reg = <0x86200 0x16c>,
  44. + <0x86400 0x200>,
  45. + <0x86800 0x4f4>;
  46. + #phy-cells = <0>;
  47. + #clock-cells = <0>;
  48. + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
  49. + clock-names = "pipe0";
  50. + clock-output-names = "pcie_0_pipe_clk";
  51. + };
  52. };
  53. - pcie_phy1: phy@8e000 {
  54. + pcie_qmp1: phy@8e000 {
  55. compatible = "qcom,ipq8074-qmp-pcie-phy";
  56. reg = <0x0008e000 0x1000>;
  57. - #phy-cells = <0>;
  58. - clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
  59. - clock-names = "pipe_clk";
  60. - clock-output-names = "pcie20_phy1_pipe_clk";
  61. + #address-cells = <1>;
  62. + #size-cells = <1>;
  63. + ranges;
  64. + clocks = <&gcc GCC_PCIE1_AUX_CLK>,
  65. + <&gcc GCC_PCIE1_AHB_CLK>;
  66. + clock-names = "aux", "cfg_ahb";
  67. resets = <&gcc GCC_PCIE1_PHY_BCR>,
  68. <&gcc GCC_PCIE1PHY_PHY_BCR>;
  69. reset-names = "phy",
  70. "common";
  71. status = "disabled";
  72. +
  73. + pcie_phy1: phy@8e200 {
  74. + reg = <0x8e200 0x16c>,
  75. + <0x8e400 0x200>,
  76. + <0x8e800 0x4f4>;
  77. + #phy-cells = <0>;
  78. + #clock-cells = <0>;
  79. + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
  80. + clock-names = "pipe0";
  81. + clock-output-names = "pcie_1_pipe_clk";
  82. + };
  83. };
  84. prng: rng@e3000 {