Re: [PATCH v9 3/7] thermal/drivers/tsens: Add TSENS enable and calibration support for V2
From: Manikanta Mylavarapu
Date: Wed Dec 18 2024 - 06:22:57 EST
On 12/14/2024 12:32 AM, Christophe JAILLET wrote:
> Le 25/11/2024 à 06:07, Manikanta Mylavarapu a écrit :
>> From: Praveenkumar I <quic_ipkumar-jfJNa2p1gH1BDgjK7y7TUQ@xxxxxxxxxxxxxxxx>
>>
>> SoCs without RPM need to enable sensors and calibrate them from the kernel.
>> The IPQ5332 and IPQ5424 use the tsens v2.3.3 IP and do not have RPM.
>> Therefore, add a new calibration function for V2, as the tsens.c calib
>> function only supports V1. Also add new feature_config, ops and data for
>> IPQ5332, IPQ5424.
>>
>> Although the TSENS IP supports 16 sensors, not all are used. The hw_id
>> is used to enable the relevant sensors.
>
> ...
>
>> diff --git a/drivers/thermal/qcom/tsens-v2.c b/drivers/thermal/qcom/tsens-v2.c
>> index 0cb7301eca6e..836155fa9ab2 100644
>> --- a/drivers/thermal/qcom/tsens-v2.c
>> +++ b/drivers/thermal/qcom/tsens-v2.c
>> @@ -4,13 +4,32 @@
>> * Copyright (c) 2018, Linaro Limited
>> */
>> +#include <linux/bitfield.h>
>> #include <linux/bitops.h>
>> #include <linux/regmap.h>
>> +#include <linux/nvmem-consumer.h>
>
> If moved one line above, alphabetical order would be kept.
>
Sure, i will update in the next version.
>> #include "tsens.h"
>> /* ----- SROT ------ */
>> #define SROT_HW_VER_OFF 0x0000
>
> ...
>
>> +static const struct tsens_ops ops_ipq5332 = {
>> + .init = init_tsens_v2_no_rpm,
>> + .get_temp = get_temp_tsens_valid,
>> + .calibrate = tsens_v2_calibration,
>> +};
>> +
>> +struct tsens_plat_data data_ipq5332 = {
>
> This could easily be made as const.
>
Sure, i will update in the next version.
>> + .num_sensors = 5,
>> + .ops = &ops_ipq5332,
>> + .hw_ids = (unsigned int []){11, 12, 13, 14, 15},
>> + .feat = &ipq5332_feat,
>> + .fields = tsens_v2_regfields,
>> +};
>> +
>> +struct tsens_plat_data data_ipq5424 = {
>
> This could easily be made as const.
>
Sure, i will update in the next version.
Thanks & Regards,
Manikanta.
>> + .num_sensors = 7,
>> + .ops = &ops_ipq5332,
>> + .hw_ids = (unsigned int []){9, 10, 11, 12, 13, 14, 15},
>> + .feat = &ipq5332_feat,
>> + .fields = tsens_v2_regfields,
>> +};
>
> ...
>
> CJ