Jump to content

Qualcomm Snapdragon 730/730G/732G (SM7150): Difference between revisions

From postmarketOS Wiki
JIaxyga (talk | contribs)
DPU = Y; dispcc = Y
Adrian (talk | contribs)
m Undo revision 69897 by Daniel6745 (talk)
Tag: Undo
 
(47 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Infobox soc
{{Infobox soc
| image = File:Qualcomm_SM7150.png
| imagecaption = SM7150 in ceramic BGA package
| manufacturer = Qualcomm
| manufacturer = Qualcomm
| name = SM7150
| name = SM7150
Line 7: Line 9:
* '''SM7150-AC:''' 2 + 6 cores (2.3 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
* '''SM7150-AC:''' 2 + 6 cores (2.3 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
| gpu = Adreno 618
| gpu = Adreno 618
| npu = 120
| year = 2019/2020
| year = 2019/2020
| process = 8
| process = 8
Line 15: Line 18:
| status_storage = Y
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display = P
| status_display = Y
| status_gpu =
| status_gpu = Y
| status_pinctrl = Y
| status_pinctrl = Y
| status_i2c = Y
| status_i2c = Y
| status_spi = Y
| status_spi = Y
| status_audio =
| status_audio = P
| status_video =
| status_video = N
| status_thermal = Y
| status_thermal = Y
| status_wifi = Y
| status_wifi = Y
| status_bluetooth = Y
| status_bluetooth = Y
| status_modem = Y
| status_modem = Y
| status_gps = Y
| status_gps = P
| status_camera =
| status_camera = P
| status_npu = N
| status_suspend = Y
| status_ethernet = -
}}
}}


Line 71: Line 77:
There is a dedicated [[SM7150 Mainlining]] guide that explains how to get started.
There is a dedicated [[SM7150 Mainlining]] guide that explains how to get started.


{|class="wikitable feature-colors"
* '''Kernel release''', e.g. v6.4: the feature was incorporated upstream as of this release.
* '''WIP''': Feature works or works partially in community kernel fork. Not upstream yet.
* '''Y''': The feature works with a generic or compatible driver.
* '''N''': Feature is not currently supported.
 
{|class="wikitable" style="display: block; overflow-x: auto"
! Component !! Part !! Driver !! Status !! Notes
! Component !! Part !! Driver !! Status !! Notes
|-
|-
| CPU || Snapdragon 730/730G/732G || || Y ||
| SoC || Snapdragon 730/730G/732G || || class="feature feature-yes" | WIP ||
|-
| CPU || Kryo Gold 470 (2.2-2.3GHz) <br> Kryo Silver 470 (1.8GHz) || qcom,kryo470 || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 3 | Storage
| rowspan = 3 | Storage
| UFS || qcom,sm7150-ufshc <br> qcom,ufshc <br> jedec,ufs-2.0 || Y ||
| UFS (2.1 gear 3) || qcom,sm7150-ufshc <br> qcom,ufshc <br> jedec,ufs-2.0 || class="feature feature-yes" | v6.4 ||
|-
| eMMC (5.1) || qcom,sdhci-msm-v5 || class="feature feature-yes" | Y || Not tested
|-
|-
| MMC (sdhc_1) || || || There is no device with this type of memory to test
| SD-Card (3.0) || qcom,sdhci-msm-v5 || class="feature feature-yes" | Y ||
|-
|-
| SD-Card (sdhc_2) || qcom,sm7150-sdhci <br> qcom,sdhci-msm-v5 || Y ||
| rowspan = 4 | USB Type C
| USB 2.0 || qcom,dwc3 <br> snps,dwc3 <br> qcom,qusb2-v2-phy|| class="feature feature-yes" | Y ||
|-
|-
| USB || || || P || Peripheral mode only
| USB 3.1 || || class="feature feature-no" | N || rowspan =2 | Need a device that has this for tests
|-
|-
| rowspan = 3 | Display
| DisplayPort 1.4 || || class="feature feature-no" | N
| SimpleFB || simple-framebuffer || Y ||
|-
|-
| DPU || rowspan =2 | qcom,sm7150-dpu || Y ||
| OTG || qcom,pm8150b-typec <br> qcom,pm8150b-vbus-reg || class="feature feature-yes" | v6.9 ||
|-
|-
| DPU with <abbr title="Display Stream Compression">DSC</abbr> || N ||
| rowspan = 2 | Display
| SimpleFB || simple-framebuffer || class="feature feature-yes" | Y ||
|-
|-
| GPU || Adreno 618 || ||
| DPU 5_2 (885) || qcom,sm7150-dpu || class="feature feature-yes" | v6.11 ||
|-
|-
| Pinctrl || || qcom,sm7150-tlmm || Y ||
| GPU || Adreno 618 (610-825MHz) || qcom,adreno-618.0 </br> qcom,adreno || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 3 | QUP
| rowspan = 2 | Pinctrl
| UART || || Y ||
| TLMM 114 GPIOs || qcom,sm7150-tlmm || class="feature feature-yes" | v6.4 ||
|-
|-
| I2C || || Y ||
| LPASS TLMM 32 GPIOs<br>(18 SSC & 14 AUDIO) || qcom,sm7150-lpass-lpi-pinctrl || class="feature feature-yes" | WIP ||
|-
|-
| SPI || || Y ||
| rowspan = 4 | QUP x15
| UART || qcom,geni-uart || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 2 | Audio
| I2C || qcom,geni-i2c || class="feature feature-yes" | Y ||
| wcd9375 || || N ||
|-
|-
| bluetooth audio || || Y ||
| SPI || qcom,geni-spi || class="feature feature-yes" | Y ||
|-
|-
| Video || Venus || Venus v5.4 || N ||
| CCI I2C || qcom,msm8996-cci || class="feature feature-yes" | Y ||
|-
| rowspan = 5 | Audio
| wcd9375 || || class="feature feature-no" | N ||
|-
| wcd9340 (optional) || || class="feature feature-no" | N ||
|-
| wcd9341 (optional) || || class="feature feature-no" | N ||
|-
| MI2S || qcom,sm8250-sndcard || class="feature feature-yes" | Y ||
|-
| bluetooth audio || || class="feature feature-yes" | Y ||
|-
| Video || Venus || Venus IR v1.2.X || class="feature feature-no" | N || Error -110
|-
|-
| rowspan = 2 | Thermal
| rowspan = 2 | Thermal
| TSENS || || Y ||
| TSENS || || class="feature feature-yes" | Y ||
|-
|-
| PMIC SENS || || Y ||
| PMIC SENS || || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 2 | WCN3990
| rowspan = 2 | WCN3980 <br> WCN3990 <br> WCN3998
| WiFi || qcom,wcn3990-wifi || Y ||
| WiFi || qcom,wcn3990-wifi || class="feature feature-yes" | Y ||
|-
|-
| Bluetooth || qcom,wcn3990-bt || Y ||
| Bluetooth || qcom,wcn3990-bt || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 4 | Modem
| rowspan = 4 | Modem
| Calls || rowspan = 4 | qcom,sm7150-ipa <br> IPA v4.2 || P || Voice call audio not working
| Calls || rowspan = 4 | qcom,sc7180-ipa <br> IPA v4.2 || class="feature feature-yes" | Y || class="feature feature-partial" | Voice call audio not working
|-
| SMS || class="feature feature-yes" | Y ||
|-
| Mobile data || class="feature feature-yes" | Y ||
|-
|-
| SMS || Y ||
| GPS || class="feature feature-yes" | Y ||
|-
|-
| Mobile data || Y ||
| Camera || || qcom,sm7150-camss || class="feature feature-partial" | WIP ||
|-
|-
| GPS || Y ||
| NPU || NPU 120 (600-700MHz) || || class="feature feature-no" | N ||
|-
|-
| Camera || || || N ||
| Suspend || || || class="feature feature-yes" | Y ||
|-
|-
| Suspend || || || ||
| RAM console (<code>ramoops</code>) || || || class="feature feature-yes" | Y ||
|-
|-
| RAM console (<code>ramoops</code>) || || || Y ||
| rowspan = 2 | Regulators
| RPMH || qcom,pm6150-rpmh-regulators <br> qcom,pm6150l-rpmh-regulators <br> qcom,pm8009-rpmh-regulators (optional) || class="feature feature-yes" | Y ||
|-
|-
| Regulators || RPMH || pm7150/pm7150l || Y ||
| RPMHPD || qcom,sm7150-rpmhpd || class="feature feature-yes" | v6.6 ||
|-
|-
| rowspan = 4 | RemoteProcs
| rowspan = 3 | RemoteProcs
| MPSS || qcom,sm7150-mpss-pas || Y ||
| MPSS || qcom,sc7180-mpss-pas || class="feature feature-yes" | Y ||
|-
|-
| ADSP || qcom,sm7150-adsp-pas || Y ||
| ADSP || qcom,sc7180-adsp-pas || class="feature feature-yes" | Y ||
|-
|-
| CDSP || qcom,sm7150-cdsp-pas || Y ||
| CDSP || qcom,sc7180-cdsp-pas || class="feature feature-yes" | Y ||
|-
|-
| SLPI || || N ||
| Interconnects || || qcom,sm7150-mc-virt <br> qcom,sm7150-config-noc <br> qcom,sm7150-system-noc <br> qcom,sm7150-aggre1-noc <br> qcom,sm7150-aggre2-noc <br> qcom,sm7150-mmss-noc <br> qcom,sm7150-compute-noc <br> qcom,sm7150-dc-noc <br> qcom,sm7150-gem-noc <br> qcom,osm-l3 || class="feature feature-yes" |  v6.9 ||
|-
|-
| Interconnects || || || P ||
| rowspan = 6 | Clocks
| Global Clock Controller || qcom,sm7150-gcc || class="feature feature-yes" | v6.4 ||
|-
|-
| rowspan = 5 | Clocks
| RPM Clock Controller || qcom,sc7180-rpmh-clk || class="feature feature-yes" | Y ||
| Global Clock Controller || qcom,sm7150-gcc || Y ||
|-
|-
| RPM Clock Controller || qcom,sm7150-rpmh-clk || Y ||
| GPU Clock Controller || qcom,sc7180-gpucc || class="feature feature-yes" | Y ||
|-
|-
| GPU Clock Controller || qcom,sc7180-gpucc || Y ||
| Display Clock Controller || qcom,sm7150-dispcc || class="feature feature-yes" | v6.11 ||
|-
|-
| Display Clock Controller || qcom,sm7150-dispcc || Y ||
| Video Clock Controller || qcom,sm7150-videocc || class="feature feature-yes" | v6.11 ||
|-
|-
| Camera Clock Controller || qcom,sm7150-camcc || N ||
| Camera Clock Controller || qcom,sm7150-camcc || class="feature feature-yes" | v6.11 ||
|-
|-
| rowspan = 7 | PMIC
| LLCC || Last Level Cache Controller || qcom,sm7150-llcc || class="feature feature-yes" | v6.4 ||
| Buttons || gpio-keys || Y ||
|-
|-
| Fuel gauge || qcom,qpnp-qg (downstream) || N ||
| rowspan = 9 | PMIC
| Buttons || gpio-keys || class="feature feature-yes" | Y ||
|-
|-
| Charger || qcom,qpnp-smb5 (downstream) || N ||  
| Fuel gauge || qcom,pm6150-qg || class="feature feature-partial" | WIP ||
|-
|-
| Haptics || qcom,qpnp-vibrator (downstream) || N ||
| rowspan = 3 | Charger
| qcom,qpnp-smb5 || class="feature feature-no" | WIP ||
|-
|-
| Notification LED || qcom,pm8150l-lpg || Y ||
| qcom,smb1355 (optional) || class="feature feature-no" | N ||
|-
|-
| Flashlight || qcom,spmi-flash-led || Y ||
| qcom,smb1390 (optional) || class="feature feature-no" | N ||
|-
|-
| IR TX || || N ||
| Haptics || qcom,pmi632-vib || class="feature feature-yes" | v6.11 ||
|-
|-
| Sensors || [https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_Sensor_Core SSC] || || N ||
| Notification LED || qcom,pm6150l-lpg || class="feature feature-yes" | v6.10 ||
|-
| Flashlight || qcom,spmi-flash-led || class="feature feature-yes" | v6.4 ||
|-
| Wled || qcom,pm6150l-wled ||  class="feature feature-yes" | v6.6 ||
|-
| Sensors || [https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_Sensor_Core SSC] || || class="feature feature-yes" | Y ||
|}
 
== Known Issues ==
* Venus doesn't initialize with error -110:
<syntaxhighlight lang="text">
[  16.337065] qcom-venus aa00000.video-codec: wait for cpu and video core idle fail (-110)
[  16.347265] qcom-venus: probe of aa00000.video-codec failed with error -110
</syntaxhighlight>
 
== SMMU ==
There are 6 valid IOMMU stream match registers on the [[Xiaomi_POCO_X3_NFC_(xiaomi-surya)|Xiaomi POCO X3 NFC]] provided by the bootloader:
 
{| class="wikitable"
| 1
| SDC1
| <&apps_smmu 0x340 0xf>
|-
| 2
| SDC2
| <&apps_smmu 0x2a0 0xf>
|-
| 3
| SDC4
| <&apps_smmu 0x2c0 0xf>
|-
| 4
| USB
| <&apps_smmu 0x540 0x0>
|-
| 5
| UFS
| <&apps_smmu 0x300 0xf>
|-
| 6
| MDSS
| <&apps_smmu 0x800 0x440>
|-
| 7
| PCI0
| <&apps_smmu 0x1e60 0x0>
|}
|}


== GPS ==
== Gallery ==
Install [https://gitlab.com/gpsd/gpsd/-/merge_requests/139 GPSD with the Qualcomm PDS patch], configure it to use <code>pds://any</code> as the device during runtime and you should be good to go.
<gallery>
File:SM7150_Advanced_Block_Diagram.jpg|Advanced Block Diagram
File:SM7150_Principle_Block_Diagram.jpg|SM7150 Principle Block Diagram
</gallery>


== Join us ==
== Join us ==
Feel free to join us at [https://matrix.to/#/#sm7150-mainline:matrix.org #sm7150-mainline:matrix.org] on Matrix.
Feel free to join us on OFTC at [https://webchat.oftc.net/?channels=%23sm7150-mainline #sm7150-mainline] or on Matrix at [https://matrix.to/#/#sm7150-mainline:matrix.org #sm7150-mainline:matrix.org].


== Who's working on it ==
== Who's working on it ==
* [[User:JIaxyga]]
* [[User:JIaxyga]]
* [[User:Adrian]]
* [[User:Ungeskriptet]]
* [[User:Ungeskriptet]]
__FORCETOC__

Latest revision as of 22:03, 2 February 2025

Qualcomm SM7150
SM7150 in ceramic BGA package
SM7150 in ceramic BGA package
Manufacturer Qualcomm
Name SM7150
Codenames sdmmagpie
Architecture aarch64
CPU
  • SM7150-AA/AB: 2 + 6 cores (2.2 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
  • SM7150-AC: 2 + 6 cores (2.3 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
GPU Adreno 618
NPU 120
Year 2019/2020
Process 8nm
Mainline yes
Community Page https://github.com/sm7150-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Partial
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Works
GPS
Partial
Camera
Partial
NPU
Broken
Suspend
Works
SATA
No data


SM7150-AA (Snapdragon 730), SM7150-AB (Snapdragon 730G) and SM7150-AC (Snapdragon 732G) are premium mid-range Qualcomm SoCs released in 2019 and 2020. Internal msm codename for this platform is sdmmagpie.

Devices

Snapdragon 730

Device Codename Mainline
Xiaomi Mi 9T / Redmi K20 xiaomi-davinci Y

Snapdragon 730G

Device Codename Mainline
Google Pixel 4a google-sunfish Y
Lenovo Tab P11 Pro lenovo-j706f
Motorola Moto G9 Plus motorola-odessa
Samsung Galaxy A71 samsung-a71 Y
Xiaomi Mi Note 10 / Mi CC9 Pro xiaomi-tucana Y
Xiaomi Mi Note 10 Lite xiaomi-toco Y

Snapdragon 732G

Device Codename Mainline
Xiaomi Mi 11 Lite 4G xiaomi-courbet Y
Xiaomi POCO X3 NFC xiaomi-surya Y
Xiaomi Redmi Note 10 Pro xiaomi-sweet Y
Xiaomi Redmi Note 12 Pro (4G) xiaomi-sweet_k6a Y

Mainline

A work in progress mainline kernel is being developed here.

There is a dedicated SM7150 Mainlining guide that explains how to get started.

  • Kernel release, e.g. v6.4: the feature was incorporated upstream as of this release.
  • WIP: Feature works or works partially in community kernel fork. Not upstream yet.
  • Y: The feature works with a generic or compatible driver.
  • N: Feature is not currently supported.
Component Part Driver Status Notes
SoC Snapdragon 730/730G/732G WIP
CPU Kryo Gold 470 (2.2-2.3GHz)
Kryo Silver 470 (1.8GHz)
qcom,kryo470 Y
Storage UFS (2.1 gear 3) qcom,sm7150-ufshc
qcom,ufshc
jedec,ufs-2.0
v6.4
eMMC (5.1) qcom,sdhci-msm-v5 Y Not tested
SD-Card (3.0) qcom,sdhci-msm-v5 Y
USB Type C USB 2.0 qcom,dwc3
snps,dwc3
qcom,qusb2-v2-phy
Y
USB 3.1 N Need a device that has this for tests
DisplayPort 1.4 N
OTG qcom,pm8150b-typec
qcom,pm8150b-vbus-reg
v6.9
Display SimpleFB simple-framebuffer Y
DPU 5_2 (885) qcom,sm7150-dpu v6.11
GPU Adreno 618 (610-825MHz) qcom,adreno-618.0
qcom,adreno
Y
Pinctrl TLMM 114 GPIOs qcom,sm7150-tlmm v6.4
LPASS TLMM 32 GPIOs
(18 SSC & 14 AUDIO)
qcom,sm7150-lpass-lpi-pinctrl WIP
QUP x15 UART qcom,geni-uart Y
I2C qcom,geni-i2c Y
SPI qcom,geni-spi Y
CCI I2C qcom,msm8996-cci Y
Audio wcd9375 N
wcd9340 (optional) N
wcd9341 (optional) N
MI2S qcom,sm8250-sndcard Y
bluetooth audio Y
Video Venus Venus IR v1.2.X N Error -110
Thermal TSENS Y
PMIC SENS Y
WCN3980
WCN3990
WCN3998
WiFi qcom,wcn3990-wifi Y
Bluetooth qcom,wcn3990-bt Y
Modem Calls qcom,sc7180-ipa
IPA v4.2
Y Voice call audio not working
SMS Y
Mobile data Y
GPS Y
Camera qcom,sm7150-camss WIP
NPU NPU 120 (600-700MHz) N
Suspend Y
RAM console (ramoops) Y
Regulators RPMH qcom,pm6150-rpmh-regulators
qcom,pm6150l-rpmh-regulators
qcom,pm8009-rpmh-regulators (optional)
Y
RPMHPD qcom,sm7150-rpmhpd v6.6
RemoteProcs MPSS qcom,sc7180-mpss-pas Y
ADSP qcom,sc7180-adsp-pas Y
CDSP qcom,sc7180-cdsp-pas Y
Interconnects qcom,sm7150-mc-virt
qcom,sm7150-config-noc
qcom,sm7150-system-noc
qcom,sm7150-aggre1-noc
qcom,sm7150-aggre2-noc
qcom,sm7150-mmss-noc
qcom,sm7150-compute-noc
qcom,sm7150-dc-noc
qcom,sm7150-gem-noc
qcom,osm-l3
v6.9
Clocks Global Clock Controller qcom,sm7150-gcc v6.4
RPM Clock Controller qcom,sc7180-rpmh-clk Y
GPU Clock Controller qcom,sc7180-gpucc Y
Display Clock Controller qcom,sm7150-dispcc v6.11
Video Clock Controller qcom,sm7150-videocc v6.11
Camera Clock Controller qcom,sm7150-camcc v6.11
LLCC Last Level Cache Controller qcom,sm7150-llcc v6.4
PMIC Buttons gpio-keys Y
Fuel gauge qcom,pm6150-qg WIP
Charger qcom,qpnp-smb5 WIP
qcom,smb1355 (optional) N
qcom,smb1390 (optional) N
Haptics qcom,pmi632-vib v6.11
Notification LED qcom,pm6150l-lpg v6.10
Flashlight qcom,spmi-flash-led v6.4
Wled qcom,pm6150l-wled v6.6
Sensors SSC Y

Known Issues

  • Venus doesn't initialize with error -110:
[   16.337065] qcom-venus aa00000.video-codec: wait for cpu and video core idle fail (-110)
[   16.347265] qcom-venus: probe of aa00000.video-codec failed with error -110

SMMU

There are 6 valid IOMMU stream match registers on the Xiaomi POCO X3 NFC provided by the bootloader:

1 SDC1 <&apps_smmu 0x340 0xf>
2 SDC2 <&apps_smmu 0x2a0 0xf>
3 SDC4 <&apps_smmu 0x2c0 0xf>
4 USB <&apps_smmu 0x540 0x0>
5 UFS <&apps_smmu 0x300 0xf>
6 MDSS <&apps_smmu 0x800 0x440>
7 PCI0 <&apps_smmu 0x1e60 0x0>

Gallery

Join us

Feel free to join us on OFTC at #sm7150-mainline or on Matrix at #sm7150-mainline:matrix.org.

Who's working on it