[PATCH v1 3/4] arm64: dts: qcom: Add PCIe 3 support for HAMOA-IOT-SOM platform

Bjorn Andersson andersson at kernel.org
Mon Oct 27 08:57:13 PDT 2025


On Tue, Oct 14, 2025 at 11:13:42AM +0530, Krishna Chaitanya Chundru wrote:
> 
> 
> On 9/22/2025 1:25 PM, Ziyue Zhang wrote:
> > Update the HAMOA-IOT-SOM device tree to enable PCIe 3 support. Add perst
> > wake and clkreq sideband signals and required regulators in PCIe3
> > controller and PHY device tree node.

The commit message should answer the questions I pose below. This
message explains what you change, but it doesn't explain why.

Start your commit message by describing the hardware, then follow that
with the description of your change.

> > 
> > Signed-off-by: Ziyue Zhang <ziyue.zhang at oss.qualcomm.com
> > ---
> >   arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 70 +++++++++++++++++++++
> >   1 file changed, 70 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
> > index 0c8ae34c1f37..7486204a4a46 100644
> > --- a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
> > @@ -390,6 +390,53 @@ &gpu_zap_shader {
> >   	firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
> >   };
> > +&pm8550ve_8_gpios {
> > +	pcie_x8_12v: pcie-12v-default-state {
> > +		pins = "gpio8";
> > +		function = "normal";
> > +		output-enable;
> > +		output-high;
> > +		bias-pull-down;
> > +		power-source = <0>;
> > +	};
> > +};
> > +
> > +&pmc8380_3_gpios {
> > +	pm_sde7_aux_3p3_en: pcie-aux-3p3-default-state {
> > +		pins = "gpio8";
> > +		function = "normal";
> > +		output-enable;
> > +		output-high;
> > +		bias-pull-down;
> > +		power-source = <0>;
> > +	};
> > +
> > +	pm_sde7_main_3p3_en: pcie-main-3p3-default-state {
> > +		pins = "gpio6";
> > +		function = "normal";
> > +		output-enable;
> > +		output-high;
> > +		bias-pull-down;
> > +		power-source = <0>;
> > +	};
> > +};
> Either squash patch 3/4 with 4/4 or move these pin configuration to
> patch 4/4.
> 

Patch 3 defines properties for the SOM and patch 4 defines properties
for the EVK board, so the split sounds reasonable.

But looking at the details, why would the SOM define these states? Isn't
it the carrier board that contains the related regulators? If I use this
SOM in my design, does my board have to have a 12V supply to my x8 PCIe
that's being controlled by gpio8?


In other words, I think you're right.

Regards,
Bjorn

> - Krishna Chaitanya.
> > +
> > +&pcie3 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pcie3_default>;
> > +	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
> > +	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pcie3_phy {
> > +	vdda-phy-supply = <&vreg_l3c_0p8>;
> > +	vdda-pll-supply = <&vreg_l3e_1p2>;
> > +
> > +	status = "okay";
> > +};
> > +
> >   &pcie4 {
> >   	perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> >   	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> > @@ -471,6 +518,29 @@ &tlmm {
> >   	gpio-reserved-ranges = <34 2>, /* TPM LP & INT */
> >   			       <44 4>; /* SPI (TPM) */
> > +	pcie3_default: pcie3-default-state {
> > +		clkreq-n-pins {
> > +			pins = "gpio144";
> > +			function = "pcie3_clk";
> > +			drive-strength = <2>;
> > +			bias-pull-up;
> > +		};
> > +
> > +		perst-n-pins {
> > +			pins = "gpio143";
> > +			function = "gpio";
> > +			drive-strength = <2>;
> > +			bias-pull-down;
> > +		};
> > +
> > +		wake-n-pins {
> > +			pins = "gpio145";
> > +			function = "gpio";
> > +			drive-strength = <2>;
> > +			bias-pull-up;
> > +		};
> > +	};
> > +
> >   	pcie4_default: pcie4-default-state {
> >   		clkreq-n-pins {
> >   			pins = "gpio147";



More information about the linux-phy mailing list