Message ID | 20230630061315.4027453-8-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: dts: qcom: sm8450-hdk: improve thermal monitoring | expand |
On 30.06.2023 08:13, Dmitry Baryshkov wrote: > Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > PMIC interface. This includes several onboard sensors and the XO thermal > sensor. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- [...] > > + channel@144 { > + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; This define should be cleaned up.. Since it takes a sid argument, it really is ADC7_AMUX_THM1_100K_PU(sid) Konrad > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "skin_msm_temp"; > + }; > + > + channel@145 { > + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "camera_temp"; > + }; > + > + channel@146 { > + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "therm1_temp"; > + }; > + > + channel@147 { > + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "wide_rfc_temp"; > + }; > + > + channel@148 { > + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "rear_tof_temp"; > + }; > + > + channel@14c { > + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "therm2_temp"; > + }; > + > channel@303 { > reg = <PM8350B_ADC7_DIE_TEMP>; > label = "pm8350b_die_temp"; > }; > > + channel@348 { > + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "usb_conn_temp"; > + }; > + > channel@403 { > reg = <PMR735A_ADC7_DIE_TEMP>; > label = "pmr735a_die_temp"; > }; > + > + channel@44a { > + reg = <PMR735A_ADC7_GPIO1_100K_PU>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "qtm_w_temp"; > + }; > + > + channel@44b { > + reg = <PMR735A_ADC7_GPIO2_100K_PU>; > + qcom,hw-settle-time = <200>; > + qcom,ratiometric; > + label = "qtm_n_temp"; > + }; > }; > > &remoteproc_adsp {
On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 30.06.2023 08:13, Dmitry Baryshkov wrote: > > Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > > PMIC interface. This includes several onboard sensors and the XO thermal > > sensor. > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > [...] > > > > + channel@144 { > > + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; > This define should be cleaned up.. Since it takes a sid argument, > it really is ADC7_AMUX_THM1_100K_PU(sid) I don't think I understood your comment. The define itself is specific to PM8350, other PMICs might have different channel assignments. > > Konrad > > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "skin_msm_temp"; > > + }; > > + > > + channel@145 { > > + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "camera_temp"; > > + }; > > + > > + channel@146 { > > + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "therm1_temp"; > > + }; > > + > > + channel@147 { > > + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "wide_rfc_temp"; > > + }; > > + > > + channel@148 { > > + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "rear_tof_temp"; > > + }; > > + > > + channel@14c { > > + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "therm2_temp"; > > + }; > > + > > channel@303 { > > reg = <PM8350B_ADC7_DIE_TEMP>; > > label = "pm8350b_die_temp"; > > }; > > > > + channel@348 { > > + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "usb_conn_temp"; > > + }; > > + > > channel@403 { > > reg = <PMR735A_ADC7_DIE_TEMP>; > > label = "pmr735a_die_temp"; > > }; > > + > > + channel@44a { > > + reg = <PMR735A_ADC7_GPIO1_100K_PU>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "qtm_w_temp"; > > + }; > > + > > + channel@44b { > > + reg = <PMR735A_ADC7_GPIO2_100K_PU>; > > + qcom,hw-settle-time = <200>; > > + qcom,ratiometric; > > + label = "qtm_n_temp"; > > + }; > > }; > > > > &remoteproc_adsp {
On 30.06.2023 12:07, Dmitry Baryshkov wrote: > On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >> >> On 30.06.2023 08:13, Dmitry Baryshkov wrote: >>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) >>> PMIC interface. This includes several onboard sensors and the XO thermal >>> sensor. >>> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>> --- >> [...] >>> >>> + channel@144 { >>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; >> This define should be cleaned up.. Since it takes a sid argument, >> it really is ADC7_AMUX_THM1_100K_PU(sid) > > I don't think I understood your comment. The define itself is specific > to PM8350, other PMICs might have different channel assignments. include/dt-bindings/iio/qcom,spmi-vadc.h 263:#define ADC7_AMUX_THM1_100K_PU 0x44 Konrad > >> >> Konrad >> >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "skin_msm_temp"; >>> + }; >>> + >>> + channel@145 { >>> + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "camera_temp"; >>> + }; >>> + >>> + channel@146 { >>> + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "therm1_temp"; >>> + }; >>> + >>> + channel@147 { >>> + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "wide_rfc_temp"; >>> + }; >>> + >>> + channel@148 { >>> + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "rear_tof_temp"; >>> + }; >>> + >>> + channel@14c { >>> + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "therm2_temp"; >>> + }; >>> + >>> channel@303 { >>> reg = <PM8350B_ADC7_DIE_TEMP>; >>> label = "pm8350b_die_temp"; >>> }; >>> >>> + channel@348 { >>> + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "usb_conn_temp"; >>> + }; >>> + >>> channel@403 { >>> reg = <PMR735A_ADC7_DIE_TEMP>; >>> label = "pmr735a_die_temp"; >>> }; >>> + >>> + channel@44a { >>> + reg = <PMR735A_ADC7_GPIO1_100K_PU>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "qtm_w_temp"; >>> + }; >>> + >>> + channel@44b { >>> + reg = <PMR735A_ADC7_GPIO2_100K_PU>; >>> + qcom,hw-settle-time = <200>; >>> + qcom,ratiometric; >>> + label = "qtm_n_temp"; >>> + }; >>> }; >>> >>> &remoteproc_adsp { > > >
On Fri, 30 Jun 2023 at 14:27, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 30.06.2023 12:07, Dmitry Baryshkov wrote: > > On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > >> > >> On 30.06.2023 08:13, Dmitry Baryshkov wrote: > >>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > >>> PMIC interface. This includes several onboard sensors and the XO thermal > >>> sensor. > >>> > >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>> --- > >> [...] > >>> > >>> + channel@144 { > >>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; > >> This define should be cleaned up.. Since it takes a sid argument, > >> it really is ADC7_AMUX_THM1_100K_PU(sid) > > > > I don't think I understood your comment. The define itself is specific > > to PM8350, other PMICs might have different channel assignments. > > include/dt-bindings/iio/qcom,spmi-vadc.h > 263:#define ADC7_AMUX_THM1_100K_PU 0x44 Do you want to define PM8350_ADC7_AMUX_THM1_100K_PU(sid) using ADC7_AMUX_THM1_100K_PU ? Or to make all users use ADC7_AMUX_THM1_100K_PU? Or add the SID argument to ADC7_AMUX_THM1_100K_PU and switch to it? > > Konrad > > > >> > >> Konrad > >> > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "skin_msm_temp"; > >>> + }; > >>> + > >>> + channel@145 { > >>> + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "camera_temp"; > >>> + }; > >>> + > >>> + channel@146 { > >>> + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "therm1_temp"; > >>> + }; > >>> + > >>> + channel@147 { > >>> + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "wide_rfc_temp"; > >>> + }; > >>> + > >>> + channel@148 { > >>> + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "rear_tof_temp"; > >>> + }; > >>> + > >>> + channel@14c { > >>> + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "therm2_temp"; > >>> + }; > >>> + > >>> channel@303 { > >>> reg = <PM8350B_ADC7_DIE_TEMP>; > >>> label = "pm8350b_die_temp"; > >>> }; > >>> > >>> + channel@348 { > >>> + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "usb_conn_temp"; > >>> + }; > >>> + > >>> channel@403 { > >>> reg = <PMR735A_ADC7_DIE_TEMP>; > >>> label = "pmr735a_die_temp"; > >>> }; > >>> + > >>> + channel@44a { > >>> + reg = <PMR735A_ADC7_GPIO1_100K_PU>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "qtm_w_temp"; > >>> + }; > >>> + > >>> + channel@44b { > >>> + reg = <PMR735A_ADC7_GPIO2_100K_PU>; > >>> + qcom,hw-settle-time = <200>; > >>> + qcom,ratiometric; > >>> + label = "qtm_n_temp"; > >>> + }; > >>> }; > >>> > >>> &remoteproc_adsp { > > > > > >
On 30.06.2023 14:57, Dmitry Baryshkov wrote: > On Fri, 30 Jun 2023 at 14:27, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >> >> On 30.06.2023 12:07, Dmitry Baryshkov wrote: >>> On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >>>> >>>> On 30.06.2023 08:13, Dmitry Baryshkov wrote: >>>>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) >>>>> PMIC interface. This includes several onboard sensors and the XO thermal >>>>> sensor. >>>>> >>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>> --- >>>> [...] >>>>> >>>>> + channel@144 { >>>>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; >>>> This define should be cleaned up.. Since it takes a sid argument, >>>> it really is ADC7_AMUX_THM1_100K_PU(sid) >>> >>> I don't think I understood your comment. The define itself is specific >>> to PM8350, other PMICs might have different channel assignments. >> >> include/dt-bindings/iio/qcom,spmi-vadc.h >> 263:#define ADC7_AMUX_THM1_100K_PU 0x44 > > Do you want to define PM8350_ADC7_AMUX_THM1_100K_PU(sid) using > ADC7_AMUX_THM1_100K_PU ? > Or to make all users use ADC7_AMUX_THM1_100K_PU? >Or add the SID > argument to ADC7_AMUX_THM1_100K_PU and switch to it? This. Since we have a generic binding for it (not sure what sort of ABI-ish rules apply here, probably not very many since it's just a dumb preprocessor define), we should not redefine it for each PMIC, especially since the SIDs are variable nowadays :/ Sorry for being too vague. Konrad > >> >> Konrad >>> >>>> >>>> Konrad >>>> >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "skin_msm_temp"; >>>>> + }; >>>>> + >>>>> + channel@145 { >>>>> + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "camera_temp"; >>>>> + }; >>>>> + >>>>> + channel@146 { >>>>> + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "therm1_temp"; >>>>> + }; >>>>> + >>>>> + channel@147 { >>>>> + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "wide_rfc_temp"; >>>>> + }; >>>>> + >>>>> + channel@148 { >>>>> + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "rear_tof_temp"; >>>>> + }; >>>>> + >>>>> + channel@14c { >>>>> + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "therm2_temp"; >>>>> + }; >>>>> + >>>>> channel@303 { >>>>> reg = <PM8350B_ADC7_DIE_TEMP>; >>>>> label = "pm8350b_die_temp"; >>>>> }; >>>>> >>>>> + channel@348 { >>>>> + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "usb_conn_temp"; >>>>> + }; >>>>> + >>>>> channel@403 { >>>>> reg = <PMR735A_ADC7_DIE_TEMP>; >>>>> label = "pmr735a_die_temp"; >>>>> }; >>>>> + >>>>> + channel@44a { >>>>> + reg = <PMR735A_ADC7_GPIO1_100K_PU>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "qtm_w_temp"; >>>>> + }; >>>>> + >>>>> + channel@44b { >>>>> + reg = <PMR735A_ADC7_GPIO2_100K_PU>; >>>>> + qcom,hw-settle-time = <200>; >>>>> + qcom,ratiometric; >>>>> + label = "qtm_n_temp"; >>>>> + }; >>>>> }; >>>>> >>>>> &remoteproc_adsp { >>> >>> >>> > > >
On Fri, 30 Jun 2023 at 19:15, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 30.06.2023 14:57, Dmitry Baryshkov wrote: > > On Fri, 30 Jun 2023 at 14:27, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > >> > >> On 30.06.2023 12:07, Dmitry Baryshkov wrote: > >>> On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > >>>> > >>>> On 30.06.2023 08:13, Dmitry Baryshkov wrote: > >>>>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > >>>>> PMIC interface. This includes several onboard sensors and the XO thermal > >>>>> sensor. > >>>>> > >>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>>>> --- > >>>> [...] > >>>>> > >>>>> + channel@144 { > >>>>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; > >>>> This define should be cleaned up.. Since it takes a sid argument, > >>>> it really is ADC7_AMUX_THM1_100K_PU(sid) > >>> > >>> I don't think I understood your comment. The define itself is specific > >>> to PM8350, other PMICs might have different channel assignments. > >> > >> include/dt-bindings/iio/qcom,spmi-vadc.h > >> 263:#define ADC7_AMUX_THM1_100K_PU 0x44 > > > > Do you want to define PM8350_ADC7_AMUX_THM1_100K_PU(sid) using > > ADC7_AMUX_THM1_100K_PU ? > > Or to make all users use ADC7_AMUX_THM1_100K_PU? > > > >Or add the SID > > argument to ADC7_AMUX_THM1_100K_PU and switch to it? > This. > > Since we have a generic binding for it (not sure what sort of ABI-ish rules > apply here, probably not very many since it's just a dumb preprocessor define), > we should not redefine it for each PMIC, especially since the SIDs are variable > nowadays :/ I think it would be worth to have per-PMIC headers (which define which channels are available on this PMIC), but to use values from the qcom,spmi-vadc.h header to define those per-PMIC values. WDYT? > > Sorry for being too vague. > > Konrad > > > >> > >> Konrad > >>> > >>>> > >>>> Konrad > >>>> > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "skin_msm_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@145 { > >>>>> + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "camera_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@146 { > >>>>> + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "therm1_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@147 { > >>>>> + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "wide_rfc_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@148 { > >>>>> + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "rear_tof_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@14c { > >>>>> + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "therm2_temp"; > >>>>> + }; > >>>>> + > >>>>> channel@303 { > >>>>> reg = <PM8350B_ADC7_DIE_TEMP>; > >>>>> label = "pm8350b_die_temp"; > >>>>> }; > >>>>> > >>>>> + channel@348 { > >>>>> + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "usb_conn_temp"; > >>>>> + }; > >>>>> + > >>>>> channel@403 { > >>>>> reg = <PMR735A_ADC7_DIE_TEMP>; > >>>>> label = "pmr735a_die_temp"; > >>>>> }; > >>>>> + > >>>>> + channel@44a { > >>>>> + reg = <PMR735A_ADC7_GPIO1_100K_PU>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "qtm_w_temp"; > >>>>> + }; > >>>>> + > >>>>> + channel@44b { > >>>>> + reg = <PMR735A_ADC7_GPIO2_100K_PU>; > >>>>> + qcom,hw-settle-time = <200>; > >>>>> + qcom,ratiometric; > >>>>> + label = "qtm_n_temp"; > >>>>> + }; > >>>>> }; > >>>>> > >>>>> &remoteproc_adsp { > >>> > >>> > >>> > > > > > >
On Fri, Jun 30, 2023 at 08:42:23PM +0300, Dmitry Baryshkov wrote: > On Fri, 30 Jun 2023 at 19:15, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > > > On 30.06.2023 14:57, Dmitry Baryshkov wrote: > > > On Fri, 30 Jun 2023 at 14:27, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > >> > > >> On 30.06.2023 12:07, Dmitry Baryshkov wrote: > > >>> On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > >>>> > > >>>> On 30.06.2023 08:13, Dmitry Baryshkov wrote: > > >>>>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > > >>>>> PMIC interface. This includes several onboard sensors and the XO thermal > > >>>>> sensor. > > >>>>> > > >>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > >>>>> --- > > >>>> [...] > > >>>>> > > >>>>> + channel@144 { > > >>>>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; > > >>>> This define should be cleaned up.. Since it takes a sid argument, > > >>>> it really is ADC7_AMUX_THM1_100K_PU(sid) > > >>> > > >>> I don't think I understood your comment. The define itself is specific > > >>> to PM8350, other PMICs might have different channel assignments. > > >> > > >> include/dt-bindings/iio/qcom,spmi-vadc.h > > >> 263:#define ADC7_AMUX_THM1_100K_PU 0x44 > > > > > > Do you want to define PM8350_ADC7_AMUX_THM1_100K_PU(sid) using > > > ADC7_AMUX_THM1_100K_PU ? > > > Or to make all users use ADC7_AMUX_THM1_100K_PU? > > > > > > >Or add the SID > > > argument to ADC7_AMUX_THM1_100K_PU and switch to it? > > This. > > > > Since we have a generic binding for it (not sure what sort of ABI-ish rules > > apply here, probably not very many since it's just a dumb preprocessor define), > > we should not redefine it for each PMIC, especially since the SIDs are variable > > nowadays :/ > > I think it would be worth to have per-PMIC headers (which define which > channels are available on this PMIC), but to use values from the > qcom,spmi-vadc.h header to define those per-PMIC values. > > WDYT? > Note that the channel relates to this PMIC, but the sid is of the measured PMIC. So I'm not sure which PMIC you're thinking of when you say per-PMIC... Regards, Bjorn
On Fri, 30 Jun 2023 at 23:59, Bjorn Andersson <quic_bjorande@quicinc.com> wrote: > > On Fri, Jun 30, 2023 at 08:42:23PM +0300, Dmitry Baryshkov wrote: > > On Fri, 30 Jun 2023 at 19:15, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > > > > > On 30.06.2023 14:57, Dmitry Baryshkov wrote: > > > > On Fri, 30 Jun 2023 at 14:27, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > > >> > > > >> On 30.06.2023 12:07, Dmitry Baryshkov wrote: > > > >>> On Fri, 30 Jun 2023 at 11:19, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > > >>>> > > > >>>> On 30.06.2023 08:13, Dmitry Baryshkov wrote: > > > >>>>> Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) > > > >>>>> PMIC interface. This includes several onboard sensors and the XO thermal > > > >>>>> sensor. > > > >>>>> > > > >>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > > >>>>> --- > > > >>>> [...] > > > >>>>> > > > >>>>> + channel@144 { > > > >>>>> + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; > > > >>>> This define should be cleaned up.. Since it takes a sid argument, > > > >>>> it really is ADC7_AMUX_THM1_100K_PU(sid) > > > >>> > > > >>> I don't think I understood your comment. The define itself is specific > > > >>> to PM8350, other PMICs might have different channel assignments. > > > >> > > > >> include/dt-bindings/iio/qcom,spmi-vadc.h > > > >> 263:#define ADC7_AMUX_THM1_100K_PU 0x44 > > > > > > > > Do you want to define PM8350_ADC7_AMUX_THM1_100K_PU(sid) using > > > > ADC7_AMUX_THM1_100K_PU ? > > > > Or to make all users use ADC7_AMUX_THM1_100K_PU? > > > > > > > > > >Or add the SID > > > > argument to ADC7_AMUX_THM1_100K_PU and switch to it? > > > This. > > > > > > Since we have a generic binding for it (not sure what sort of ABI-ish rules > > > apply here, probably not very many since it's just a dumb preprocessor define), > > > we should not redefine it for each PMIC, especially since the SIDs are variable > > > nowadays :/ > > > > I think it would be worth to have per-PMIC headers (which define which > > channels are available on this PMIC), but to use values from the > > qcom,spmi-vadc.h header to define those per-PMIC values. > > > > WDYT? > > > > Note that the channel relates to this PMIC, but the sid is of the > measured PMIC. So I'm not sure which PMIC you're thinking of when you > say per-PMIC... Not quite. Both sid and channel are for the peasuring PMIC (pm8350b, pm8350, etc). On pmk8350 we further multiplex them into the 8 channels of adc-tm. > > Regards, > Bjorn
diff --git a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts index d07e402eaba3..4dfc964a4bb1 100644 --- a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts @@ -133,6 +133,120 @@ pmic_glink_sbu: endpoint { }; }; + thermal-zones { + camera-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 2>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + rear-tof-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 5>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + skin-msm-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 1>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + therm1-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 3>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + therm2-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 6>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + usb-conn-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 7>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + wide-rfc-thermal { + polling-delay-passive = <250>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 4>; + + trips { + active-config0 { + temperature = <75000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + + xo-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 0>; + + trips { + active-config0 { + temperature = <50000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + }; + }; + vph_pwr: vph-pwr-regulator { compatible = "regulator-fixed"; regulator-name = "vph_pwr"; @@ -607,6 +721,66 @@ &pmr735a_temp_alarm { io-channel-names = "thermal"; }; +&pmk8350_adc_tm { + status = "okay"; + + xo-therm@0 { + reg = <0>; + io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + skin-msm-therm@1 { + reg = <1>; + io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + camera-therm@2 { + reg = <2>; + io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + therm1-therm@3 { + reg = <3>; + io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + wide-rfc-therm@4 { + reg = <4>; + io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + rear-tof-therm@5 { + reg = <5>; + io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM5_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + therm2-therm@6 { + reg = <6>; + io-channels = <&pmk8350_vadc PM8350_ADC7_GPIO3_100K_PU(1)>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; + + usb-conn-therm@7 { + reg = <7>; + io-channels = <&pmk8350_vadc PM8350B_ADC7_AMUX_THM5_100K_PU>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; +}; + &pmk8350_vadc { status = "okay"; @@ -615,20 +789,90 @@ channel@3 { label = "pmk8350_die_temp"; }; + channel@44 { + reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "pmk8350_xo_therm"; + }; + channel@103 { reg = <PM8350_ADC7_DIE_TEMP(1)>; label = "pm8350_die_temp"; }; + channel@144 { + reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "skin_msm_temp"; + }; + + channel@145 { + reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "camera_temp"; + }; + + channel@146 { + reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "therm1_temp"; + }; + + channel@147 { + reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "wide_rfc_temp"; + }; + + channel@148 { + reg = <PM8350_ADC7_AMUX_THM5_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "rear_tof_temp"; + }; + + channel@14c { + reg = <PM8350_ADC7_GPIO3_100K_PU(1)>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "therm2_temp"; + }; + channel@303 { reg = <PM8350B_ADC7_DIE_TEMP>; label = "pm8350b_die_temp"; }; + channel@348 { + reg = <PM8350B_ADC7_AMUX_THM5_100K_PU>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "usb_conn_temp"; + }; + channel@403 { reg = <PMR735A_ADC7_DIE_TEMP>; label = "pmr735a_die_temp"; }; + + channel@44a { + reg = <PMR735A_ADC7_GPIO1_100K_PU>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "qtm_w_temp"; + }; + + channel@44b { + reg = <PMR735A_ADC7_GPIO2_100K_PU>; + qcom,hw-settle-time = <200>; + qcom,ratiometric; + label = "qtm_n_temp"; + }; }; &remoteproc_adsp {
Add thermal zones controlled through the ADC-TM (ADC thermal monitoring) PMIC interface. This includes several onboard sensors and the XO thermal sensor. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 244 ++++++++++++++++++++++++ 1 file changed, 244 insertions(+)