Skip to content

ASoC: qcom: enable qaif driver#1128

Open
mpratyus wants to merge 101 commits into
qualcomm-linux:early/hwe/shikra/driversfrom
mpratyus:qcm-pr3-qaif-v1
Open

ASoC: qcom: enable qaif driver#1128
mpratyus wants to merge 101 commits into
qualcomm-linux:early/hwe/shikra/driversfrom
mpratyus:qcm-pr3-qaif-v1

Conversation

@mpratyus
Copy link
Copy Markdown

@mpratyus mpratyus commented May 12, 2026

This PR adds Shikra QAIF support by introducing the required DT bindings, implementing the QAIF driver, enabling DMA TX0 DAI support, and refining unsupported DAI map logging to improve debug visibility and ensure proper audio interface integration.

Komal-Bajaj and others added 30 commits April 17, 2026 14:33
Document the IDs used by Shikra SoC IoT variants:
- CQ2390M: Shikra Retail with modem
- CQ2390S: Shikra Retail without modem
- IQ2390S: Shikra Industrial without modem

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Add SoC ID for Shikra IoT variants: CQ2390M, CQ2390S and IQ2390S.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Qualcomm Shikra SoC implements arm,mmu-500. Document its compatible.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the SCM compatible on the Shikra SoC.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the device tree binding for the Shikra EVK platform, which
is built around a modular System-on-Module (SoM) mounted on a common
carrier board.

The SoM integrates the Shikra SoC, PMICs, and essential GPIOs, while the
EVK carrier board provides additional peripherals such as UART and USB
interfaces. Shikra EVK supports three SoM variants: retail with modem,
retail without modem, and an industrial non-modem variant.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Add compatible for Shikra SoC IMEM.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the Top Level Mode Multiplexer on the Shikra platform.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Add pinctrl driver for TLMM block found in the Shikra SoC.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the RPM Power Domains on the Shikra Platform.

Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com>
Shikra has the same RPM power domains as QCM2290.
Add shikra support by reusing QCM2290 power domains.

Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com>
Document the pm8150 compatible string and available regulators in
the QCOM SMD RPM regulator documentation.

Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com>
The PM8150 is found on boards with shikra SoCs and It
provides 10 SMPS and 18 LDO regulators.

Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com>
Add the rpmpd compatable string for shikra.

Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com>
Qualcomm Shikra SoC implements qcom,smmu-500 for adreno-smmu.
Document its corresponding compatible.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
Add "qcom,shikra-apcs-hmss-global" compatibility
string in qcom_apcs_ipc mailbox driver to match apcs_glb
device node.

Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
Document compatible string for the QFPROM on Shikra platform.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Add the qcom,shikra-rpm-proc compatible string to the Qualcomm RPM
remote processor device tree binding.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Add compatible for the Qualcomm Shikra APCS block to the
Qualcomm APCS binding.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the compatible for Shikra.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the qcom,rpmcc-shikra compatible.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Add support for qcom global clock controller bindings for Shikra platform.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Add support for RPM-managed clocks on the Shikra platform.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Add support for Global clock controller for Shikra Qualcomm SoC.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Enable the GCC driver on the Qualcomm Shikra EVK boards.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Add devicetree binding for watchdog present on Qualcomm's
Shikra SoC.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Document the GPI DMA engine on Shikra platform.

Signed-off-by: Xueyao An <xueyao.an@oss.qualcomm.com>
Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Update dt-bindings to add Shikra to QMP Phy list.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Update dt-bindings to add Shikra to QUSB2 Phy list.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Introduce the compatible definition for Shikra QCOM SNPS DWC3.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Add init sequence and phy configuration for Shikra.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
dikshita-agarwal and others added 17 commits April 21, 2026 00:45
Add support for the qcm2290 SoC by introducing a new compatible string
for the AR50LT core and the corresponding platform data.

This change:
- Adds qcm2290 as a supported compatible for the AR50LT core.
- Introduces AR50LT-specific platform data describing VPU configuration.
- Adds a qcm2290-specific header describing firmware capabilities.

Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Document the Iris video accelerator used on Shikra platforms by adding
the qcom,shikra-iris compatible.

Although QCM2290 and Shikra share the same video hardware and overall
integration, their SMMU programming differs. QCM2290 exposes separate
Stream IDs for the video hardware and the Xtensa path, requiring two
explicit IOMMU entries, whereas Shikra uses a masked SMR to collapse
equivalent Stream IDs into a single mapping. Due to QCM2290’s SID layout
and Xtensa isolation requirements, such SMR masking is not applicable on
QCM2290 platforms.

Since Shikra uses the same video hardware as QCM2290 and shares the same
programming model and capabilities, it is added as a fallback compatible
to qcom,qcm2290-venus, with conditional handling to allow either one or
two IOMMU entries.

Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
QCM2290 is currently supported by the Venus driver using HFI Gen1.
However, support for this platform is being added to the Iris driver,
where it will be preferred going forward, initially using HFI Gen2 and
eventually providing support for both Gen1 and Gen2.

As part of early enablement for the Shikra platform, which reuses the
qcm2290 compatible as a fallback, it is necessary to allow the Iris
driver to bind to this hardware instead of Venus when Iris support is
enabled in the kernel configuration.

Introduce a configuration-based guard to prevent the Venus driver from
registering qcm2290 support when CONFIG_VIDEO_QCOM_IRIS is enabled. This
ensures that the Iris driver is selected for QCM2290/Shikra platforms in
early development kernels, without changing the default behavior when
Iris is not enabled.

This change is intended as an intermediate step for early bring-up. Full
HFI Gen1 support in the Iris driver will be added before posting
the final upstream series.

Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Map the wakeup capable GPIOs to respective MPM pins for shikra.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Set `qos_mode` on Shikra interconnect master nodes and mark ap-owned
masters with `ap_owned` where missing. This enables correct QoS register
programming (fixed or bypass mode) for the defined QoS ports.

Signed-off-by: Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
Document the Last Level Cache Controller on Shikra SoC.

Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
The partitions array is currently statically sized and uses the remote
host ID as an index.

Future protocol improvements to allow for more than two hosts in a
partition will require hostIDs to be bitwise significant integers.
This will result in large, sparse host IDs that generally exceed the
current static limit.

Switch to using xarray to efficiently handle these sparse indices and
allow for dynamic growth.

Signed-off-by: Tony Truong <tony.truong@oss.qualcomm.com>
Signed-off-by: Pranav Mahesh Phansalkar <pranav.phansalkar@oss.qualcomm.com>
Tested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> # Glymur CRD
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260410-smem-v1-1-8e94bb5416a6@oss.qualcomm.com
The wakeup enable bit needs to be set irrespective of the SoC using PDC or
MPM as wakeup capable irqchip to allow the GPIO interrupts to be forwarded
to parent irqchip.

This is set only for PDC irqchip using additional check skip_wake_irqs
making it impossible for MPM irqchip to detect the GPIO interrupt during
SoC low power mode since for MPM irqchip the skip_wake_irqs is always
false.

Remove skip_wake_irqs condition when setting wakeup enable bit to allow
forwarding GPIO interrupts for SoCs using MPM irqchip too.

Fixes: 76b446f ("pinctrl: qcom: handle intr_target_reg wakeup_present/enable bits")
Link: https://lore.kernel.org/all/20260430-enable_wakeup_capable_gpios-v2-1-8c26ac795318@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Reviewed-by: Maulik Shah <maulik.shah@oss.qualcomm.com>
Add DSP and lpaicp Peripheral Authentication Service support for the Shikra platform.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
Add devicetree binding documentation for the Qualcomm Shikra SoC
Peripheral Authentication Service (PAS) remoteproc nodes.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
Add GCC_QUSB2PHY_SEC_BCR reset support for Shikra platform.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Add GCC_QUSB2PHY_SEC_BCR reset support for Shikra. While at it, drop the
flags which are not required for the fixed parent clocks.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Remove the unused enum entry to keep the binding indices aligned with
device tree.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Document the power-domains property in order to propagate the votes on
GDSC to CX raill.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Mention compatible for the Qualcomm Shikra APCS block in the same block
as sdm845-apss-shared since they share the same data.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Introduce cache maintenance operations for remote arguments
in fastrpc driver for non-dma coherent targets.

Upstream-Status: Pending

Signed-off-by: Abhinav Parihar <parihar@qti.qualcomm.com>
Signed-off-by: Anandu Krishnan E <anandu.e@oss.qualcomm.com>
Document the QAIF CPU DAI controller binding used by Shikra audio.

Signed-off-by: Pratyush Meduri <mpratyus@qti.qualcomm.com>
@mpratyus mpratyus closed this May 12, 2026
@mpratyus mpratyus reopened this May 13, 2026
mpratyus and others added 3 commits May 13, 2026 16:53
Signed-off-by: Pratyush Meduri <mpratyus@qti.qualcomm.com>
Register LPASS_CDC_DMA_TX0 in the Shikra QAIF DAI table so TX0 capture links defined in board DTs can be bound without falling back to an unsupported DAI ID path.

Also validate DMA index lookups before offset arithmetic and bitmap operations in shikra_qaif_alloc_stream_dma_idx(). This keeps TX0 enablement bisect-safe by ensuring unsupported IDs cannot propagate negative indices into test_bit()/set_bit() in intermediate revisions.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
…g level

Unsupported DAI IDs in shikra_qaif_get_dma_idx() are expected in probe/open paths while iterating DAIs. Keep these map-miss messages at debug level to avoid noisy error logs.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
@qswat-orbit-external
Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@mpratyus mpratyus changed the title Qcm pr3 qaif v1 ASoC: qcom: enable qaif driver May 13, 2026
@qswat-orbit-external
Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

1 similar comment
@qswat-orbit-external
Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@shashim-quic shashim-quic force-pushed the early/hwe/shikra/drivers branch from 1e5cf57 to c3b3cbe Compare May 13, 2026 13:47
@mpratyus mpratyus force-pushed the qcm-pr3-qaif-v1 branch 2 times, most recently from 71bf710 to 791ce13 Compare May 13, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.