Before dissecting the drivers, it's essential to understand the hardware we are working with. The MSM8953 (Mobile Station Modem) is an ARM-based SoC introduced in 2016. While its mobile designation is MSM8953 , it is widely known by its marketing name: the Qualcomm Snapdragon 625.
While the drivers above are complex, others are equally vital:
For developers looking to contribute or tinker, the drivers are in arch/arm64/boot/dts/qcom/ and the respective subsystem directories. For users, this means their aging Snapdragon 625 device can now have a new, secure, and performant life running a modern mainline Linux kernel. msm8953 for arm64 driver
For Android developers, the drivers discussed above are the core of custom ROMs like LineageOS. The approach to msm8953 drivers in Android differs from mainline Linux. Most custom ROMs use a based kernel, which is Qualcomm's Android Linux kernel branch.
CONFIG_QCOM_GCC_8953=y CONFIG_PINCTRL_MSM8953=y Before dissecting the drivers, it's essential to understand
To help narrow down your development setup, tell me: Are you building this driver for a ? Also, what specific hardware peripheral (e.g., I2C, SPI, camera, display) are you attempting to interface with? Share public link
Understanding the msm8953 ARM64 kernel ecosystem requires a distinction between two types of drivers: Driver Attribute Downstream (Vendor Kernel) Mainline (Upstream Kernel) Qualcomm & Device Manufacturers (OEMs) Kernel.org / Community Kernel Version Outdated (e.g., v3.18 or v4.9) Modern ARM64 Linux (e.g., v6.x) Code Quality Filled with heavy, non-standard vendor hacks Clean, peer-reviewed, standard APIs Security Patches Permanently EOL (End-of-Life) Active upstream LTS updates Graphics Stack Proprietary Adreno blobs Open-source Freedreno / KGSL While the drivers above are complex, others are
✅ :
The Linux kernel uses a Device Tree to describe the hardware to the operating system non-discoverable hardware. Instead of hardcoding hardware addresses, the kernel reads a .dtb file at boot. For msm8953 , the primary Device Tree Include file, msm8953.dtsi , serves as the blueprint for the entire SoC. Recent mainline commits have been actively expanding this blueprint, adding support for critical blocks like: