Re: [PATCH 9/9] arm64: dts: qcom: msm8953: Add remote processor nodes

Sireesh Kodali
2022-05-12T09:20:04Z

On Wed May 11, 2022 at 11:25 PM IST, Krzysztof Kozlowski wrote:
> On 11/05/2022 18:16, Sireesh Kodali wrote:
> > This commit adds the modem (q6v5_mss), WiFi (wcnss-pil) and audio DSP
> > (q6v5_pas) remote processor nodes for the MSM8953 platform. It also adds
> > the coresponding SMP2P, SMSM and pinctrl nodes that are needed by these
> > remote processors.
> >
> > Signed-off-by: Sireesh Kodali <sireeshkodali1@gmail.com>
> > + };
> > +
> > + wcnss_sleep: wcnss-sleep-pins {
> > + wcss_wlan2 {
>
> No underscores in node names, unless something needs it?
>

wcnss_sleep is used by the pronto node defined below

> > + pins = "gpio76";
> > + function = "wcss_wlan2";
> > + };
> > + wcss_wlan1 {
> > + pins = "gpio77";
> > + function = "wcss_wlan1";
> > + };
> > + wcss_wlan0 {
> > + pins = "gpio78";
> > + function = "wcss_wlan0";
> > + };
> > + wcss_wlan {
> > + pins = "gpio79", "gpio80";
> > + function = "wcss_wlan";
> > + };
> > +
> > + pinconf {
> > + pins = "gpio76", "gpio77",
> > + "gpio78", "gpio79",
> > + "gpio80";
> > + drive-strength = <2>;
> > + bias-pull-down;
> > + };
> > + };
> > };
> >
> > gcc: clock-controller@1800000 {
> > @@ -745,6 +892,59 @@ spmi_bus: spmi@200f000 {
> > #size-cells = <0>;
> > };
> >
> > + modem: remoteproc@4080000 {
> > + compatible = "qcom,msm8953-mss-pil";
> > + reg = <0x4080000 0x100>,
> > + <0x4020000 0x040>;
> > +
> > + reg-names = "qdsp6", "rmb";
> > +
> > + interrupts-extended = <&intc 0 24 1>,
> > + <&modem_smp2p_in 0 0>,
> > + <&modem_smp2p_in 1 0>,
> > + <&modem_smp2p_in 2 0>,
> > + <&modem_smp2p_in 3 0>;
> > + interrupt-names = "wdog", "fatal", "ready",
> > + "handover", "stop-ack";
> > +
> > + clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
> > + <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
> > + <&gcc GCC_BOOT_ROM_AHB_CLK>,
> > + <&xo_board>;
> > + clock-names = "iface", "bus", "mem", "xo";
> > +
> > + power-domains = <&rpmpd MSM8953_VDDCX>, <&rpmpd MSM8953_VDDMX>;
> > + power-domain-names = "cx", "mx";
> > +
> > + qcom,smem-states = <&modem_smp2p_out 0>;
> > + qcom,smem-state-names = "stop";
> > +
> > + resets = <&gcc GCC_MSS_BCR>;
> > + reset-names = "mss_restart";
> > +
> > + qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
> > +
> > + status = "okay";
>
> No need for okay.

I'll drop it in v2
>
> > +
> > + mba {
> > + memory-region = <&mba_mem>;
> > + };
> > +
> > + mpss {
> > + memory-region = <&mpss_mem>;
> > + };
> > +
> > + smd-edge {
> > + interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
> > +
> > + qcom,smd-edge = <0>;
> > + qcom,ipc = <&apcs 8 12>;
> > + qcom,remote-pid = <1>;
> > +
> > + label = "modem";
> > + };
> > + };
> > +
> > usb3: usb@70f8800 {
> > compatible = "qcom,msm8953-dwc3", "qcom,dwc3";
> > reg = <0x70f8800 0x400>;
> > @@ -1057,6 +1257,74 @@ i2c_8: i2c@7af8000 {
> > status = "disabled";
> > };
> >
> > + pronto: remoteproc@a21b000 {
> > + compatible = "qcom,pronto-v3-pil", "qcom,pronto";
> > + reg = <0xa204000 0x2000>,
> > + <0xa202000 0x1000>,
> > + <0xa21b000 0x3000>;
> > + reg-names = "ccu", "dxe", "pmu";
> > +
> > + memory-region = <&wcnss_fw_mem>;
> > +
> > + interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
> > + <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
> > + <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
> > + <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
> > + <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
> > + interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
> > +
> > + power-domains = <&rpmpd MSM8953_VDDCX>, <&rpmpd MSM8953_VDDMX>;
> > + power-domain-names = "cx", "mx";
> > +
> > + qcom,state = <&wcnss_smp2p_out 0>;
> > + qcom,state-names = "stop";
> > +
> > + pinctrl-names = "default", "sleep";
> > + pinctrl-0 = <&wcnss_default>;
> > + pinctrl-1 = <&wcnss_sleep>;
> > +
> > + status = "okay";
>
> No need for status.

Will be dropped in v2
>
> > +
> > + iris: iris {
> > + compatible = "qcom,wcn3660b";
> > +
> > + clocks = <&rpmcc RPM_SMD_RF_CLK2>;
> > + clock-names = "xo";
> > + };
> > +
> > + smd-edge {
> > + interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
> > +
> > + qcom,ipc = <&apcs 8 17>;
> > + qcom,smd-edge = <6>;
> > + qcom,remote-pid = <4>;
> > +
> > + label = "pronto";
> > +
> > + wcnss {
> > + compatible = "qcom,wcnss";
> > + qcom,smd-channels = "WCNSS_CTRL";
> > +
> > + qcom,mmio = <&pronto>;
> > +
> > + bt {
> > + compatible = "qcom,wcnss-bt";
> > + };
> > +
> > + wifi {
> > + compatible = "qcom,wcnss-wlan";
> > +
> > + interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "tx", "rx";
> > +
> > + qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
> > + qcom,smem-state-names = "tx-enable", "tx-rings-empty";
> > + };
> > + };
> > + };
> > + };
> > +
> > intc: interrupt-controller@b000000 {
> > compatible = "qcom,msm-qgic2";
> > interrupt-controller;
> > @@ -1070,6 +1338,116 @@ apcs: mailbox@b011000 {
> > #mbox-cells = <1>;
> > };
> >
> > + lpass: remoteproc@c200000 {
> > + compatible = "qcom,msm8953-adsp-pil";
> > + reg = <0xc200000 0x100>;
> > +
> > + interrupts-extended = <&intc 0 293 IRQ_TYPE_EDGE_RISING>,
> > + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
> > + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
> > + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
> > + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
> > + interrupt-names = "wdog", "fatal", "ready",
> > + "handover", "stop-ack";
> > + clocks = <&xo_board>;
> > + clock-names = "xo";
> > +
> > + power-domains = <&rpmpd MSM8953_VDDCX>;
> > + power-domain-names = "cx";
> > +
> > + memory-region = <&adsp_fw_mem>;
> > +
> > + qcom,smem-states = <&smp2p_adsp_out 0>;
> > + qcom,smem-state-names = "stop";
> > +
> > + smd-edge {
> > + interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
> > +
> > + label = "lpass";
> > + mboxes = <&apcs 8>;
> > + qcom,smd-edge = <1>;
> > + qcom,remote-pid = <2>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + apr {
> > + compatible = "qcom,apr-v2";
> > + qcom,smd-channels = "apr_audio_svc";
> > + qcom,apr-domain = <APR_DOMAIN_ADSP>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + q6core {
> > + reg = <APR_SVC_ADSP_CORE>;
> > + compatible = "qcom,q6core";
> > + };
> > +
> > + q6afe: q6afe {
> > + compatible = "qcom,q6afe";
> > + reg = <APR_SVC_AFE>;
> > + q6afedai: dais {
> > + compatible = "qcom,q6afe-dais";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + #sound-dai-cells = <1>;
> > +
> > + dai@16 {
> > + reg = <PRIMARY_MI2S_RX>;
> > + qcom,sd-lines = <0 1>;
> > + };
> > +
> > + dai@21 {
> > + reg = <TERTIARY_MI2S_TX>;
> > + qcom,sd-lines = <0 1>;
> > + };
> > + };
> > + q6afecc: clock-controller {
> > + compatible = "qcom,q6afe-clocks";
> > + #clock-cells = <2>;
> > + };
> > + };
> > +
> > + q6asm: q6asm {
> > + compatible = "qcom,q6asm";
> > + reg = <APR_SVC_ASM>;
> > + q6asmdai: dais {
> > + compatible = "qcom,q6asm-dais";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + #sound-dai-cells = <1>;
> > +
> > + dai@0 {
> > + reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>;
> > + };
> > +
> > + dai@1 {
> > + reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>;
> > + };
> > +
> > + dai@2 {
> > + reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
> > + };
> > +
> > + dai@3 {
> > + reg = <MSM_FRONTEND_DAI_MULTIMEDIA4>;
> > + is-compress-dai;
> > + };
> > + };
> > + };
> > +
> > + q6adm: q6adm {
> > + compatible = "qcom,q6adm";
> > + reg = <APR_SVC_ADM>;
> > + q6routing: routing {
> > + compatible = "qcom,q6adm-routing";
> > + #sound-dai-cells = <0>;
> > + };
> > + };
> > + };
> > + };
> > +
>
> Remove unneeded blank lines.

Will be fixed in v2
>
> > + };
> > +
> > timer@b120000 {
> > compatible = "arm,armv7-timer-mem";
> > reg = <0xb120000 0x1000>;
>
>
> Best regards,
> Krzysztof

Thanks,
Sireesh Kodali