MSM Shared Memory [Root level node] Required properties: -compatible : should be "qcom,smem" -reg : the location and size of smem (optional) the irq register base address (required) the location and size of auxiliary smem areas (optional) the smem target info either from IMEM or register (optional) -reg-names : "smem" - optional string to identify the shared memory region "irq-reg-base" - string to identify the irq register region "aux-mem1", "aux-mem2", "aux-mem3", ... - optional strings to identify any auxiliary shared memory regions "smem_targ_info_imem" - optional string to identify the smem target info from IMEM memory "smem_targ_info_reg" - optional string to identify the smem target info from registers one of the optional register names smem_targ_info_imem, smem_targ_info_reg, or smem is required. Optional properties: -qcom,mpu-enabled : boolean value indicating that Memory Protection Unit based security is enabled on the "smem" shared memory region [Second level nodes] qcom,smd Required properties: -compatible : should be "qcom,smd" -qcom,smd-edge : the smd edge -qcom,smd-irq-offset : the offset into the irq register base memory for sending interrupts -qcom,smd-irq-bitmask : the sending irq bitmask -interrupts : the receiving interrupt line -label : the name of the remote subsystem for this edge Optional properties: -qcom,irq-no-suspend: configure the incoming irq line as active during suspend -qcom,not-loadable : indicates this processor cannot be loaded by PIL qcom,smsm Required properties: -compatible : should be "qcom,smsm" -qcom,smsm-edge : the smsm edge -qcom,smsm-irq-offset : the offset into the irq register base memory for sending interrupts -qcom,smsm-irq-bitmask : the sending irq bitmask -interrupts : the receiving interrupt line Example: qcom,smem@fa00000 { compatible = "qcom,smem"; reg = <0xfa00000 0x200000>, <0xfa006000 0x1000>, <0xfc428000 0x4000>; reg-names = "smem", "irq-reg-base", "aux-mem1"; qcom,smd-modem { compatible = "qcom,smd"; qcom,smd-edge = <0>; qcom,smd-irq-offset = <0x8>; qcom,smd-irq-bitmask = <0x1000>; interrupts = <0 25 1>; label = "modem"; }; qcom,smsm-modem { compatible = "qcom,smsm"; qcom,smsm-edge = <0>; qcom,smsm-irq-offset = <0x8>; qcom,smsm-irq-bitmask = <0x2000>; interrupts = <0 26 1>; }; qcom,smd-adsp { compatible = "qcom,smd"; qcom,smd-edge = <1>; qcom,smd-irq-offset = <0x8>; qcom,smd-irq-bitmask = <0x100>; interrupts = <0 156 1>; label = "adsp"; }; qcom,smsm-adsp { compatible = "qcom,smsm"; qcom,smsm-edge = <1>; qcom,smsm-irq-offset = <0x8>; qcom,smsm-irq-bitmask = <0x200>; interrupts = <0 157 1>; }; qcom,smd-wcnss { compatible = "qcom,smd"; qcom,smd-edge = <6>; qcom,smd-irq-offset = <0x8>; qcom,smd-irq-bitmask = <0x20000>; interrupts = <0 142 1>; label = "wcnss"; }; qcom,smsm-wcnss { compatible = "qcom,smsm"; qcom,smsm-edge = <6>; qcom,smsm-irq-offset = <0x8>; qcom,smsm-irq-bitmask = <0x80000>; interrupts = <0 144 1>; }; qcom,smd-rpm { compatible = "qcom,smd"; qcom,smd-edge = <15>; qcom,smd-irq-offset = <0x8>; qcom,smd-irq-bitmask = <0x1>; interrupts = <0 168 1>; label = "rpm"; qcom,irq-no-syspend; qcom,not-loadable; }; };