Re: [PATCH 2/3] arm64: dts: qcom: sc7280: Add PCIe and PHY related nodes

From: Stephen Boyd
Date: Fri Jun 04 2021 - 17:45:02 EST


Quoting Prasad Malisetty (2021-05-21 02:57:00)
> On 2021-05-08 01:36, Stephen Boyd wrote:
> > Quoting Prasad Malisetty (2021-05-07 03:17:27)
> >> Add PCIe controller and PHY nodes for sc7280 SOC.
> >>
> >> Signed-off-by: Prasad Malisetty <pmaliset@xxxxxxxxxxxxxx>
> >> ---
> >> arch/arm64/boot/dts/qcom/sc7280.dtsi | 138
> >> +++++++++++++++++++++++++++++++++++
> >> 1 file changed, 138 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> index 2cc4785..a9f25fc1 100644
> >> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> @@ -12,6 +12,7 @@
> >> #include <dt-bindings/power/qcom-aoss-qmp.h>
> >> #include <dt-bindings/power/qcom-rpmpd.h>
> >> #include <dt-bindings/soc/qcom,rpmh-rsc.h>
> >> +#include <dt-bindings/gpio/gpio.h>
> >>
> >> / {
> >> interrupt-parent = <&intc>;
> >> @@ -316,6 +317,118 @@
> >> };
> >> };
> >>
> > [...]
> >> +
> >> + pcie1_phy: phy@1c0e000 {
> >> + compatible =
> >> "qcom,sm8250-qmp-gen3x2-pcie-phy";
> >> + reg = <0 0x01c0e000 0 0x1c0>;
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> + ranges;
> >> + clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
> >> + <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
> >> + <&gcc GCC_PCIE_CLKREF_EN>,
> >> + <&gcc GCC_PCIE1_PHY_RCHNG_CLK>;
> >> + clock-names = "aux", "cfg_ahb", "ref",
> >> "refgen";
> >> +
> >> + resets = <&gcc GCC_PCIE_1_PHY_BCR>;
> >> + reset-names = "phy";
> >> +
> >> + assigned-clocks = <&gcc
> >> GCC_PCIE1_PHY_RCHNG_CLK>;
> >> + assigned-clock-rates = <100000000>;
> >> +
> >> + status = "disabled";
> >
> > I think the style is to put status disabled close to the compatible?
>
> Generally I have added status disabled in end as like many nodes. just
> curious to ask is there any specific reason to put close to compatible.

It's really up to qcom maintainers, which I am not.

> >> + };
> >> +
> >> + reset-n {
> >> + pins = "gpio2";
> >> + function = "gpio";
> >> +
> >> + drive-strength = <16>;
> >> + output-low;
> >> + bias-disable;
> >> + };
> >> +
> >> + wake-n {
> >> + pins = "gpio3";
> >> + function = "gpio";
> >> +
> >> + drive-strength = <2>;
> >> + bias-pull-up;
> >> + };
> >
> > These last two nodes with the pull-up and drive-strength settings
> > should
> > be in the board files, like the idp one, instead of here in the SoC
> > file. That way board designers can take the SoC and connect the pcie to
> > an external device using these pins and set the configuration they want
> > on these pins, or choose not to connect them to the SoC at all and use
> > those pins for something else.
> >
> > In addition, it looks like the reset could be a reset-gpios property
> > instead of an output-low config.
> >
> we are using reset property as perst gpio in pcie node.

Ok, perst-gpios should be fine. Presumably perst-gpios should be in the
board and not in the SoC because of what I wrote up above.