diff --git a/Documentation/devicetree/bindings/net/r8125 b/Documentation/devicetree/bindings/net/r8125 new file mode 100644 index 000000000000..d302869dbb4b --- /dev/null +++ b/Documentation/devicetree/bindings/net/r8125 @@ -0,0 +1,33 @@ +Realtek r8125B Ethernet Controller + +Required properties: + +- compatible : should be "realtek,rtl-8125" + +If SMMU is present, also use: + +- qcom,smmu : if present, SMMU attach is performed +- qcom,smmu-iova-base : SMMU IOVA start address the device can access +- qcom,smmu-iova-size : SMMU IOVA size the device can access + +Optional Properties: + +- qcom,smmu-attr-fastmap : Enables SMMU fastmap +- qcom,smmu-attr-atomic : Enables DMA alloc using GFP_ATOMIC + +Example: + +&pcie_rc0 { + + r8125_x1: qcom,r8125@0 { + compatible = realtek,rtl-8125"; + + qcom,smmu; + qcom,smmu-iova-base = /bits/ 64 <0x0>; + qcom,smmu-iova-size = /bits/ 64 <0x100000000>; + + qcom,smmu-attr-atomic; + qcom,smmu-attr-fastmap; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/sdxprairie-qcom-smmu.dtsi b/arch/arm64/boot/dts/qcom/sdxprairie-qcom-smmu.dtsi new file mode 100644 index 000000000000..931dc712da90 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdxprairie-qcom-smmu.dtsi @@ -0,0 +1,38 @@ +/* Copyright (c) 2020, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +&pcie0_rp { + realtek,rtl8125@pcie0_rp { + reg = <0 0 0 0 0>; + + compatible = "realtek,rtl-8125"; + + pci-ids = + "10ec:8125", + "10ec:3000"; + + qcom,smmu; + + /* IOVA range is restricted to avoid conflicts with PCI BAR + * space, Q6 SMEM and IOVA spaces used by peripherals that are + * currently attached to IPA. + */ + qcom,smmu-iova-base = /bits/ 64 <0x80000000>; + qcom,smmu-iova-size = /bits/ 64 <0x0FE40000>; + + qcom,smmu-attr-atomic; + qcom,smmu-attr-fastmap; + + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/sdxprairie.dtsi b/arch/arm64/boot/dts/qcom/sdxprairie.dtsi index 3b65fa169b0f..745ac272a475 100644 --- a/arch/arm64/boot/dts/qcom/sdxprairie.dtsi +++ b/arch/arm64/boot/dts/qcom/sdxprairie.dtsi @@ -1612,6 +1612,7 @@ #include "sdxprairie-coresight.dtsi" #include "sdxprairie-aqc.dtsi" #include "sdxprairie-thermal.dtsi" +#include "sdxprairie-qcom-smmu.dtsi" &gdsc_usb30 { status = "ok";