mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Qualcomm driver updates for v6.12 Support is added for making SCM driver configure the system either for a full or minimal ramdump following a system crash. The ramdump mode is changed from being enable-only to enable/disable as requested. The QSEECOM uefisecapp interface is allow-listed on Surface Laptop 7 and Lenovo Thinkpad T14s, providing EFI variable access. The change to match the SMD RPM driver based on the SMD channel name is reverted, in favor of stepping back to OF-based matching, as a means to get module autoloading to work properly. AOSS, APR, ICE, OCMEM, PBS and SMP2P drivers has error handling cleaned up using scoped resources. Trace events are added to the BWMON and SMP2P drivers, for better insights into their operations. The X1E LLCC configuration data is updated based on recommended values. A number of platforms are added to the in-kernel PD-mapper. SocInfo driver is extended with IDs from SM7325, QCS8275 and QCS8300 families. * tag 'qcom-drivers-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (33 commits) firmware: qcom: scm: Allow QSEECOM on Surface Laptop 7 models dt-bindings: soc: qcom: qcom,pmic-glink: Document SM7325 compatible soc: qcom: pd_mapper: Add SM7325 compatible soc: qcom: socinfo: Add Soc IDs for SM7325 family dt-bindings: arm: qcom,ids: Add IDs for SM7325 family soc: qcom: socinfo: add QCS8275/QCS8300 SoC ID dt-bindings: arm: qcom,ids: add SoC ID for QCS8275/QCS8300 soc: qcom: smp2p: use scoped device node handling to simplify error paths soc: qcom: pbs: use scoped device node handling to simplify error paths soc: qcom: ocmem: use scoped device node handling to simplify error paths soc: qcom: ice: use scoped device node handling to simplify error paths soc: qcom: aoss: simplify with scoped for each OF child loop soc: qcom: apr: simplify with scoped for each OF child loop soc: qcom: smd-rpm: add qcom,smd-rpm compatible dt-bindings: soc: qcom: smd-rpm: add generic compatibles Revert "soc: qcom: smd-rpm: Match rpmsg channel instead of compatible" firmware: qcom: scm: Add multiple download mode support firmware: qcom: scm: Refactor code to support multiple dload mode soc: qcom: pd_mapper: Add more older platforms without domains soc: qcom: pd_mapper: Add X1E80100 ... Link: https://lore.kernel.org/r/20240904193042.15118-1-andersson@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
172 lines
6.2 KiB
YAML
172 lines
6.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/remoteproc/qcom,rpm-proc.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm Resource Power Manager (RPM) Processor/Subsystem
|
|
|
|
maintainers:
|
|
- Bjorn Andersson <andersson@kernel.org>
|
|
- Konrad Dybcio <konradybcio@kernel.org>
|
|
- Stephan Gerhold <stephan@gerhold.net>
|
|
|
|
description: |
|
|
Resource Power Manager (RPM) subsystem found in various Qualcomm platforms:
|
|
|
|
+--------------------------------------------+
|
|
| RPM subsystem (qcom,rpm-proc) |
|
|
| |
|
|
reset | +---------------+ +-----+ +-----+ |
|
|
--------->| | | MPM | | CPR | ... |
|
|
IPC interrupts | | ARM Cortex-M3 |--- +-----+ +-----+ |
|
|
----------------->| | | | | |
|
|
| +---------------+ |---------------------- |
|
|
| +---------------+ | |
|
|
| | Code RAM |--| +------------------+ |
|
|
| +---------------+ | | | |
|
|
| +---------------+ |--| Message RAM | |
|
|
| | Data RAM |--| | | |
|
|
| +---------------+ | +------------------+ |
|
|
+--------------------|-----------------------+
|
|
v
|
|
NoC
|
|
|
|
The firmware running on the processor inside the RPM subsystem allows each
|
|
component in the system to vote for state of the system resources, such as
|
|
clocks, regulators and bus frequencies. It implements multiple separate
|
|
communication interfaces that are described in subnodes, e.g. SMD and MPM:
|
|
|
|
+------------------------------+
|
|
| ARM Cortex-M3 |
|
|
| | +------------------------------+
|
|
| +--------------------------+ | | Message RAM |
|
|
| | RPM firmware | | | |
|
|
IPC IRQ 0 | | +----------------------+ | | | +--------------------------+ |
|
|
-------------->| SMD server |<------->| SMD data structures | |
|
|
| | | +--------------+ | | | | | +--------------+ | |
|
|
| | | | rpm_requests | ... | | | | | | rpm_requests | ... | |
|
|
| | | +--------------+ | | | | | +--------------+ | |
|
|
IPC IRQ 1 | | +----------------------+ | | | +--------------------------+ |
|
|
-------------->| MPM virtualization |<--------| MPM register copy (vMPM) | |
|
|
| | +----------------------+ | | | +--------------------------+ |
|
|
| | ... | | | | ... |
|
|
| +--------------------|-----+ | +------------------------------+
|
|
+----------------------|-------+
|
|
v
|
|
+--------------+
|
|
| MPM Hardware |
|
|
+--------------+
|
|
|
|
The services provided by the firmware are only available after the firmware
|
|
has been loaded and the processor has been released from reset. Usually this
|
|
happens early in the boot process before the operating system is started.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- qcom,apq8084-rpm-proc
|
|
- qcom,ipq6018-rpm-proc
|
|
- qcom,ipq9574-rpm-proc
|
|
- qcom,mdm9607-rpm-proc
|
|
- qcom,msm8226-rpm-proc
|
|
- qcom,msm8610-rpm-proc
|
|
- qcom,msm8909-rpm-proc
|
|
- qcom,msm8916-rpm-proc
|
|
- qcom,msm8917-rpm-proc
|
|
- qcom,msm8936-rpm-proc
|
|
- qcom,msm8937-rpm-proc
|
|
- qcom,msm8952-rpm-proc
|
|
- qcom,msm8953-rpm-proc
|
|
- qcom,msm8974-rpm-proc
|
|
- qcom,msm8976-rpm-proc
|
|
- qcom,msm8994-rpm-proc
|
|
- qcom,msm8996-rpm-proc
|
|
- qcom,msm8998-rpm-proc
|
|
- qcom,qcm2290-rpm-proc
|
|
- qcom,qcs404-rpm-proc
|
|
- qcom,sdm660-rpm-proc
|
|
- qcom,sm6115-rpm-proc
|
|
- qcom,sm6125-rpm-proc
|
|
- qcom,sm6375-rpm-proc
|
|
- const: qcom,rpm-proc
|
|
|
|
smd-edge:
|
|
$ref: /schemas/remoteproc/qcom,smd-edge.yaml#
|
|
description:
|
|
Qualcomm Shared Memory subnode which represents communication edge,
|
|
channels and devices related to the RPM subsystem.
|
|
|
|
glink-edge:
|
|
$ref: /schemas/remoteproc/qcom,glink-rpm-edge.yaml#
|
|
description:
|
|
Qualcomm G-Link subnode which represents communication edge,
|
|
channels and devices related to the RPM subsystem.
|
|
|
|
interrupt-controller:
|
|
type: object
|
|
$ref: /schemas/interrupt-controller/qcom,mpm.yaml#
|
|
description:
|
|
MSM Power Manager (MPM) interrupt controller that monitors interrupts
|
|
when the system is asleep.
|
|
|
|
master-stats:
|
|
$ref: /schemas/soc/qcom/qcom,rpm-master-stats.yaml#
|
|
description:
|
|
Subsystem-level low-power mode statistics provided by RPM.
|
|
|
|
required:
|
|
- compatible
|
|
|
|
oneOf:
|
|
- required:
|
|
- smd-edge
|
|
- required:
|
|
- glink-edge
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
# SMD
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
remoteproc {
|
|
compatible = "qcom,msm8916-rpm-proc", "qcom,rpm-proc";
|
|
|
|
smd-edge {
|
|
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
|
|
qcom,ipc = <&apcs 8 0>;
|
|
qcom,smd-edge = <15>;
|
|
|
|
rpm-requests {
|
|
compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
|
|
qcom,smd-channels = "rpm_requests";
|
|
/* ... */
|
|
};
|
|
};
|
|
};
|
|
# GLINK
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
remoteproc {
|
|
compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
|
|
|
|
glink-edge {
|
|
compatible = "qcom,glink-rpm";
|
|
interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
|
|
qcom,rpm-msg-ram = <&rpm_msg_ram>;
|
|
mboxes = <&apcs_glb 0>;
|
|
|
|
rpm-requests {
|
|
compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm";
|
|
qcom,glink-channels = "rpm_requests";
|
|
/* ... */
|
|
};
|
|
};
|
|
};
|