@@ -66,6 +66,10 @@ struct equation_coefs {
6666 int b2 ;
6767};
6868
69+ struct rcar_thermal_info {
70+ int ths_tj_1 ;
71+ };
72+
6973struct rcar_gen3_thermal_tsc {
7074 void __iomem * base ;
7175 struct thermal_zone_device * zone ;
@@ -79,6 +83,7 @@ struct rcar_gen3_thermal_priv {
7983 struct thermal_zone_device_ops ops ;
8084 unsigned int num_tscs ;
8185 int ptat [3 ];
86+ const struct rcar_thermal_info * info ;
8287};
8388
8489static inline u32 rcar_gen3_thermal_read (struct rcar_gen3_thermal_tsc * tsc ,
@@ -318,52 +323,58 @@ static void rcar_gen3_thermal_init(struct rcar_gen3_thermal_priv *priv,
318323 usleep_range (1000 , 2000 );
319324}
320325
321- static const int rcar_gen3_ths_tj_1 = 126 ;
322- static const int rcar_gen3_ths_tj_1_m3_w = 116 ;
326+ static const struct rcar_thermal_info rcar_m3w_thermal_info = {
327+ .ths_tj_1 = 116 ,
328+ };
329+
330+ static const struct rcar_thermal_info rcar_gen3_thermal_info = {
331+ .ths_tj_1 = 126 ,
332+ };
333+
323334static const struct of_device_id rcar_gen3_thermal_dt_ids [] = {
324335 {
325336 .compatible = "renesas,r8a774a1-thermal" ,
326- .data = & rcar_gen3_ths_tj_1_m3_w ,
337+ .data = & rcar_m3w_thermal_info ,
327338 },
328339 {
329340 .compatible = "renesas,r8a774b1-thermal" ,
330- .data = & rcar_gen3_ths_tj_1 ,
341+ .data = & rcar_gen3_thermal_info ,
331342 },
332343 {
333344 .compatible = "renesas,r8a774e1-thermal" ,
334- .data = & rcar_gen3_ths_tj_1 ,
345+ .data = & rcar_gen3_thermal_info ,
335346 },
336347 {
337348 .compatible = "renesas,r8a7795-thermal" ,
338- .data = & rcar_gen3_ths_tj_1 ,
349+ .data = & rcar_gen3_thermal_info ,
339350 },
340351 {
341352 .compatible = "renesas,r8a7796-thermal" ,
342- .data = & rcar_gen3_ths_tj_1_m3_w ,
353+ .data = & rcar_m3w_thermal_info ,
343354 },
344355 {
345356 .compatible = "renesas,r8a77961-thermal" ,
346- .data = & rcar_gen3_ths_tj_1_m3_w ,
357+ .data = & rcar_m3w_thermal_info ,
347358 },
348359 {
349360 .compatible = "renesas,r8a77965-thermal" ,
350- .data = & rcar_gen3_ths_tj_1 ,
361+ .data = & rcar_gen3_thermal_info ,
351362 },
352363 {
353364 .compatible = "renesas,r8a77980-thermal" ,
354- .data = & rcar_gen3_ths_tj_1 ,
365+ .data = & rcar_gen3_thermal_info ,
355366 },
356367 {
357368 .compatible = "renesas,r8a779a0-thermal" ,
358- .data = & rcar_gen3_ths_tj_1 ,
369+ .data = & rcar_gen3_thermal_info ,
359370 },
360371 {
361372 .compatible = "renesas,r8a779f0-thermal" ,
362- .data = & rcar_gen3_ths_tj_1 ,
373+ .data = & rcar_gen3_thermal_info ,
363374 },
364375 {
365376 .compatible = "renesas,r8a779g0-thermal" ,
366- .data = & rcar_gen3_ths_tj_1 ,
377+ .data = & rcar_gen3_thermal_info ,
367378 },
368379 {},
369380};
@@ -418,7 +429,6 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev)
418429{
419430 struct rcar_gen3_thermal_priv * priv ;
420431 struct device * dev = & pdev -> dev ;
421- const int * ths_tj_1 = of_device_get_match_data (dev );
422432 struct resource * res ;
423433 struct thermal_zone_device * zone ;
424434 unsigned int i ;
@@ -430,6 +440,7 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev)
430440
431441 priv -> ops = rcar_gen3_tz_of_ops ;
432442
443+ priv -> info = of_device_get_match_data (dev );
433444 platform_set_drvdata (pdev , priv );
434445
435446 if (rcar_gen3_thermal_request_irqs (priv , pdev ))
@@ -469,7 +480,7 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev)
469480 struct rcar_gen3_thermal_tsc * tsc = priv -> tscs [i ];
470481
471482 rcar_gen3_thermal_init (priv , tsc );
472- rcar_gen3_thermal_calc_coefs (priv , tsc , * ths_tj_1 );
483+ rcar_gen3_thermal_calc_coefs (priv , tsc , priv -> info -> ths_tj_1 );
473484
474485 zone = devm_thermal_of_zone_register (dev , i , tsc , & priv -> ops );
475486 if (IS_ERR (zone )) {
0 commit comments