From fc449f9e00319c4a5a951c98caa3bde48aa220b7 Mon Sep 17 00:00:00 2001 From: erebion Date: Sun, 1 Nov 2026 18:32:05 +0100 Subject: [PATCH] move thermals to its own file, update status of thermals --- README.md | 4 +- notes/components.md | 189 -------------------------------------------- notes/thermals.md | 186 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 189 insertions(+), 190 deletions(-) create mode 100644 notes/thermals.md diff --git a/README.md b/README.md index 6b7e4bd..4b6be65 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Some notes on my work getting Mobian to run on the Xperia 10 III (codename pdx21 | RTC | ✅ | ✅ | [yes, needs review](https://lore.kernel.org/all/20260926-pdx213-upstream-3-v1-0-1609c18b5c1d@erebion.eu/) | | Sound | to do | | | | SMS | should work when modem is up, needs testing | | | -| Thermals | wip | | | +| Thermals | ✅ | | | | Touch | ✅ | was already part of upstream | - | | UFS | broken, need help | | | | USB-C | idk, USB networking works, need to check whether host mode works by plugging in at least a USB stick | | | @@ -56,6 +56,8 @@ Further detail on some components can be found in the `notes` folder in this rep My working branch: https://salsa.debian.org/erebion/linux/-/tree/erebion/pdx213-wip +Please note that I'm not keeping this branch up to date with the latest kernel versions or fixes. I rarely update, as I don't want a moving target while debugging. + The plan is to submit all my patches to https://github.com/sm6350-mainline/linux and to then upstream them to the kernel. Note: I'm rebasing occasionally to make sure it does not become too chaotic, so pulling from that repo will lead to merge conflicts. diff --git a/notes/components.md b/notes/components.md index 5349055..d7b96b0 100644 --- a/notes/components.md +++ b/notes/components.md @@ -1,192 +1,3 @@ -# Downstream.. things - -A lot of things here might be called "stuff" or "things" because I don't know the right term. - -## Thermal Zones and ADC stuff - -Thermal zones marked as not working should work with this patch applied: https://lore.kernel.org/all/20260724-adc-tm5-drop-iio-val-int-check-v1-1-0b85a0895dd7@oss.qualcomm.com/#t - -### ADC stuff - -Relevant docs: - -- include/dt-bindings/iio/qcom,spmi-vadc.h - -#### pm6150l - -##### pm6150l@4 - -###### pm6150l_adc (adc@3100) - -| downstram name | reg- | upstream name | need to add | added? | corresponding thermal zone | can get value from corresponding thermal zone | -| -------------------- | ---- | -------------------- | ----------- | ------ | -------------------------- | --------------------------------------------- | -| ref_gnd | 0x00 | | | | | | -| vref_1p25 | 0x01 | | | | | | -| die_temp | 0x06 | | | | | | -| vph_pwr | 0x83 | | | | | | -| pa_therm2 | 0x4d | pa-therm1 | yes | yes | pa1-thermal | yes | -| msm_therm | 0x4e | | yes | yes | sdm-skin-thermal | | -| pa_therm1 | 0x4f | pa-therm0 | yes | yes | pa0-thermal | yes | -| get_stageid_adc | 0x52 | | | | | | -| rfc_cam_therm | 0x53 | rear-cam-sensor | yes | yes | rear-cam-thermal | no, getting -40 degrees (celsius?) | -| rear_cam_flash_therm | 0x54 | rear-cam-flash-therm | yes | yes | rfc-flash-thermal | yes | -| quiet_therm | 0x55 | quiet-therm | yes | yes | quiet-thermal | yes | - -Table complete from downstram DT: yes - -###### pm6150l_adc_tm (adc-tm@3500) - -compatible string: `qcom,adc-tm5` - -| downstram name | reg | gpio | upstream name | -| -------------------- | ---- | ----- |-------------- | -| pa-therm1 | 0x4d | n/a | | -| pa-therm0 | 0x4f | n/a | | -| rear-cam-flash-therm | 0x54 | gpio3 (should it be gpio7?) | | -| quiet-therm | 0x55 | gpio4 (should it be gpio10?) | | - -Table complete from downstram DT: yes - -###### ? (adc-tm@3400) - -this one is not defined in pm6150l.dtsi! - -compatible string: `qcom,adc-tm5-iio` - -| downstram name | reg | gpio | upstream name | -| -------------- | --- | ---- | ------------- | -| msm_therm | 0x4e | n/a | | -| rfc_cam_therm | 0x53 | gpio2 (should it be gpio6?) | rear_cam_therm | - -Table complete from downstram DT: yes - -##### pm6150l@5 - -Flash LED (added), Tri-LED (above screen, probably needs to be added), AMOLED regulator (does this need to be added?) - -#### pm7250b - -``` -&pm7250b_vbus { - regulator-min-microamp = <500000>; - regulator-max-microamp = <1500000>; - - status = "okay"; -}; -``` - -##### pm7250b@2 - -Need to find value in downstream device tree... - -###### pm7250b_adc (adc@3100) - -- downsteam compatible string: `qcom,spmi-adc5` -- upstream compatible string: ? - -| downstram name | reg | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | -| ------------------ | --- | ------------- | | | | | -| ref_gnd@0 | 0x00 | | | | | | -| vref_1p25@1 | 0x01 | | | | | | -| die_temp@2 | 0x06 | | | | | | -| usb_in_i_uv@7 | 0x07 | | | | | | -| usb_in_v_div_16@8 | 0x08 | | | | | | -| chg_tmp@9 | 0x09 | | | | | | -| smb1390_therm@e | 0x0e | | | | | | -| mid_chg_div6@1e | 0x1e | | | | | | -| bat_therm_30k@2a | 0x2a | | | | | | -| bat_therm@4a | 0x4a | | | | | | -| bat_id@4b | 0x4b | | | | | | -| charger_skin_therm | 0x4d | | yes | yes | chg-skin-thermal | yes | -| conn_therm | 0x4f | | yes | yes | conn-thermal | yes | -| bat_therm_400k@6a | 0x6a | | | | | | -| vph_pwr@83 | 0x83 | | | | | | -| vbat_sns@84 | 0x84 | | | | | | -| chg_sbux@99 | 0x99 | | | | | | -| v_i_int_ext@b0 | 0xb0 | | | | | | -| v_i_parallel@b0 | 0xb4 | | | | | | - -Table complete from downstram DT: yes - -###### pm7250b_adc_tm (adc-tm@3500) - -| downstram name | reg | upstream name | -| ------------------ | ---- | ------------- | -| charger_skin_therm | 0x4d | | -| conn_therm | 0x4f | | - -Table complete from downstram DT: yes - -#### pm7250b@3 - -Downstream: - -``` - qcom,pm7250b@3 { - compatible = "qcom,spmi-pmic"; - reg = <0x03 0x00>; - #address-cells = <0x02>; - #size-cells = <0x00>; - - qcom,vibrator@5300 { - compatible = "qcom,qpnp-vibrator-ldo"; - reg = <0x5300 0x100>; - qcom,vib-ldo-volt-uv = <0x2dc6c0>; - qcom,disable-overdrive; - phandle = <0x307>; - }; - }; -``` - -so... this is where the vibrator is - -#### pm8008 - -##### pm8008@9 - -Contains regulators, downstream calls them `qcom,pm8008-regulator` - -- Downstram compatible string: `qcom,pm8008-regulator` -- Upstream compatible string: ? - -Regulators are: - -| downstream name | upstream name | -| --------------- | ------------ | -| pm8008_en-supply | | -| vdd_l1_l2-supply | | -| vdd_l3_l4-supply | | -| vdd_l5-supply | | -| vdd_l6-supply | | -| vdd_l7-supply | | - -Table complete from downstream DT: yes - -#### pmk8350 - -Also: RTC - -##### pmk8350@6 - -###### pmk8350_adc (adc@3100) - -| downstram name | reg | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | -| ------------------ | ----- | ------------- | ----------- | ------ | -------------------------- | ------------------------------- | -| ref_gnd | 0x600 | | | | | | -| vref_1p25 | 0x601 | | | | | | -| die_temp | 0x603 | | | | | | -| xo_therm | 0x644 | | yes | yes | xo-thermal | yes | - -Table complete from downstram DT: yes - -###### pmk8350_adc_tm (adc_tm@3400) - -| downstram name | reg | gpio | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | -| ------------------ | ----- | ---- | ------------- | ----------- | ------ | -------------------------- | ------------------------------- | -| xo-therm | 0x644 | n/a | | yes | yes | xo-thermal | no, something is wrong | - -Table complete from downstram DT: yes - ## Components Some interesting compatible strings in the downstram device tree. diff --git a/notes/thermals.md b/notes/thermals.md new file mode 100644 index 0000000..6178bd6 --- /dev/null +++ b/notes/thermals.md @@ -0,0 +1,186 @@ +# Thermal Zones and ADC stuff + +Thermal zones marked as not working should work with this patch applied: https://lore.kernel.org/all/20260724-adc-tm5-drop-iio-val-int-check-v1-1-0b85a0895dd7@oss.qualcomm.com/#t + +## ADC stuff + +Relevant docs: + +- include/dt-bindings/iio/qcom,spmi-vadc.h + +### pm6150l + +#### pm6150l@4 + +##### pm6150l_adc (adc@3100) + +| downstram name | reg | upstream name | need to add | added? | corresponding thermal zone | can get value from corresponding thermal zone | +| -------------------- | ---- | -------------------- | ----------- | ------ | -------------------------- | --------------------------------------------- | +| ref_gnd | 0x00 | | | | | | +| vref_1p25 | 0x01 | | | | | | +| die_temp | 0x06 | | | | | | +| vph_pwr | 0x83 | | | | | | +| pa_therm2 | 0x4d | pa-therm1 | yes | yes | pa1-thermal | yes | +| msm_therm | 0x4e | | yes | yes | sdm-skin-thermal | | +| pa_therm1 | 0x4f | pa-therm0 | yes | yes | pa0-thermal | yes | +| get_stageid_adc | 0x52 | | | | | | +| rfc_cam_therm | 0x53 | rear-cam-sensor | yes | yes | rear-cam-thermal | yes | +| rear_cam_flash_therm | 0x54 | rear-cam-flash-therm | yes | yes | rfc-flash-thermal | yes | +| quiet_therm | 0x55 | quiet-therm | yes | yes | quiet-thermal | yes | + +Table complete from downstram DT: yes + +##### pm6150l_adc_tm (adc-tm@3500) + +compatible string: `qcom,adc-tm5` + +| downstram name | reg | gpio | upstream name | +| -------------------- | ---- | ----- |-------------- | +| pa-therm1 | 0x4d | n/a | | +| pa-therm0 | 0x4f | n/a | | +| rear-cam-flash-therm | 0x54 | gpio7 | | +| quiet-therm | 0x55 | gpio4 (should it be gpio10? is that just what downstream calls it?) | | + +Table complete from downstram DT: yes + +There's no gpio10 in `include/dt-bindings/iio/qcom,spmi-vadc.h` and I'm not sure how to define it... + +##### ? (adc-tm@3400) + +this one is not defined in pm6150l.dtsi! + +compatible string: `qcom,adc-tm5-iio` + +| downstram name | reg | gpio | upstream name | +| -------------- | --- | ---- | ------------- | +| msm_therm | 0x4e | n/a | | +| rfc_cam_therm | 0x53 | gpio6 | rear_cam_therm | + +Table complete from downstram DT: yes + +#### pm6150l@5 + +Flash LED (added), Tri-LED (above screen, probably needs to be added), AMOLED regulator (does this need to be added?) + +### pm7250b + +``` +&pm7250b_vbus { + regulator-min-microamp = <500000>; + regulator-max-microamp = <1500000>; + + status = "okay"; +}; +``` + +#### pm7250b@2 + +Need to find value in downstream device tree... + +##### pm7250b_adc (adc@3100) + +- downsteam compatible string: `qcom,spmi-adc5` +- upstream compatible string: ? + +| downstram name | reg | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | +| ------------------ | --- | ------------- | | | | | +| ref_gnd@0 | 0x00 | | | | | | +| vref_1p25@1 | 0x01 | | | | | | +| die_temp@2 | 0x06 | | | | | | +| usb_in_i_uv@7 | 0x07 | | | | | | +| usb_in_v_div_16@8 | 0x08 | | | | | | +| chg_tmp@9 | 0x09 | | | | | | +| smb1390_therm@e | 0x0e | | | | | | +| mid_chg_div6@1e | 0x1e | | | | | | +| bat_therm_30k@2a | 0x2a | | | | | | +| bat_therm@4a | 0x4a | | | | | | +| bat_id@4b | 0x4b | | | | | | +| charger_skin_therm | 0x4d | | yes | yes | chg-skin-thermal | yes | +| conn_therm | 0x4f | | yes | yes | conn-thermal | yes | +| bat_therm_400k@6a | 0x6a | | | | | | +| vph_pwr@83 | 0x83 | | | | | | +| vbat_sns@84 | 0x84 | | | | | | +| chg_sbux@99 | 0x99 | | | | | | +| v_i_int_ext@b0 | 0xb0 | | | | | | +| v_i_parallel@b0 | 0xb4 | | | | | | + +Table complete from downstram DT: yes + +##### pm7250b_adc_tm (adc-tm@3500) + +| downstram name | reg | upstream name | +| ------------------ | ---- | ------------- | +| charger_skin_therm | 0x4d | | +| conn_therm | 0x4f | | + +Table complete from downstram DT: yes + +### pm7250b@3 + +Downstream: + +``` + qcom,pm7250b@3 { + compatible = "qcom,spmi-pmic"; + reg = <0x03 0x00>; + #address-cells = <0x02>; + #size-cells = <0x00>; + + qcom,vibrator@5300 { + compatible = "qcom,qpnp-vibrator-ldo"; + reg = <0x5300 0x100>; + qcom,vib-ldo-volt-uv = <0x2dc6c0>; + qcom,disable-overdrive; + phandle = <0x307>; + }; + }; +``` + +so... this is where the vibrator is + +### pm8008 + +#### pm8008@9 + +Contains regulators, downstream calls them `qcom,pm8008-regulator` + +- Downstram compatible string: `qcom,pm8008-regulator` +- Upstream compatible string: ? + +Regulators are: + +| downstream name | upstream name | +| --------------- | ------------ | +| pm8008_en-supply | | +| vdd_l1_l2-supply | | +| vdd_l3_l4-supply | | +| vdd_l5-supply | | +| vdd_l6-supply | | +| vdd_l7-supply | | + +Table complete from downstream DT: yes + +### pmk8350 + +Also: RTC + +#### pmk8350@6 + +##### pmk8350_adc (adc@3100) + +| downstram name | reg | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | +| ------------------ | ----- | ------------- | ----------- | ------ | -------------------------- | ------------------------------- | +| ref_gnd | 0x600 | | | | | | +| vref_1p25 | 0x601 | | | | | | +| die_temp | 0x603 | | | | | | +| xo_therm | 0x644 | | yes | yes | xo-thermal | yes | + +Table complete from downstram DT: yes + +##### pmk8350_adc_tm (adc_tm@3400) + +| downstram name | reg | gpio | upstream name | need to add | added? | corresponding thermal zone | can get value from thermal zone | +| ------------------ | ----- | ---- | ------------- | ----------- | ------ | -------------------------- | ------------------------------- | +| xo-therm | 0x644 | n/a | | yes | yes | xo-thermal | yes | + +Table complete from downstram DT: yes