Qualcomm Snapdragon 670 (SDM670)
Manufacturer | Qualcomm |
---|---|
Name | SDM670 |
Codenames | sdmbat, sdm830 |
Architecture | aarch64 |
CPU | 2x 2.0 GHz Kryo 360 Gold, 6x 1.7 GHz Kryo 360 Silver |
GPU | Adreno 615 |
Year | 2018 |
Process | 10nm |
Mainline | not yet |
Community Page | https://gitlab.com/sdm670-mainline |
Components | |
CPU |
Partial |
UART |
Broken |
Storage |
Partial |
USB |
Partial |
Display |
Works |
GPU |
Works |
Pinctrl |
Partial |
I²C |
Partial |
SPI |
Broken |
Audio |
Broken |
Video |
Broken |
Thermal |
Broken |
WiFi |
Broken |
Bluetooth |
Broken |
Modem |
Broken |
GPS | |
Camera |
Broken |
Suspend | |
The Snapdragon 670 is an entry-level SoC used in a few devices.
Devices
Device | Codename | Mainline |
---|---|---|
Google Pixel 3a | google-sargo | Y |
Display
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.
Regulators
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 instead. The regulators don't go in &rpm_requests
, but &apps_rsc
instead.
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&gcc
- withclk_ignore_unused
as a kernel command line option, this might turn on reserved clocks