2020-01-28 10:35:16

by Rakesh Pillai

[permalink] [raw]
Subject: [PATCH v4] 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]>
---
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 5 +++++
arch/arm64/boot/dts/qcom/sc7180.dtsi | 28 ++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
index 189254f..151b489 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
@@ -248,6 +248,11 @@
status = "okay";
};

+&wifi {
+ status = "okay";
+ qcom,msa-fixed-perm;
+};
+
/* PINCTRL - additions to nodes defined in sc7180.dtsi */

&qup_i2c2_default {
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 666e9b9..7efb97f 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -42,6 +42,12 @@
compatible = "qcom,cmd-db";
no-map;
};
+
+ wlan_fw_mem: memory@93900000 {
+ compatible = "removed-dma-pool";
+ no-map;
+ reg = <0 0x93900000 0 0x200000>;
+ };
};

cpus {
@@ -1119,6 +1125,28 @@
#clock-cells = <1>;
};
};
+
+ 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";
+ };
};

timer {
--
2.7.4


2020-01-28 19:21:35

by Matthias Kaehlcke

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

Hi Rakesh,

On Tue, Jan 28, 2020 at 04:03:37PM +0530, Rakesh Pillai 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]>
> ---
> arch/arm64/boot/dts/qcom/sc7180-idp.dts | 5 +++++
> arch/arm64/boot/dts/qcom/sc7180.dtsi | 28 ++++++++++++++++++++++++++++
> 2 files changed, 33 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> index 189254f..151b489 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> @@ -248,6 +248,11 @@
> status = "okay";
> };
>
> +&wifi {
> + status = "okay";
> + qcom,msa-fixed-perm;
> +};
> +
> /* PINCTRL - additions to nodes defined in sc7180.dtsi */
>
> &qup_i2c2_default {
> diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> index 666e9b9..7efb97f 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> @@ -42,6 +42,12 @@
> compatible = "qcom,cmd-db";
> no-map;
> };
> +
> + wlan_fw_mem: memory@93900000 {
> + compatible = "removed-dma-pool";
> + no-map;
> + reg = <0 0x93900000 0 0x200000>;
> + };
> };

This part doesn't apply cleanly on qcom/for-next, looks like you have to
rebase.

> cpus {
> @@ -1119,6 +1125,28 @@
> #clock-cells = <1>;
> };
> };
> +
> + wifi: wifi@18800000 {

You added this node at the end of the file, outside of the 'soc' node.
It should be inside the 'soc' node, the sub-nodes are ordered by address,
so (currently) this node should be inserted after 'cpufreq@18323000'.

> + compatible = "qcom,wcn3990-wifi";
> + reg = <0 0x18800000 0 0x800000>;
> + reg-names = "membase";
> + iommus = <&apps_smmu 0xC0 0x1>;

nit: the convention is to use lowercase characters for hex adresses.

> + 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 */>;

not sure these 'CEx' comments after each interrupt add much value. What does
'CE' stand for in the first place?

Thanks

Matthias

2020-01-29 05:48:57

by Rakesh Pillai

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

Hi Matthias,

Please find my replies inline.


> -----Original Message-----
> From: Matthias Kaehlcke <[email protected]>
> Sent: Wednesday, January 29, 2020 12:50 AM
> To: Rakesh Pillai <[email protected]>
> Cc: [email protected]; [email protected]; linux-
> [email protected]; [email protected]
> Subject: Re: [PATCH v4] arm64: dts: qcom: sc7180: Add WCN3990 WLAN
> module device node
>
> Hi Rakesh,
>
> On Tue, Jan 28, 2020 at 04:03:37PM +0530, Rakesh Pillai 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]>
> > ---
> > arch/arm64/boot/dts/qcom/sc7180-idp.dts | 5 +++++
> > arch/arm64/boot/dts/qcom/sc7180.dtsi | 28
> ++++++++++++++++++++++++++++
> > 2 files changed, 33 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > index 189254f..151b489 100644
> > --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
> > @@ -248,6 +248,11 @@
> > status = "okay";
> > };
> >
> > +&wifi {
> > + status = "okay";
> > + qcom,msa-fixed-perm;
> > +};
> > +
> > /* PINCTRL - additions to nodes defined in sc7180.dtsi */
> >
> > &qup_i2c2_default {
> > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > index 666e9b9..7efb97f 100644
> > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > @@ -42,6 +42,12 @@
> > compatible = "qcom,cmd-db";
> > no-map;
> > };
> > +
> > + wlan_fw_mem: memory@93900000 {
> > + compatible = "removed-dma-pool";
> > + no-map;
> > + reg = <0 0x93900000 0 0x200000>;
> > + };
> > };
>
> This part doesn't apply cleanly on qcom/for-next, looks like you have to
> rebase.

[Rakesh]: let me rebase it and send out the next version.

>
> > cpus {
> > @@ -1119,6 +1125,28 @@
> > #clock-cells = <1>;
> > };
> > };
> > +
> > + wifi: wifi@18800000 {
>
> You added this node at the end of the file, outside of the 'soc' node.
> It should be inside the 'soc' node, the sub-nodes are ordered by address,
> so (currently) this node should be inserted after 'cpufreq@18323000'.

[Rakesh] Will update this in the next patchset. (Possibly this was caused due to rebase conflicts)


>
> > + compatible = "qcom,wcn3990-wifi";
> > + reg = <0 0x18800000 0 0x800000>;
> > + reg-names = "membase";
> > + iommus = <&apps_smmu 0xC0 0x1>;
>
> nit: the convention is to use lowercase characters for hex adresses.

[Rakesh]: Will change it.

>
> > + 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
> */>;
>
> not sure these 'CEx' comments after each interrupt add much value. What
> does
> 'CE' stand for in the first place?

[Rakesh]: CE stands for Copy engine. These are the copy engine interrupts, hence the comments.

>
> Thanks
>
> Matthias