In the ARM64 Linux world, drivers are rarely "hard-coded" with hardware addresses. Instead, the kernel uses a file to describe the hardware.
When writing or porting drivers for this SoC, you aren't just dealing with the CPU; you are interfacing with several proprietary subsystems: Requires the msm or freedreno DRM driver. Hexagon DSP: Managed via the Quic (Qualcomm) Framework. msm8953 for arm64 driver
Always use a cross-compiler like aarch64-linux-gnu-gcc when building drivers for the MSM8953. In the ARM64 Linux world, drivers are rarely
For the MSM8953, the driver initialization depends on the .dtsi files located in the kernel source at arch/arm64/boot/dts/qcom/msm8953.dtsi . To get a driver to "bind" to the hardware, your driver’s compatible string must match the one defined in the DTS. Hexagon DSP: Managed via the Quic (Qualcomm) Framework
uart@78af000 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; reg = ; interrupts = ; clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>; ; Use code with caution. Mainline vs. Vendor Drivers
One of the biggest hurdles in MSM8953 driver development is the gap between "Downstream" and "Mainline."