Qualcomm Snapdragon 670 (SDM670)
The Snapdragon 670 is a mid-range SoC used in a few devices.
|CPU||2x 2.0 GHz Kryo 360 Gold, 6x 1.7 GHz Kryo 360 Silver|
|Google Pixel 3a||google-sargo||Y|
It is fairly easy to get a working display. See MSM8996_Mainlining#Simple_Framebuffer for details on how to do this. For full panel support (needed for backlight and 3D acceleration), there is a panel driver generator.
The PM660 and PM660L power management ICs host most of the regulators. If you're copying regulators from other SoCs, keep in mind that SDM670 uses RPMh to communicate with the PMICs, while most other SoCs use the older RPM. The SDM670 regulators don't go in
&apps_rsc instead (and have
qcom,pm660l-rpmh-regulators compatible strings).
Disabling core components
Your device might not boot with the first dts you send it if you keep the core components enabled:
&tlmm- the pinctrl and gpio subsystems normally access all pins to read their state
clk_ignore_unusedas a kernel command line option, this might turn on reserved clocks
Bluetooth is available on uart6. Modem and WiFi are not required.
There is a pin control driver but it has no wakeirqs. There is also an LPI TLMM for audio with no mainline driver.
eMMC works but not UFS. Perhaps it will be added with an SDM710 device.
There is currently only USB 2.0.
Maybe video acceleration works. There is still bad userspace support for video (ffmpeg isn't even packaged in Alpine with v4l2 video acceleration).