[PATCH v4 4/6] arm64: dts: imx8mp: Add iMX8MP PCIe support

Hongxing Zhu hongxing.zhu at nxp.com
Mon Aug 29 19:58:51 PDT 2022


> -----Original Message-----
> From: Lucas Stach <l.stach at pengutronix.de>
> Sent: 2022年8月29日 23:23
> To: Hongxing Zhu <hongxing.zhu at nxp.com>; p.zabel at pengutronix.de;
> bhelgaas at google.com; lorenzo.pieralisi at arm.com; robh at kernel.org;
> shawnguo at kernel.org; vkoul at kernel.org; alexander.stein at ew.tq-group.com;
> marex at denx.de; richard.leitner at linux.dev
> Cc: linux-phy at lists.infradead.org; devicetree at vger.kernel.org;
> linux-pci at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
> linux-kernel at vger.kernel.org; kernel at pengutronix.de; dl-linux-imx
> <linux-imx at nxp.com>
> Subject: Re: [PATCH v4 4/6] arm64: dts: imx8mp: Add iMX8MP PCIe support
> 
> Am Montag, dem 29.08.2022 um 16:15 +0800 schrieb Richard Zhu:
> > Add i.MX8MP PCIe support.
> >
> > Signed-off-by: Richard Zhu <hongxing.zhu at nxp.com>
> > Tested-by: Marek Vasut <marex at denx.de>
> > Tested-by: Richard Leitner <richard.leitner at skidata.com>
> > Tested-by: Alexander Stein <alexander.stein at ew.tq-group.com>
> > ---
> >  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 46
> > ++++++++++++++++++++++-
> >  1 file changed, 45 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > index fe178b7d063c..d11f079fd1f3 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > @@ -5,6 +5,7 @@
> >
> >  #include <dt-bindings/clock/imx8mp-clock.h>
> >  #include <dt-bindings/power/imx8mp-power.h>
> > +#include <dt-bindings/reset/imx8mp-reset.h>
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include <dt-bindings/input/input.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> > @@ -410,7 +411,8 @@ iomuxc: pinctrl at 30330000 {
> >  			};
> >
> >  			gpr: iomuxc-gpr at 30340000 {
> > -				compatible = "fsl,imx8mp-iomuxc-gpr", "syscon";
> > +				compatible = "fsl,imx8mp-iomuxc-gpr",
> > +					     "fsl,imx6q-iomuxc-gpr", "syscon";
> 
> I don't like this part. The iomux GPR in the i.MX8M* is not really compatible
> with the i.MX6Q, so I think it's a pretty bad idea to claim it is. Why can't we
> have this syscon looked up by phandle, like we discussed in some early version
> of the i.MX8MM patchset? Sorry, for not catching this on the 8MM submission,
> I was pretty busy back then.
Okay, got that. Thanks.
Would be changed, and fetch the gpr regmap by phandle in v5 later.

Best Regards
Richard Zhu

> 
> Regards,
> Lucas
> 
> >  				reg = <0x30340000 0x10000>;
> >  			};
> >
> > @@ -1084,6 +1086,17 @@ media_blk_ctrl: blk-ctrl at 32ec0000 {
> >  				#power-domain-cells = <1>;
> >  			};
> >
> > +			pcie_phy: pcie-phy at 32f00000 {
> > +				compatible = "fsl,imx8mp-pcie-phy";
> > +				reg = <0x32f00000 0x10000>;
> > +				resets = <&src IMX8MP_RESET_PCIEPHY>,
> > +					 <&src IMX8MP_RESET_PCIEPHY_PERST>;
> > +				reset-names = "pciephy", "perst";
> > +				power-domains = <&hsio_blk_ctrl
> IMX8MP_HSIOBLK_PD_PCIE_PHY>;
> > +				#phy-cells = <0>;
> > +				status = "disabled";
> > +			};
> > +
> >  			hsio_blk_ctrl: blk-ctrl at 32f10000 {
> >  				compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon";
> >  				reg = <0x32f10000 0x24>;
> > @@ -1099,6 +1112,37 @@ hsio_blk_ctrl: blk-ctrl at 32f10000 {
> >  			};
> >  		};
> >
> > +		pcie: pcie at 33800000 {
> > +			compatible = "fsl,imx8mp-pcie";
> > +			reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>;
> > +			reg-names = "dbi", "config";
> > +			#address-cells = <3>;
> > +			#size-cells = <2>;
> > +			device_type = "pci";
> > +			bus-range = <0x00 0xff>;
> > +			ranges =  <0x81000000 0 0x00000000 0x1ff80000 0
> 0x00010000>, /* downstream I/O 64KB */
> > +				  <0x82000000 0 0x18000000 0x18000000 0
> 0x07f00000>; /* non-prefetchable memory */
> > +			num-lanes = <1>;
> > +			num-viewport = <4>;
> > +			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
> > +			interrupt-names = "msi";
> > +			#interrupt-cells = <1>;
> > +			interrupt-map-mask = <0 0 0 0x7>;
> > +			interrupt-map = <0 0 0 1 &gic GIC_SPI 126
> IRQ_TYPE_LEVEL_HIGH>,
> > +					<0 0 0 2 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
> > +					<0 0 0 3 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
> > +					<0 0 0 4 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> > +			fsl,max-link-speed = <3>;
> > +			linux,pci-domain = <0>;
> > +			power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>;
> > +			resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>,
> > +				 <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>;
> > +			reset-names = "apps", "turnoff";
> > +			phys = <&pcie_phy>;
> > +			phy-names = "pcie-phy";
> > +			status = "disabled";
> > +		};
> > +
> >  		gpu3d: gpu at 38000000 {
> >  			compatible = "vivante,gc";
> >  			reg = <0x38000000 0x8000>;
> 



More information about the linux-arm-kernel mailing list