exynos_tmu.c (0c1554a6d868a89928c03be0be081f0249eb50f5) exynos_tmu.c (c8f8f7682e13d219699f6980cd0ba067f06d0dcf)
1/*
2 * exynos_tmu.c - Samsung EXYNOS TMU (Thermal Management Unit)
3 *
4 * Copyright (C) 2014 Samsung Electronics
5 * Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
6 * Lukasz Majewski <l.majewski@samsung.com>
7 *
8 * Copyright (C) 2011 Samsung Electronics

--- 206 unchanged lines hidden (view full) ---

215 u16 temp_error1, temp_error2;
216 u8 gain;
217 u8 reference_voltage;
218 struct regulator *regulator;
219 struct thermal_zone_device *tzd;
220 unsigned int ntrip;
221 bool enabled;
222
1/*
2 * exynos_tmu.c - Samsung EXYNOS TMU (Thermal Management Unit)
3 *
4 * Copyright (C) 2014 Samsung Electronics
5 * Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
6 * Lukasz Majewski <l.majewski@samsung.com>
7 *
8 * Copyright (C) 2011 Samsung Electronics

--- 206 unchanged lines hidden (view full) ---

215 u16 temp_error1, temp_error2;
216 u8 gain;
217 u8 reference_voltage;
218 struct regulator *regulator;
219 struct thermal_zone_device *tzd;
220 unsigned int ntrip;
221 bool enabled;
222
223 void (*tmu_set_trip_temp)(struct exynos_tmu_data *data, int trip,
224 u8 temp);
225 void (*tmu_set_trip_hyst)(struct exynos_tmu_data *data, int trip,
226 u8 temp, u8 hyst);
223 void (*tmu_initialize)(struct platform_device *pdev);
224 void (*tmu_control)(struct platform_device *pdev, bool on);
225 int (*tmu_read)(struct exynos_tmu_data *data);
226 void (*tmu_set_emulation)(struct exynos_tmu_data *data, int temp);
227 void (*tmu_clear_irqs)(struct exynos_tmu_data *data);
228};
229
230static void exynos_report_trigger(struct exynos_tmu_data *p)

--- 76 unchanged lines hidden (view full) ---

307
308static int exynos_tmu_initialize(struct platform_device *pdev)
309{
310 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
311 struct thermal_zone_device *tzd = data->tzd;
312 const struct thermal_trip * const trips =
313 of_thermal_get_trip_points(tzd);
314 unsigned int status;
227 void (*tmu_initialize)(struct platform_device *pdev);
228 void (*tmu_control)(struct platform_device *pdev, bool on);
229 int (*tmu_read)(struct exynos_tmu_data *data);
230 void (*tmu_set_emulation)(struct exynos_tmu_data *data, int temp);
231 void (*tmu_clear_irqs)(struct exynos_tmu_data *data);
232};
233
234static void exynos_report_trigger(struct exynos_tmu_data *p)

--- 76 unchanged lines hidden (view full) ---

311
312static int exynos_tmu_initialize(struct platform_device *pdev)
313{
314 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
315 struct thermal_zone_device *tzd = data->tzd;
316 const struct thermal_trip * const trips =
317 of_thermal_get_trip_points(tzd);
318 unsigned int status;
315 int ret = 0, temp;
319 int ret = 0, temp, hyst;
316
317 if (!trips) {
318 dev_err(&pdev->dev,
319 "Cannot get trip points from device tree!\n");
320 return -ENODEV;
321 }
322
323 if (data->soc != SOC_ARCH_EXYNOS5433) /* FIXME */

--- 16 unchanged lines hidden (view full) ---

340 clk_enable(data->clk);
341 if (!IS_ERR(data->clk_sec))
342 clk_enable(data->clk_sec);
343
344 status = readb(data->base + EXYNOS_TMU_REG_STATUS);
345 if (!status) {
346 ret = -EBUSY;
347 } else {
320
321 if (!trips) {
322 dev_err(&pdev->dev,
323 "Cannot get trip points from device tree!\n");
324 return -ENODEV;
325 }
326
327 if (data->soc != SOC_ARCH_EXYNOS5433) /* FIXME */

--- 16 unchanged lines hidden (view full) ---

344 clk_enable(data->clk);
345 if (!IS_ERR(data->clk_sec))
346 clk_enable(data->clk_sec);
347
348 status = readb(data->base + EXYNOS_TMU_REG_STATUS);
349 if (!status) {
350 ret = -EBUSY;
351 } else {
352 int i, ntrips =
353 min_t(int, of_thermal_get_ntrips(tzd), data->ntrip);
354
348 data->tmu_initialize(pdev);
355 data->tmu_initialize(pdev);
356
357 /* Write temperature code for rising and falling threshold */
358 for (i = 0; i < ntrips; i++) {
359 /* Write temperature code for rising threshold */
360 tzd->ops->get_trip_temp(tzd, i, &temp);
361 temp /= MCELSIUS;
362 data->tmu_set_trip_temp(data, i, temp);
363
364 /* Write temperature code for falling threshold */
365 tzd->ops->get_trip_hyst(tzd, i, &hyst);
366 hyst /= MCELSIUS;
367 data->tmu_set_trip_hyst(data, i, temp, hyst);
368 }
369
349 data->tmu_clear_irqs(data);
350 }
351
352 clk_disable(data->clk);
353 mutex_unlock(&data->lock);
354 if (!IS_ERR(data->clk_sec))
355 clk_disable(data->clk_sec);
356out:

--- 43 unchanged lines hidden (view full) ---

400 th_code = temp_to_code(data, ref);
401 writeb(th_code, data->base + EXYNOS4210_TMU_REG_THRESHOLD_TEMP);
402 }
403
404 temp -= ref;
405 writeb(temp, data->base + EXYNOS4210_TMU_REG_TRIG_LEVEL0 + trip * 4);
406}
407
370 data->tmu_clear_irqs(data);
371 }
372
373 clk_disable(data->clk);
374 mutex_unlock(&data->lock);
375 if (!IS_ERR(data->clk_sec))
376 clk_disable(data->clk_sec);
377out:

--- 43 unchanged lines hidden (view full) ---

421 th_code = temp_to_code(data, ref);
422 writeb(th_code, data->base + EXYNOS4210_TMU_REG_THRESHOLD_TEMP);
423 }
424
425 temp -= ref;
426 writeb(temp, data->base + EXYNOS4210_TMU_REG_TRIG_LEVEL0 + trip * 4);
427}
428
429/* failing thresholds are not supported on Exynos4210 */
430static void exynos4210_tmu_set_trip_hyst(struct exynos_tmu_data *data,
431 int trip, u8 temp, u8 hyst)
432{
433}
434
408static void exynos4210_tmu_initialize(struct platform_device *pdev)
409{
410 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
435static void exynos4210_tmu_initialize(struct platform_device *pdev)
436{
437 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
411 struct thermal_zone_device *tz = data->tzd;
412 int i, temp;
413
414 sanitize_temp_error(data, readl(data->base + EXYNOS_TMU_REG_TRIMINFO));
438
439 sanitize_temp_error(data, readl(data->base + EXYNOS_TMU_REG_TRIMINFO));
415
416 for (i = 0; i < of_thermal_get_ntrips(tz); i++) {
417 tz->ops->get_trip_temp(tz, i, &temp);
418 temp /= MCELSIUS;
419 exynos4210_tmu_set_trip_temp(data, i, temp);
420 }
421}
422
423static void exynos4412_tmu_set_trip_temp(struct exynos_tmu_data *data,
424 int trip, u8 temp)
425{
426 u32 th, con;
427
428 th = readl(data->base + EXYNOS_THD_TEMP_RISE);

--- 18 unchanged lines hidden (view full) ---

447 if (hyst)
448 th |= temp_to_code(data, temp - hyst) << 8 * trip;
449 writel(th, data->base + EXYNOS_THD_TEMP_FALL);
450}
451
452static void exynos4412_tmu_initialize(struct platform_device *pdev)
453{
454 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
440}
441
442static void exynos4412_tmu_set_trip_temp(struct exynos_tmu_data *data,
443 int trip, u8 temp)
444{
445 u32 th, con;
446
447 th = readl(data->base + EXYNOS_THD_TEMP_RISE);

--- 18 unchanged lines hidden (view full) ---

466 if (hyst)
467 th |= temp_to_code(data, temp - hyst) << 8 * trip;
468 writel(th, data->base + EXYNOS_THD_TEMP_FALL);
469}
470
471static void exynos4412_tmu_initialize(struct platform_device *pdev)
472{
473 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
455 struct thermal_zone_device *tz = data->tzd;
456 unsigned int trim_info, ctrl;
474 unsigned int trim_info, ctrl;
457 int i, ntrips = min_t(int, of_thermal_get_ntrips(tz), data->ntrip);
458 int temp, hyst;
459
460 if (data->soc == SOC_ARCH_EXYNOS3250 ||
461 data->soc == SOC_ARCH_EXYNOS4412 ||
462 data->soc == SOC_ARCH_EXYNOS5250) {
463 if (data->soc == SOC_ARCH_EXYNOS3250) {
464 ctrl = readl(data->base + EXYNOS_TMU_TRIMINFO_CON1);
465 ctrl |= EXYNOS_TRIMINFO_RELOAD_ENABLE;
466 writel(ctrl, data->base + EXYNOS_TMU_TRIMINFO_CON1);

--- 5 unchanged lines hidden (view full) ---

472
473 /* On exynos5420 the triminfo register is in the shared space */
474 if (data->soc == SOC_ARCH_EXYNOS5420_TRIMINFO)
475 trim_info = readl(data->base_second + EXYNOS_TMU_REG_TRIMINFO);
476 else
477 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
478
479 sanitize_temp_error(data, trim_info);
475
476 if (data->soc == SOC_ARCH_EXYNOS3250 ||
477 data->soc == SOC_ARCH_EXYNOS4412 ||
478 data->soc == SOC_ARCH_EXYNOS5250) {
479 if (data->soc == SOC_ARCH_EXYNOS3250) {
480 ctrl = readl(data->base + EXYNOS_TMU_TRIMINFO_CON1);
481 ctrl |= EXYNOS_TRIMINFO_RELOAD_ENABLE;
482 writel(ctrl, data->base + EXYNOS_TMU_TRIMINFO_CON1);

--- 5 unchanged lines hidden (view full) ---

488
489 /* On exynos5420 the triminfo register is in the shared space */
490 if (data->soc == SOC_ARCH_EXYNOS5420_TRIMINFO)
491 trim_info = readl(data->base_second + EXYNOS_TMU_REG_TRIMINFO);
492 else
493 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
494
495 sanitize_temp_error(data, trim_info);
480
481 /* Write temperature code for rising and falling threshold */
482 for (i = 0; i < ntrips; i++) {
483 tz->ops->get_trip_temp(tz, i, &temp);
484 temp /= MCELSIUS;
485 exynos4412_tmu_set_trip_temp(data, i, temp);
486
487 tz->ops->get_trip_hyst(tz, i, &hyst);
488 hyst /= MCELSIUS;
489 exynos4412_tmu_set_trip_hyst(data, i, temp, hyst);
490 }
491}
492
493static void exynos5433_tmu_set_trip_temp(struct exynos_tmu_data *data,
494 int trip, u8 temp)
495{
496 unsigned int reg_off, j;
497 u32 th;
498

--- 29 unchanged lines hidden (view full) ---

528 th &= ~(0xff << j * 8);
529 th |= (temp_to_code(data, temp - hyst) << j * 8);
530 writel(th, data->base + reg_off);
531}
532
533static void exynos5433_tmu_initialize(struct platform_device *pdev)
534{
535 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
496}
497
498static void exynos5433_tmu_set_trip_temp(struct exynos_tmu_data *data,
499 int trip, u8 temp)
500{
501 unsigned int reg_off, j;
502 u32 th;
503

--- 29 unchanged lines hidden (view full) ---

533 th &= ~(0xff << j * 8);
534 th |= (temp_to_code(data, temp - hyst) << j * 8);
535 writel(th, data->base + reg_off);
536}
537
538static void exynos5433_tmu_initialize(struct platform_device *pdev)
539{
540 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
536 struct thermal_zone_device *tz = data->tzd;
537 unsigned int trim_info;
541 unsigned int trim_info;
538 int sensor_id, cal_type, i, temp, hyst;
542 int sensor_id, cal_type;
539
540 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
541 sanitize_temp_error(data, trim_info);
542
543 /* Read the temperature sensor id */
544 sensor_id = (trim_info & EXYNOS5433_TRIMINFO_SENSOR_ID_MASK)
545 >> EXYNOS5433_TRIMINFO_SENSOR_ID_SHIFT;
546 dev_info(&pdev->dev, "Temperature sensor ID: 0x%x\n", sensor_id);

--- 10 unchanged lines hidden (view full) ---

557 case EXYNOS5433_TRIMINFO_ONE_POINT_TRIMMING:
558 default:
559 data->cal_type = TYPE_ONE_POINT_TRIMMING;
560 break;
561 }
562
563 dev_info(&pdev->dev, "Calibration type is %d-point calibration\n",
564 cal_type ? 2 : 1);
543
544 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
545 sanitize_temp_error(data, trim_info);
546
547 /* Read the temperature sensor id */
548 sensor_id = (trim_info & EXYNOS5433_TRIMINFO_SENSOR_ID_MASK)
549 >> EXYNOS5433_TRIMINFO_SENSOR_ID_SHIFT;
550 dev_info(&pdev->dev, "Temperature sensor ID: 0x%x\n", sensor_id);

--- 10 unchanged lines hidden (view full) ---

561 case EXYNOS5433_TRIMINFO_ONE_POINT_TRIMMING:
562 default:
563 data->cal_type = TYPE_ONE_POINT_TRIMMING;
564 break;
565 }
566
567 dev_info(&pdev->dev, "Calibration type is %d-point calibration\n",
568 cal_type ? 2 : 1);
565
566 /* Write temperature code for rising and falling threshold */
567 for (i = 0; i < of_thermal_get_ntrips(tz); i++) {
568 /* Write temperature code for rising threshold */
569 tz->ops->get_trip_temp(tz, i, &temp);
570 temp /= MCELSIUS;
571 exynos5433_tmu_set_trip_temp(data, i, temp);
572
573 /* Write temperature code for falling threshold */
574 tz->ops->get_trip_hyst(tz, i, &hyst);
575 hyst /= MCELSIUS;
576 exynos5433_tmu_set_trip_hyst(data, i, temp, hyst);
577 }
578}
579
580static void exynos7_tmu_set_trip_temp(struct exynos_tmu_data *data,
581 int trip, u8 temp)
582{
583 unsigned int reg_off, bit_off;
584 u32 th;
585

--- 19 unchanged lines hidden (view full) ---

605 th &= ~(EXYNOS7_TMU_TEMP_MASK << (16 * bit_off));
606 th |= temp_to_code(data, temp - hyst) << (16 * bit_off);
607 writel(th, data->base + EXYNOS7_THD_TEMP_FALL7_6 + reg_off);
608}
609
610static void exynos7_tmu_initialize(struct platform_device *pdev)
611{
612 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
569}
570
571static void exynos7_tmu_set_trip_temp(struct exynos_tmu_data *data,
572 int trip, u8 temp)
573{
574 unsigned int reg_off, bit_off;
575 u32 th;
576

--- 19 unchanged lines hidden (view full) ---

596 th &= ~(EXYNOS7_TMU_TEMP_MASK << (16 * bit_off));
597 th |= temp_to_code(data, temp - hyst) << (16 * bit_off);
598 writel(th, data->base + EXYNOS7_THD_TEMP_FALL7_6 + reg_off);
599}
600
601static void exynos7_tmu_initialize(struct platform_device *pdev)
602{
603 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
613 struct thermal_zone_device *tz = data->tzd;
614 unsigned int trim_info;
604 unsigned int trim_info;
615 int i, temp, hyst;
616
617 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
618 sanitize_temp_error(data, trim_info);
605
606 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO);
607 sanitize_temp_error(data, trim_info);
619
620 /* Write temperature code for rising and falling threshold */
621 for (i = 0; i < of_thermal_get_ntrips(tz); i++) {
622 tz->ops->get_trip_temp(tz, i, &temp);
623 temp /= MCELSIUS;
624 exynos7_tmu_set_trip_temp(data, i, temp);
625
626 tz->ops->get_trip_hyst(tz, i, &hyst);
627 hyst /= MCELSIUS;
628 exynos7_tmu_set_trip_hyst(data, i, temp, hyst);
629 }
630}
631
632static void exynos4210_tmu_control(struct platform_device *pdev, bool on)
633{
634 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
635 struct thermal_zone_device *tz = data->tzd;
636 unsigned int con, interrupt_en;
637

--- 346 unchanged lines hidden (view full) ---

984 dev_err(&pdev->dev, "Failed to ioremap memory\n");
985 return -EADDRNOTAVAIL;
986 }
987
988 data->soc = (enum soc_type)of_device_get_match_data(&pdev->dev);
989
990 switch (data->soc) {
991 case SOC_ARCH_EXYNOS4210:
608}
609
610static void exynos4210_tmu_control(struct platform_device *pdev, bool on)
611{
612 struct exynos_tmu_data *data = platform_get_drvdata(pdev);
613 struct thermal_zone_device *tz = data->tzd;
614 unsigned int con, interrupt_en;
615

--- 346 unchanged lines hidden (view full) ---

962 dev_err(&pdev->dev, "Failed to ioremap memory\n");
963 return -EADDRNOTAVAIL;
964 }
965
966 data->soc = (enum soc_type)of_device_get_match_data(&pdev->dev);
967
968 switch (data->soc) {
969 case SOC_ARCH_EXYNOS4210:
970 data->tmu_set_trip_temp = exynos4210_tmu_set_trip_temp;
971 data->tmu_set_trip_hyst = exynos4210_tmu_set_trip_hyst;
992 data->tmu_initialize = exynos4210_tmu_initialize;
993 data->tmu_control = exynos4210_tmu_control;
994 data->tmu_read = exynos4210_tmu_read;
995 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
996 data->ntrip = 4;
997 data->gain = 15;
998 data->reference_voltage = 7;
999 data->efuse_value = 55;
1000 data->min_efuse_value = 40;
1001 data->max_efuse_value = 100;
1002 break;
1003 case SOC_ARCH_EXYNOS3250:
1004 case SOC_ARCH_EXYNOS4412:
1005 case SOC_ARCH_EXYNOS5250:
1006 case SOC_ARCH_EXYNOS5260:
1007 case SOC_ARCH_EXYNOS5420:
1008 case SOC_ARCH_EXYNOS5420_TRIMINFO:
972 data->tmu_initialize = exynos4210_tmu_initialize;
973 data->tmu_control = exynos4210_tmu_control;
974 data->tmu_read = exynos4210_tmu_read;
975 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
976 data->ntrip = 4;
977 data->gain = 15;
978 data->reference_voltage = 7;
979 data->efuse_value = 55;
980 data->min_efuse_value = 40;
981 data->max_efuse_value = 100;
982 break;
983 case SOC_ARCH_EXYNOS3250:
984 case SOC_ARCH_EXYNOS4412:
985 case SOC_ARCH_EXYNOS5250:
986 case SOC_ARCH_EXYNOS5260:
987 case SOC_ARCH_EXYNOS5420:
988 case SOC_ARCH_EXYNOS5420_TRIMINFO:
989 data->tmu_set_trip_temp = exynos4412_tmu_set_trip_temp;
990 data->tmu_set_trip_hyst = exynos4412_tmu_set_trip_hyst;
1009 data->tmu_initialize = exynos4412_tmu_initialize;
1010 data->tmu_control = exynos4210_tmu_control;
1011 data->tmu_read = exynos4412_tmu_read;
1012 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
1013 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
1014 data->ntrip = 4;
1015 data->gain = 8;
1016 data->reference_voltage = 16;
1017 data->efuse_value = 55;
1018 if (data->soc != SOC_ARCH_EXYNOS5420 &&
1019 data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO)
1020 data->min_efuse_value = 40;
1021 else
1022 data->min_efuse_value = 0;
1023 data->max_efuse_value = 100;
1024 break;
1025 case SOC_ARCH_EXYNOS5433:
991 data->tmu_initialize = exynos4412_tmu_initialize;
992 data->tmu_control = exynos4210_tmu_control;
993 data->tmu_read = exynos4412_tmu_read;
994 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
995 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
996 data->ntrip = 4;
997 data->gain = 8;
998 data->reference_voltage = 16;
999 data->efuse_value = 55;
1000 if (data->soc != SOC_ARCH_EXYNOS5420 &&
1001 data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO)
1002 data->min_efuse_value = 40;
1003 else
1004 data->min_efuse_value = 0;
1005 data->max_efuse_value = 100;
1006 break;
1007 case SOC_ARCH_EXYNOS5433:
1008 data->tmu_set_trip_temp = exynos5433_tmu_set_trip_temp;
1009 data->tmu_set_trip_hyst = exynos5433_tmu_set_trip_hyst;
1026 data->tmu_initialize = exynos5433_tmu_initialize;
1027 data->tmu_control = exynos5433_tmu_control;
1028 data->tmu_read = exynos4412_tmu_read;
1029 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
1030 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
1031 data->ntrip = 8;
1032 data->gain = 8;
1033 if (res.start == EXYNOS5433_G3D_BASE)
1034 data->reference_voltage = 23;
1035 else
1036 data->reference_voltage = 16;
1037 data->efuse_value = 75;
1038 data->min_efuse_value = 40;
1039 data->max_efuse_value = 150;
1040 break;
1041 case SOC_ARCH_EXYNOS7:
1010 data->tmu_initialize = exynos5433_tmu_initialize;
1011 data->tmu_control = exynos5433_tmu_control;
1012 data->tmu_read = exynos4412_tmu_read;
1013 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
1014 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
1015 data->ntrip = 8;
1016 data->gain = 8;
1017 if (res.start == EXYNOS5433_G3D_BASE)
1018 data->reference_voltage = 23;
1019 else
1020 data->reference_voltage = 16;
1021 data->efuse_value = 75;
1022 data->min_efuse_value = 40;
1023 data->max_efuse_value = 150;
1024 break;
1025 case SOC_ARCH_EXYNOS7:
1026 data->tmu_set_trip_temp = exynos7_tmu_set_trip_temp;
1027 data->tmu_set_trip_hyst = exynos7_tmu_set_trip_hyst;
1042 data->tmu_initialize = exynos7_tmu_initialize;
1043 data->tmu_control = exynos7_tmu_control;
1044 data->tmu_read = exynos7_tmu_read;
1045 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
1046 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
1047 data->ntrip = 8;
1048 data->gain = 9;
1049 data->reference_voltage = 17;

--- 226 unchanged lines hidden ---
1028 data->tmu_initialize = exynos7_tmu_initialize;
1029 data->tmu_control = exynos7_tmu_control;
1030 data->tmu_read = exynos7_tmu_read;
1031 data->tmu_set_emulation = exynos4412_tmu_set_emulation;
1032 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
1033 data->ntrip = 8;
1034 data->gain = 9;
1035 data->reference_voltage = 17;

--- 226 unchanged lines hidden ---