On 8/31/2022 3:08 PM, Andy Shevchenko wrote:
On Tue, Aug 30, 2022 at 07:22:08PM +0000, Eliav Farber wrote:
The current equation used in code is aligned to series 5:
T = G + H * (n / cal5 - 0.5) + J * F
Where:
G = 60, H = 200, cal5 = 4094, J = -0.1, F = frequency clock in MHz
Series 6 has a slightly different equation:
T = G + H * (n / cal5 - 0.5)
and a different set of coefficients:
G = 57.4, H = 249.4, cal5 = 4096
This change supports equation and coefficients for both series.
(for series 6, J is set to 0).
The series is determined according to “ts-series” property in device
tree.
If absent, series 5 is assumed to be the default.
...
-#define PVT_H_CONST 200000
-#define PVT_G_CONST 60000
-#define PVT_J_CONST -100
-#define PVT_CAL5_CONST 4094
You just introduced them patch before. Please, avoid ping-pong style in
the same series.
Fixed for v4.
I now introduce these defines in patch 13 to avoid modifying the above
ones and then remove them:
/* Temperature coefficients for series 5 */
#define PVT_SERIES5_H_CONST 200000
#define PVT_SERIES5_G_CONST 60000
#define PVT_SERIES5_J_CONST -100
#define PVT_SERIES5_CAL5_CONST 4094
...
+ ret = of_property_read_u32(np, "moortec,ts-series", &series);
of_ ?!
Be consistent. Either you use OF everywhere, or device property APIs.
Fixed for v4.
Using device_property_read_u32() instead.
...
+ if (ret)
+ series = TEMPERATURE_SENSOR_SERIES_5;
+
+ if (series == TEMPERATURE_SENSOR_SERIES_5) {
+ ts_coeff->h = PVT_SERIES5_H_CONST;
+ ts_coeff->g = PVT_SERIES5_G_CONST;
+ ts_coeff->j = PVT_SERIES5_J_CONST;
+ ts_coeff->cal5 = PVT_SERIES5_CAL5_CONST;
+ } else if (series == TEMPERATURE_SENSOR_SERIES_6) {
+ ts_coeff->h = PVT_SERIES6_H_CONST;
+ ts_coeff->g = PVT_SERIES6_G_CONST;
+ ts_coeff->j = PVT_SERIES6_J_CONST;
+ ts_coeff->cal5 = PVT_SERIES6_CAL5_CONST;
+ } else {
+ dev_err(dev, "invalid temperature sensor series (%u)\n",
+ series);
+ return -EINVAL;
+ }
switch-case?
Changed to switch-case (will be part of v4).
--
Thanks, Eliav