Message ID | 20250128062708.573662-7-quic_varada@quicinc.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add PCIe support for Qualcomm IPQ5332 | expand |
On 28/01/2025 07:27, Varadarajan Narayanan wrote: > > @@ -479,6 +519,230 @@ frame@b128000 { > status = "disabled"; > }; > }; > + > + pcie1: pcie@18000000 { > + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; > + reg = <0x00088000 0x3000>, So as Konrad pointed out now, this was never tested. It's not we who should run tests for you. It's you. It does not look like you tested the DTS against bindings. Please run `make dtbs_check W=1` (see Documentation/devicetree/bindings/writing-schema.rst or https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ for instructions). Maybe you need to update your dtschema and yamllint. Don't rely on distro packages for dtschema and be sure you are using the latest released dtschema. Best regards, Krzysztof
On Mon, Feb 03, 2025 at 05:30:32PM +0100, Krzysztof Kozlowski wrote: > On 28/01/2025 07:27, Varadarajan Narayanan wrote: > > > > @@ -479,6 +519,230 @@ frame@b128000 { > > status = "disabled"; > > }; > > }; > > + > > + pcie1: pcie@18000000 { > > + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; > > + reg = <0x00088000 0x3000>, > > So as Konrad pointed out now, this was never tested. It's not we who > should run tests for you. It's you. This was tested and it did not flag an error since it is having the order specified in the bindings. qcom,pcie.yaml has 4 reg specifications. Two of them have 'dbi' as the first register space and two of them have 'parf' as the first register space. Looks like the constraints with 'dbi' as the first entry will match with pcie@xxx and the ones with 'parf' won't match. Since IPQ5332 follows the constraints specified for sdx55 which has 'parf' as the first entry it is not able to match with pcie@xxx value. The initial version that was posted has the first 'reg' entry matching with pcie@xxx (please see [1]), since it used the ipq9574 reg constraints. Based on the feedback received [2], had to add 'mhi' area also. Since adding 'mhi' to ipq9574 would result in duplication of the sdx55 reg constraints, ipq5332 followed sdx55's constraints resulting in the reg entries getting reordered and the first reg entry vs pcie@xxx mismatch happened. To resolve this, shall I reorder the sdx55 reg bindings (and the affected DTS arch/arm/boot/dts/qcom/qcom-sdx55.dtsi). Please let me know. 1 - https://lore.kernel.org/linux-arm-msm/20241204113329.3195627-6-quic_varada@quicinc.com/ 2 - https://lore.kernel.org/linux-arm-msm/6fe09de4-c94c-495d-92a4-aa902d2519ef@oss.qualcomm.com/ > It does not look like you tested the DTS against bindings. Please run > `make dtbs_check W=1` (see > Documentation/devicetree/bindings/writing-schema.rst or > https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ > for instructions). > Maybe you need to update your dtschema and yamllint. Don't rely on > distro packages for dtschema and be sure you are using the latest > released dtschema. I run the following tests before posting the patches and go through the output to see if the nodes I added/changed have any errors or if other dtbs have been impacted by my bindings changes. export ARCH=arm64 export W=1 export DT_CHECKER_FLAGS='-v -m' export DT_SCHEMA_FILES=qcom export CHECK_DTBS=y pip3 install dtschema --upgrade make -j 16 dt_binding_check make -j 16 dtbs_check $ pip show dtschema | grep Version Version: 2024.11 Please let me know if I should add anything else to ensure my setup is up to speed. Thanks Varada
On 05/02/2025 11:49, Varadarajan Narayanan wrote: > On Mon, Feb 03, 2025 at 05:30:32PM +0100, Krzysztof Kozlowski wrote: >> On 28/01/2025 07:27, Varadarajan Narayanan wrote: >>> >>> @@ -479,6 +519,230 @@ frame@b128000 { >>> status = "disabled"; >>> }; >>> }; >>> + >>> + pcie1: pcie@18000000 { >>> + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; >>> + reg = <0x00088000 0x3000>, >> >> So as Konrad pointed out now, this was never tested. It's not we who >> should run tests for you. It's you. > > This was tested and it did not flag an error since it is having the order > specified in the bindings. qcom,pcie.yaml has 4 reg specifications. Two of Hm, then please paste results of dtbs_check W=1 testing. Here. I am 100% sure you have there warning and I don't understand your reluctance to run the tests even after pointing it out by two people. Best regards, Krzysztof
On Wed, Feb 05, 2025 at 02:47:13PM +0100, Krzysztof Kozlowski wrote: > On 05/02/2025 11:49, Varadarajan Narayanan wrote: > > On Mon, Feb 03, 2025 at 05:30:32PM +0100, Krzysztof Kozlowski wrote: > >> On 28/01/2025 07:27, Varadarajan Narayanan wrote: > >>> > >>> @@ -479,6 +519,230 @@ frame@b128000 { > >>> status = "disabled"; > >>> }; > >>> }; > >>> + > >>> + pcie1: pcie@18000000 { > >>> + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; > >>> + reg = <0x00088000 0x3000>, > >> > >> So as Konrad pointed out now, this was never tested. It's not we who > >> should run tests for you. It's you. > > > > This was tested and it did not flag an error since it is having the order > > specified in the bindings. qcom,pcie.yaml has 4 reg specifications. Two of > > > Hm, then please paste results of dtbs_check W=1 testing. Here. > > I am 100% sure you have there warning and I don't understand your > reluctance to run the tests even after pointing it out by two people. I ran the tests. Not sure which portions to paste. Have attached the full output just in case you are interested in some other detail. Please take a look. Thanks Varada $ grep ipq.*dtb dtbs-check.log DTC [C] arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5332-rdp441.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5332-rdp442.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5332-rdp468.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5332-rdp474.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq5424-rdp466.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: usb@8af8800: interrupt-names:0: 'pwr_event' was expected /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: qusb@59000: 'vdd-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names:0: 'pwr_event' was expected /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: qusb@59000: 'vdda-pll-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: qusb@59000: 'vdda-phy-dpdm-supply' is a required property Check: arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: usb@70f8800: interrupt-names: ['pwr_event', 'qusb2_phy'] is too short Check: arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb Check: arch/arm64/boot/dts/qcom/ipq5424-rdp466.dtb Check: arch/arm64/boot/dts/qcom/ipq5332-rdp442.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dtb Check: arch/arm64/boot/dts/qcom/ipq5332-rdp468.dtb Check: arch/arm64/boot/dts/qcom/ipq5332-rdp441.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dtb Check: arch/arm64/boot/dts/qcom/ipq5332-rdp474.dtb arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: /soc@0/remoteproc@cd00000: failed to match any schema with compatible: ['qcom,ipq6018-wcss-pil'] DTC [C] arch/arm64/boot/dts/qcom/ipq9574-rdp418.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq9574-rdp433.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq9574-rdp449.dtb DTC [C] arch/arm64/boot/dts/qcom/ipq9574-rdp453.dtb Check: arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@59000: 'vdd-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@59000: 'vdda-pll-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@59000: 'vdda-phy-dpdm-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@79000: 'vdd-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@79000: 'vdda-pll-supply' is a required property /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb: phy@79000: 'vdda-phy-dpdm-supply' is a required property DTC [C] arch/arm64/boot/dts/qcom/ipq9574-rdp454.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dtb: usb@8af8800: interrupt-names: ['pwr_event'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dtb: usb@8af8800: interrupts-extended: [[1, 0, 134, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dtb: usb@8af8800: interrupt-names: ['pwr_event'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dtb: usb@8af8800: interrupts-extended: [[1, 0, 134, 4]] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dtb: usb@8af8800: interrupt-names: ['pwr_event'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dtb: usb@8af8800: interrupts-extended: [[1, 0, 134, 4]] is too short Check: arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dtb Check: arch/arm64/boot/dts/qcom/ipq8074-hk01.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dtb: usb@8af8800: interrupt-names: ['pwr_event'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dtb: usb@8af8800: interrupts-extended: [[1, 0, 134, 4]] is too short Check: arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dtb /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dtb: usb@8af8800: interrupt-names: ['pwr_event'] is too short /local/mnt/workspace/varada/upstream/pci-v10/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dtb: usb@8af8800: interrupts-extended: [[1, 0, 134, 4]] is too short Check: arch/arm64/boot/dts/qcom/ipq9574-rdp418.dtb Check: arch/arm64/boot/dts/qcom/ipq9574-rdp449.dtb Check: arch/arm64/boot/dts/qcom/ipq9574-rdp453.dtb Check: arch/arm64/boot/dts/qcom/ipq9574-rdp433.dtb Check: arch/arm64/boot/dts/qcom/ipq9574-rdp454.dtb
On 05/02/2025 16:35, Varadarajan Narayanan wrote: > On Wed, Feb 05, 2025 at 02:47:13PM +0100, Krzysztof Kozlowski wrote: >> On 05/02/2025 11:49, Varadarajan Narayanan wrote: >>> On Mon, Feb 03, 2025 at 05:30:32PM +0100, Krzysztof Kozlowski wrote: >>>> On 28/01/2025 07:27, Varadarajan Narayanan wrote: >>>>> >>>>> @@ -479,6 +519,230 @@ frame@b128000 { >>>>> status = "disabled"; >>>>> }; >>>>> }; >>>>> + >>>>> + pcie1: pcie@18000000 { >>>>> + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; >>>>> + reg = <0x00088000 0x3000>, >>>> >>>> So as Konrad pointed out now, this was never tested. It's not we who >>>> should run tests for you. It's you. >>> >>> This was tested and it did not flag an error since it is having the order >>> specified in the bindings. qcom,pcie.yaml has 4 reg specifications. Two of >> >> >> Hm, then please paste results of dtbs_check W=1 testing. Here. >> >> I am 100% sure you have there warning and I don't understand your >> reluctance to run the tests even after pointing it out by two people. > > I ran the tests. Not sure which portions to paste. Have attached the full > output just in case you are interested in some other detail. Please take a > look. > > Thanks > Varada > > $ grep ipq.*dtb dtbs-check.log Where is the command you have used? Best regards, Krzysztof
On 05/02/2025 16:53, Krzysztof Kozlowski wrote: > On 05/02/2025 16:35, Varadarajan Narayanan wrote: >> On Wed, Feb 05, 2025 at 02:47:13PM +0100, Krzysztof Kozlowski wrote: >>> On 05/02/2025 11:49, Varadarajan Narayanan wrote: >>>> On Mon, Feb 03, 2025 at 05:30:32PM +0100, Krzysztof Kozlowski wrote: >>>>> On 28/01/2025 07:27, Varadarajan Narayanan wrote: >>>>>> >>>>>> @@ -479,6 +519,230 @@ frame@b128000 { >>>>>> status = "disabled"; >>>>>> }; >>>>>> }; >>>>>> + >>>>>> + pcie1: pcie@18000000 { >>>>>> + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; >>>>>> + reg = <0x00088000 0x3000>, >>>>> >>>>> So as Konrad pointed out now, this was never tested. It's not we who >>>>> should run tests for you. It's you. >>>> >>>> This was tested and it did not flag an error since it is having the order >>>> specified in the bindings. qcom,pcie.yaml has 4 reg specifications. Two of >>> >>> >>> Hm, then please paste results of dtbs_check W=1 testing. Here. >>> >>> I am 100% sure you have there warning and I don't understand your >>> reluctance to run the tests even after pointing it out by two people. >> >> I ran the tests. Not sure which portions to paste. Have attached the full >> output just in case you are interested in some other detail. Please take a >> look. >> >> Thanks >> Varada >> >> $ grep ipq.*dtb dtbs-check.log > > Where is the command you have used? Although that might not matter - you skipped several warnings with your grep. So maybe you need to fix your process, not sure. Best regards, Krzysztof
diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi index ca3da95730bd..e5c920c21974 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi @@ -186,6 +186,46 @@ rng: rng@e3000 { clock-names = "core"; }; + pcie0_phy: phy@4b0000 { + compatible = "qcom,ipq5332-uniphy-pcie-phy"; + reg = <0x004b0000 0x800>; + + clocks = <&gcc GCC_PCIE3X1_0_PIPE_CLK>, + <&gcc GCC_PCIE3X1_PHY_AHB_CLK>; + + resets = <&gcc GCC_PCIE3X1_0_PHY_BCR>, + <&gcc GCC_PCIE3X1_PHY_AHB_CLK_ARES>, + <&gcc GCC_PCIE3X1_0_PHY_PHY_BCR>; + + #clock-cells = <0>; + + #phy-cells = <0>; + + num-lanes = <1>; + + status = "disabled"; + }; + + pcie1_phy: phy@4b1000 { + compatible = "qcom,ipq5332-uniphy-pcie-phy"; + reg = <0x004b1000 0x1000>; + + clocks = <&gcc GCC_PCIE3X2_PIPE_CLK>, + <&gcc GCC_PCIE3X2_PHY_AHB_CLK>; + + resets = <&gcc GCC_PCIE3X2_PHY_BCR>, + <&gcc GCC_PCIE3X2_PHY_AHB_CLK_ARES>, + <&gcc GCC_PCIE3X2PHY_PHY_BCR>; + + #clock-cells = <0>; + + #phy-cells = <0>; + + num-lanes = <2>; + + status = "disabled"; + }; + tlmm: pinctrl@1000000 { compatible = "qcom,ipq5332-tlmm"; reg = <0x01000000 0x300000>; @@ -212,8 +252,8 @@ gcc: clock-controller@1800000 { #interconnect-cells = <1>; clocks = <&xo_board>, <&sleep_clk>, - <0>, - <0>, + <&pcie1_phy>, + <&pcie0_phy>, <0>; }; @@ -479,6 +519,230 @@ frame@b128000 { status = "disabled"; }; }; + + pcie1: pcie@18000000 { + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; + reg = <0x00088000 0x3000>, + <0x18000000 0xf1d>, + <0x18000f20 0xa8>, + <0x18001000 0x1000>, + <0x18100000 0x1000>, + <0x0008b000 0x1000>; + reg-names = "parf", + "dbi", + "elbi", + "atu", + "config", + "mhi"; + device_type = "pci"; + linux,pci-domain = <1>; + num-lanes = <2>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x18200000 0x0 0x00100000>, + <0x02000000 0x0 0x18300000 0x18300000 0x0 0x07d00000>; + + msi-map = <0x0 &v2m0 0x0 0xffd>; + + interrupts = <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 412 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 0 413 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 0 414 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 0 415 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE3X2_AXI_M_CLK>, + <&gcc GCC_PCIE3X2_AXI_S_CLK>, + <&gcc GCC_PCIE3X2_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE3X2_RCHG_CLK>, + <&gcc GCC_PCIE3X2_AHB_CLK>, + <&gcc GCC_PCIE3X2_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE3X2_AUX_CLK>, + <&gcc GCC_PCIE3X2_AXI_M_CLK>, + <&gcc GCC_PCIE3X2_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE3X2_AXI_S_CLK>, + <&gcc GCC_PCIE3X2_RCHG_CLK>; + + assigned-clock-rates = <2000000>, + <266666666>, + <240000000>, + <240000000>, + <100000000>; + + resets = <&gcc GCC_PCIE3X2_PIPE_ARES>, + <&gcc GCC_PCIE3X2_CORE_STICKY_ARES>, + <&gcc GCC_PCIE3X2_AXI_S_STICKY_ARES>, + <&gcc GCC_PCIE3X2_AXI_S_CLK_ARES>, + <&gcc GCC_PCIE3X2_AXI_M_STICKY_ARES>, + <&gcc GCC_PCIE3X2_AXI_M_CLK_ARES>, + <&gcc GCC_PCIE3X2_AUX_CLK_ARES>, + <&gcc GCC_PCIE3X2_AHB_CLK_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + phys = <&pcie1_phy>; + phy-names = "pciephy"; + + interconnects = <&gcc MASTER_SNOC_PCIE3_2_M &gcc SLAVE_SNOC_PCIE3_2_M>, + <&gcc MASTER_ANOC_PCIE3_2_S &gcc SLAVE_ANOC_PCIE3_2_S>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; + + pcie0: pcie@20000000 { + compatible = "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; + reg = <0x00080000 0x3000>, + <0x20000000 0xf1d>, + <0x20000f20 0xa8>, + <0x20001000 0x1000>, + <0x20100000 0x1000>, + <0x00083000 0x1000>; + reg-names = "parf", + "dbi", + "elbi", + "atu", + "config", + "mhi"; + device_type = "pci"; + linux,pci-domain = <0>; + num-lanes = <1>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x20200000 0x0 0x00100000>, + <0x02000000 0x0 0x20300000 0x20300000 0x0 0x0fd00000>; + + msi-map = <0x0 &v2m0 0x0 0xffd>; + + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 35 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 0 36 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 0 37 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 0 38 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE3X1_0_AXI_M_CLK>, + <&gcc GCC_PCIE3X1_0_AXI_S_CLK>, + <&gcc GCC_PCIE3X1_0_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE3X1_0_RCHG_CLK>, + <&gcc GCC_PCIE3X1_0_AHB_CLK>, + <&gcc GCC_PCIE3X1_0_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE3X1_0_AUX_CLK>, + <&gcc GCC_PCIE3X1_0_AXI_M_CLK>, + <&gcc GCC_PCIE3X1_0_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE3X1_0_AXI_S_CLK>, + <&gcc GCC_PCIE3X1_0_RCHG_CLK>; + + assigned-clock-rates = <2000000>, + <240000000>, + <240000000>, + <240000000>, + <100000000>; + + resets = <&gcc GCC_PCIE3X1_0_PIPE_ARES>, + <&gcc GCC_PCIE3X1_0_CORE_STICKY_ARES>, + <&gcc GCC_PCIE3X1_0_AXI_S_STICKY_ARES>, + <&gcc GCC_PCIE3X1_0_AXI_S_CLK_ARES>, + <&gcc GCC_PCIE3X1_0_AXI_M_STICKY_ARES>, + <&gcc GCC_PCIE3X1_0_AXI_M_CLK_ARES>, + <&gcc GCC_PCIE3X1_0_AUX_CLK_ARES>, + <&gcc GCC_PCIE3X1_0_AHB_CLK_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + phys = <&pcie0_phy>; + phy-names = "pciephy"; + + interconnects = <&gcc MASTER_SNOC_PCIE3_1_M &gcc SLAVE_SNOC_PCIE3_1_M>, + <&gcc MASTER_ANOC_PCIE3_1_S &gcc SLAVE_ANOC_PCIE3_1_S>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; }; timer {