2020-05-17 11:05:31

by Rakesh Pillai

[permalink] [raw]
Subject: [PATCH v9] arm64: dts: qcom: sc7180: Add WCN3990 WLAN module device node

Add device node for the ath10k SNOC platform driver probe
and add resources required for WCN3990 on sc7180 soc.

Signed-off-by: Rakesh Pillai <[email protected]>
---
Changes from v8:
- Removed the qcom,msa-fixed-perm
---
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 7 +++++++
arch/arm64/boot/dts/qcom/sc7180.dtsi | 27 +++++++++++++++++++++++++++
2 files changed, 34 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
index 4e9149d..38b102e 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
@@ -389,6 +389,13 @@
};
};

+&wifi {
+ status = "okay";
+ wifi-firmware {
+ iommus = <&apps_smmu 0xc2 0x1>;
+ };
+};
+
/* PINCTRL - additions to nodes defined in sc7180.dtsi */

&qspi_clk {
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index f1280e0..dd4e095 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -63,6 +63,11 @@
clock-frequency = <32764>;
#clock-cells = <0>;
};
+
+ wlan_fw_mem: memory@94100000 {
+ reg = <0 0x94100000 0 0x200000>;
+ no-map;
+ };
};

reserved_memory: reserved-memory {
@@ -944,6 +949,28 @@
};
};

+ wifi: wifi@18800000 {
+ compatible = "qcom,wcn3990-wifi";
+ reg = <0 0x18800000 0 0x800000>;
+ reg-names = "membase";
+ iommus = <&apps_smmu 0xc0 0x1>;
+ interrupts =
+ <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH /* CE0 */ >,
+ <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH /* CE1 */ >,
+ <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH /* CE2 */ >,
+ <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH /* CE3 */ >,
+ <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH /* CE4 */ >,
+ <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH /* CE5 */ >,
+ <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH /* CE6 */ >,
+ <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH /* CE7 */ >,
+ <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH /* CE8 */ >,
+ <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH /* CE9 */ >,
+ <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH /* CE10 */>,
+ <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH /* CE11 */>;
+ memory-region = <&wlan_fw_mem>;
+ status = "disabled";
+ };
+
config_noc: interconnect@1500000 {
compatible = "qcom,sc7180-config-noc";
reg = <0 0x01500000 0 0x28000>;
--
2.7.4


2020-05-19 17:30:54

by Evan Green

[permalink] [raw]
Subject: Re: [PATCH v9] arm64: dts: qcom: sc7180: Add WCN3990 WLAN module device node

On Sun, May 17, 2020 at 3:47 AM Rakesh Pillai <[email protected]> wrote:
>
> Add device node for the ath10k SNOC platform driver probe
> and add resources required for WCN3990 on sc7180 soc.
>
> Signed-off-by: Rakesh Pillai <[email protected]>
> ---
> Changes from v8:
> - Removed the qcom,msa-fixed-perm
> ---
> arch/arm64/boot/dts/qcom/sc7180-idp.dts | 7 +++++++
> arch/arm64/boot/dts/qcom/sc7180.dtsi | 27 +++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> index 4e9149d..38b102e 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> @@ -389,6 +389,13 @@
> };
> };
>
> +&wifi {
> + status = "okay";
> + wifi-firmware {
> + iommus = <&apps_smmu 0xc2 0x1>;
> + };
> +};
> +
> /* PINCTRL - additions to nodes defined in sc7180.dtsi */
>
> &qspi_clk {
> diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> index f1280e0..dd4e095 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> @@ -63,6 +63,11 @@
> clock-frequency = <32764>;
> #clock-cells = <0>;
> };
> +
> + wlan_fw_mem: memory@94100000 {
> + reg = <0 0x94100000 0 0x200000>;
> + no-map;
> + };

This node is not in the right place. Up through v8, this lived inside
reserved-memory. Here it seems to apply into the clocks {} node, which
is not the right spot.


> };
>
> reserved_memory: reserved-memory {
> @@ -944,6 +949,28 @@
> };
> };
>
> + wifi: wifi@18800000 {
> + compatible = "qcom,wcn3990-wifi";
> + reg = <0 0x18800000 0 0x800000>;
> + reg-names = "membase";
> + iommus = <&apps_smmu 0xc0 0x1>;
> + interrupts =
> + <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH /* CE0 */ >,
> + <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH /* CE1 */ >,
> + <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH /* CE2 */ >,
> + <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH /* CE3 */ >,
> + <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH /* CE4 */ >,
> + <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH /* CE5 */ >,
> + <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH /* CE6 */ >,
> + <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH /* CE7 */ >,
> + <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH /* CE8 */ >,
> + <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH /* CE9 */ >,
> + <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH /* CE10 */>,
> + <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH /* CE11 */>;
> + memory-region = <&wlan_fw_mem>;

Should any of the *-supply regulators be specified? Or are they all
board specific? Or just not needed? The example has these:
vdd-0.8-cx-mx-supply = <&pm8998_l5>;
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;



> + status = "disabled";
> + };
> +
> config_noc: interconnect@1500000 {
> compatible = "qcom,sc7180-config-noc";
> reg = <0 0x01500000 0 0x28000>;
> --
> 2.7.4

2020-05-19 18:54:39

by Rakesh Pillai

[permalink] [raw]
Subject: RE: [PATCH v9] arm64: dts: qcom: sc7180: Add WCN3990 WLAN module device node

Hi Evan,


> -----Original Message-----
> From: Evan Green <[email protected]>
> Sent: Tuesday, May 19, 2020 10:58 PM
> To: Rakesh Pillai <[email protected]>
> Cc: open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
> <[email protected]>; linux-arm Mailing List <linux-arm-
> [email protected]>; LKML <[email protected]>; linux-
> arm-msm <[email protected]>
> Subject: Re: [PATCH v9] arm64: dts: qcom: sc7180: Add WCN3990 WLAN
> module device node
>
> On Sun, May 17, 2020 at 3:47 AM Rakesh Pillai <[email protected]>
> wrote:
> >
> > Add device node for the ath10k SNOC platform driver probe
> > and add resources required for WCN3990 on sc7180 soc.
> >
> > Signed-off-by: Rakesh Pillai <[email protected]>
> > ---
> > Changes from v8:
> > - Removed the qcom,msa-fixed-perm
> > ---
> > arch/arm64/boot/dts/qcom/sc7180-idp.dts | 7 +++++++
> > arch/arm64/boot/dts/qcom/sc7180.dtsi | 27
> +++++++++++++++++++++++++++
> > 2 files changed, 34 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > index 4e9149d..38b102e 100644
> > --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > @@ -389,6 +389,13 @@
> > };
> > };
> >
> > +&wifi {
> > + status = "okay";
> > + wifi-firmware {
> > + iommus = <&apps_smmu 0xc2 0x1>;
> > + };
> > +};
> > +
> > /* PINCTRL - additions to nodes defined in sc7180.dtsi */
> >
> > &qspi_clk {
> > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > index f1280e0..dd4e095 100644
> > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > @@ -63,6 +63,11 @@
> > clock-frequency = <32764>;
> > #clock-cells = <0>;
> > };
> > +
> > + wlan_fw_mem: memory@94100000 {
> > + reg = <0 0x94100000 0 0x200000>;
> > + no-map;
> > + };
>
> This node is not in the right place. Up through v8, this lived inside
> reserved-memory. Here it seems to apply into the clocks {} node, which
> is not the right spot.

Thanks for spotting this. This was a rebase problem.
I will post the next patchset by fixing this.



>
>
> > };
> >
> > reserved_memory: reserved-memory {
> > @@ -944,6 +949,28 @@
> > };
> > };
> >
> > + wifi: wifi@18800000 {
> > + compatible = "qcom,wcn3990-wifi";
> > + reg = <0 0x18800000 0 0x800000>;
> > + reg-names = "membase";
> > + iommus = <&apps_smmu 0xc0 0x1>;
> > + interrupts =
> > + <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH /* CE0 */ >,
> > + <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH /* CE1 */ >,
> > + <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH /* CE2 */ >,
> > + <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH /* CE3 */ >,
> > + <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH /* CE4 */ >,
> > + <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH /* CE5 */ >,
> > + <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH /* CE6 */ >,
> > + <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH /* CE7 */ >,
> > + <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH /* CE8 */ >,
> > + <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH /* CE9 */ >,
> > + <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH /* CE10 */>,
> > + <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH /* CE11 */>;
> > + memory-region = <&wlan_fw_mem>;
>
> Should any of the *-supply regulators be specified? Or are they all
> board specific? Or just not needed? The example has these:
> vdd-0.8-cx-mx-supply = <&pm8998_l5>;
> vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
> vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
> vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;

These votes are optional and were required for older targets.
We do not need these proxy votes in host now.


>
>
>
> > + status = "disabled";
> > + };
> > +
> > config_noc: interconnect@1500000 {
> > compatible = "qcom,sc7180-config-noc";
> > reg = <0 0x01500000 0 0x28000>;
> > --
> > 2.7.4