Commit graph

1,447,434 commits

Author SHA1 Message Date
Luca Weiss
c2bc6ab69c ------------- 2026-06-30 15:48:40 +02:00
Luca Weiss
963804678f WIP arm64: dts: qcom: milos: Add sound macro and soundwire nodes
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>

Still too many FIXMEs
2026-06-30 15:48:40 +02:00
Luca Weiss
66ce826713 WIP arm64: dts: qcom: milos-fairphone-fp6: Sound / speaker WIP
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:39 +02:00
Luca Weiss
421e386eb0 ASoC: qcom: sc8280xp: Add support for Milos
Add compatible for sound card on Qualcomm Milos boards.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:39 +02:00
Luca Weiss
c40b3e4b94 ASoC: dt-bindings: qcom,sm8250: Add Milos sound card
Add bindings for Milos sound card, which looks fully compatible with
existing SM8450.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:39 +02:00
Luca Weiss
26cc26f78a ------------- 2026-06-30 15:48:38 +02:00
Luca Weiss
b573968a94 fp6_defconfig: add defconfig 2026-06-30 15:48:38 +02:00
Luca Weiss
2356e72625 ------------- 2026-06-30 15:48:38 +02:00
Luca Weiss
39c588bb5b arm64: dts: qcom: milos-fairphone-fp6: Add downstream touchscreen
Add a node for the SPI-connected touchscreen, and its pinctrl.

WIP: Downstream touchscreen driver and bindings

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:38 +02:00
Luca Weiss
022127938a Input: eswin_touch - Remove 10s probe delay 2026-06-30 15:48:37 +02:00
Luca Weiss
5f6c2aed42 Input: eswin_touch - Fix ABS_X min/max being 0
Only call input_mt_init_slots after setting up some properties which are
then copied to other properties.
2026-06-30 15:48:37 +02:00
Luca Weiss
f0509b42db Input: eswin_touch - Fix up downstream driver 2026-06-30 15:48:37 +02:00
Luca Weiss
60ca103344 Input: eswin_touch - Import from downstream 2026-06-30 15:48:36 +02:00
Luca Weiss
aec10556b7 ------------- 2026-06-30 15:48:36 +02:00
Luca Weiss
5cf18f1558 Revert "drm/panel: novatek-nt37705: Configure for 10-bit"
10-bit DSC command mode is currently broken (2026-04-21). Keep it for
later given the panel works great also in 8-bit mode.

This reverts commit ea6afb55c1.
2026-06-30 15:48:36 +02:00
Luca Weiss
93364750fe drm/panel: novatek-nt37705: Configure for 10-bit
Update the init sequence and configuration to initialize the panel for
10-bit DSC cmd-mode.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:36 +02:00
Luca Weiss
ae385cadc2 ------------- 2026-06-30 15:48:35 +02:00
Luca Weiss
80f9ea5bc9 FROMLIST v1 arm64: dts: qcom: milos-fairphone-fp6: Enable display
Configure the MDSS nodes for the phone and add the panel node.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:35 +02:00
Luca Weiss
c651dc2911 FROMLIST v1 arm64: defconfig: Enable Novatek NT37705 panel
Enable the NT37705 panel driver which is used on Fairphone (Gen. 6).

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:35 +02:00
Luca Weiss
66e571e789 FROMLIST v1 drm/panel: Add driver for Novatek NT37705 panel
Add support for the 2484x1116 AMOLED panel from BOE (BJ631JHM-T71-D900)
bundled with a NT37705 driver IC, as found on the Fairphone (Gen. 6)
smartphone.

The panel can also be configured in 10-bit (RGB101010) mode, however
currently it's configured in 8-bit (RGB888) since there's some issues in
the Qualcomm DPU driver when driving this panel in 10-bit.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:34 +02:00
Luca Weiss
3fc0ea7436 FROMLIST v1 dt-bindings: display: panel: Add Novatek NT37705
Novatek NT37705 is a display driver IC used to drive AMOLED DSI panels.

Describe it and the panel in the Fairphone (Gen. 6) (BJ631JHM-T71-D900
from BOE) using it.

Link: https://lore.kernel.org/r/81a3c207-4d8f-490f-8e2a-6f3f4c2acd35@kernel.org/
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:34 +02:00
Luca Weiss
bd10029b8d ------------- 2026-06-30 15:48:34 +02:00
Alexander Koskovich
acc082c0a3 FROMLIST RFC v6 arm64: dts: qcom: milos: Add Adreno 810 GPU and GMU nodes
Add GPU and GMU devicetree nodes for the Adreno 810 GPU found on
Qualcomm SM7635 (Milos) based devices.

The qcom,kaanapali-gxclkctl.h header can be reused here because
Milos uses the same driver and the GX_CLKCTL_GX_GDSC definition
is identical.

Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
2026-06-30 15:48:34 +02:00
Luca Weiss
6629a0d934 ------------- 2026-06-30 15:48:33 +02:00
Taniya Das
fa645b9c77 FROMLIST v2 clk: qcom: gxclkctl: Remove GX/GMxC rail votes to align with IFPC
The GX GDSC control is handled through a dedicated clock controller,
and the enable/disable sequencing depends on correct rail voting.
The driver votes for the GX/GMxC rails and CX GDSC before toggling
the GX GDSC. Currently, during GMU runtime PM resume, rails remain
enabled due to upstream votes propagated via RPM-enabled devlinks
and explicit pm_runtime votes on GX GDSC.

This is not an expected behaviour of IFPC(Inter Frame Power Collapse)
requirements of GPU as GMU firmware is expected to control these rails,
except during the GPU/GMU recovery via the OS and that is where the GX
GDSC should be voting for the rails (GX/GMxC and CX GDSC) before
toggling the GX GDSC.

Thus, disable runtime PM after successfully registering the clock
controller.

Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
2026-06-30 15:48:33 +02:00
Taniya Das
e94350ea7b FROMLIST v2 clk: qcom: common: ensure runtime PM suspend completes on probe
When the clock controller is probed with 'use_rpm' enabled, the
runtime PM reference is currently released using pm_runtime_put(),
which may return before the runtime suspend has completed. When the
clock controller device is registered through this function, calling
pm_runtime_disable() immediately after pm_runtime_put() prevents
the runtime suspend from completing, leaving the clock controller
active and the HW rails in the ON state.

Use pm_runtime_put_sync() instead to ensure the runtime PM “putV
completes synchronously during probe. This does not have any functional
impact, but it guarantees that the device is fully runtime-suspended
before returning.

Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
2026-06-30 15:48:33 +02:00
Taniya Das
d9272ba106 FROMLIST v2 clk: qcom: gxclkctl: Use custom disable callback for gx_gdsc
The GX GDSC represents a special GPU power domain that must not be
disabled during normal runtime PM flows. As per the GMU architecture,
GX GDSC should only be force-disabled during GMU/GPU recovery, where the
OS explicitly resets the GX power domain.

However, when managed by the generic GDSC runtime PM path, GX GDSC may be
disabled during GMU runtime suspend, resulting in warnings such as:

  gx_clkctl_gx_gdsc status stuck at 'on'

and failures in gdsc_toggle_logic() during rpm suspend.

Use the newly added custom disable callback for gx_gdsc to ensure the
GDSC is toggled only in recovery scenarios, while preventing unintended
disable attempts during normal GMU runtime PM operations.

Reported-by: Pengyu Luo <mitltlatltl@gmail.com>
Closes: https://lore.kernel.org/all/CAH2e8h4Vp9fJYAUUbOmoHSKB25wakPBvmpwa62BTRqgRQbMWuw@mail.gmail.com/
Reported-by: Alexander Koskovich <akoskovich@pm.me>
Closes: https://lore.kernel.org/all/gwVAH2mJerU4dBInw8pKmOs5aQK55Q7W6q_UQAlLFCsEgX6eyvSgXAWbNNMqAX4WmPlYCKUSMhfkr5Jry4Ps5EqnxYZqEEDd3Whwv7ZXGlc=@pm.me/
Fixes: 5af11acae6 ("clk: qcom: Add a driver for SM8750 GPU clocks")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
2026-06-30 15:48:32 +02:00
Jagadeesh Kona
ff597b7ce4 FROMLIST v2 clk: qcom: gdsc: Add custom disable callback for GX GDSC
The GX GDSC is a special power domain that should only be disabled
by OS during GMU recovery. In all other scenarios, the GMU firmware
is responsible for handling its disable sequence, and OS must not
interfere.

During the resume_noirq() phase of system resume, the GenPD framework
enables all power domains and later disables them in the complete()
phase if there are no active votes from OS. This behavior can
incorrectly disable the GX GDSC while the GMU firmware is still using
it.

To prevent this, implement a custom disable callback for GX GDSC that
relies on GenPD’s synced_poweroff flag. The GMU driver sets this flag
only during recovery, allowing OS to explicitly disable GX GDSC in
hardware in that case. In all other situations, the disable callback
will avoid touching GX GDSC hardware.

Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
2026-06-30 15:48:32 +02:00
Luca Weiss
66386712d7 ------------- 2026-06-30 15:48:32 +02:00
Luca Weiss
070cf521f6 FROMLIST v3 arm64: dts: qcom: milos: Add GX clock controller
Add a node for the GX clock controller, which provides a power domain to
consumers.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:31 +02:00
Luca Weiss
e346b56bab ------------- 2026-06-30 15:48:31 +02:00
Luca Weiss
028075b690 FROMLIST v2 arm64: dts: qcom: milos: Add display (MDSS)
Add device nodes for display: MDSS, DPU, DSI and DSI PHY.

DisplayPort is not added for now.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:31 +02:00
Luca Weiss
ffe79165ed FROMLIST v2 soc: qcom: ubwc: Add config for Milos
Describe the Universal Bandwidth Compression (UBWC) configuration
for the Milos SoC.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:31 +02:00
Luca Weiss
12caa22971 ------------- 2026-06-30 15:48:30 +02:00
Luca Weiss
c2a069addc FROMLIST v2 arm64: dts: qcom: milos-fairphone-fp6: Enable IPA
Configure and enable the node for IPA which enables mobile data on this
device.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:30 +02:00
Luca Weiss
6d94441a93 FROMLIST v2 arm64: dts: qcom: milos: Add IPA node
Add the description of the IPA block in the Milos SoC.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:30 +02:00
Luca Weiss
434c2d0511 ------------- 2026-06-30 15:48:29 +02:00
Luca Weiss
348bad1406 FROMLIST v3 arm64: dts: qcom: milos: Add IMEM node
Add a node for the IMEM found on Milos, which contains pil-reloc-info
and the modem tables for IPA, among others.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:29 +02:00
Luca Weiss
faa1559e1d ------------- 2026-06-30 15:48:29 +02:00
Alexander Koskovich
596a440de9 FROMLIST v2 arm64: dts: qcom: milos: Add Iris VPU v2.0
Add devicetree nodes for the Iris codec (VPU 2.0) found on the Milos
platform.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
2026-06-30 15:48:29 +02:00
Alexander Koskovich
bae687b536 FROMLIST v2 media: iris: Add support for Milos (VPU v2.0)
Add support for the Milos Iris codec. This only supports the variant
found on the SM7635-AB that has half of it's pipes disabled via efuse.

Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
2026-06-30 15:48:28 +02:00
Alexander Koskovich
d1fe94b1ee FROMLIST v2 dt-bindings: media: qcom,milos-iris: Add Milos video codec
Add binding for Qualcomm Milos Iris video codec.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
2026-06-30 15:48:28 +02:00
Luca Weiss
6a954a3dcb ------------- 2026-06-30 15:48:28 +02:00
Luca Weiss
cd8362c95d FROMLIST v2 arm64: dts: qcom: milos-fairphone-fp6: Enable WiFi
Configure and enable the WiFi node, and add the required pinctrl to
provide the sleep clock from the PMK8550 (PMK7635) to WCN6755.

Thanks to Alexander Koskovich for helping with the bringup, adding
the missing pinctrl to make the WPSS stop crashing.

Link: https://lore.kernel.org/linux-arm-msm/DBF7OWAWQ94M.FSCP4DPF8ZJY@fairphone.com/
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:27 +02:00
Luca Weiss
ca4dc9e01c FROMLIST v2 arm64: dts: qcom: milos-fairphone-fp6: Enable Bluetooth
Add the nodes to describe the WCN6755 chip with its PMU and Bluetooth
parts.

Thanks to Alexander Koskovich for helping with the bringup, adding
'clocks' to the PMU node to make Bluetooth work.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:27 +02:00
Luca Weiss
04724e0a5f FROMLIST v2 arm64: dts: qcom: milos: Add WCN6755 WiFi node
Add a node for the WCN6755 WiFi found with the Milos SoC.

Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:27 +02:00
Luca Weiss
53ab1a9b71 FROMLIST v2 arm64: dts: qcom: milos: Split up uart11 pinctrl
In order to set the pinctrl for the individual CTS, RTS, TX and RX pins,
split up the pinctrl configuration into 4 nodes so that boards can set
some properties separately.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:27 +02:00
Luca Weiss
c3d42ce247 FROMLIST v2 dt-bindings: net: wireless: ath11k: Document WCN6755 WiFi
Document the WCN6755 WiFi using a fallback to WCN6750 since the two
chips seem to be completely pin and software compatible. In fact the
original downstream kernel just pretends the WCN6755 is a WCN6750.

Acked-by: Jeff Johnson <jjohnson@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:26 +02:00
Luca Weiss
9a422f147e FROMLIST v2 dt-bindings: bluetooth: qcom,wcn6750-bt: Document WCN6755 Bluetooth
Document the WCN6755 Bluetooth using a fallback to WCN6750 since the two
chips seem to be completely pin and software compatible. In fact the
original downstream kernel just pretends the WCN6755 is a WCN6750.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
2026-06-30 15:48:26 +02:00
Luca Weiss
e6baae2047 ------------- 2026-06-30 15:48:26 +02:00