Lines Matching refs:data
183 int (*tmu_read)(struct exynos_tmu_data *data);
184 void (*tmu_set_emulation)(struct exynos_tmu_data *data,
186 void (*tmu_clear_irqs)(struct exynos_tmu_data *data);
191 char data[10], *envp[] = { data, NULL }; in exynos_report_trigger() local
211 snprintf(data, sizeof(data), "%u", i); in exynos_report_trigger()
220 static int temp_to_code(struct exynos_tmu_data *data, u8 temp) in temp_to_code() argument
222 struct exynos_tmu_platform_data *pdata = data->pdata; in temp_to_code()
228 (data->temp_error2 - data->temp_error1) / in temp_to_code()
230 data->temp_error1; in temp_to_code()
233 temp_code = temp + data->temp_error1 - pdata->first_point_trim; in temp_to_code()
247 static int code_to_temp(struct exynos_tmu_data *data, u16 temp_code) in code_to_temp() argument
249 struct exynos_tmu_platform_data *pdata = data->pdata; in code_to_temp()
254 temp = (temp_code - data->temp_error1) * in code_to_temp()
256 (data->temp_error2 - data->temp_error1) + in code_to_temp()
260 temp = temp_code - data->temp_error1 + pdata->first_point_trim; in code_to_temp()
270 static void sanitize_temp_error(struct exynos_tmu_data *data, u32 trim_info) in sanitize_temp_error() argument
272 struct exynos_tmu_platform_data *pdata = data->pdata; in sanitize_temp_error()
274 data->temp_error1 = trim_info & EXYNOS_TMU_TEMP_MASK; in sanitize_temp_error()
275 data->temp_error2 = ((trim_info >> EXYNOS_TRIMINFO_85_SHIFT) & in sanitize_temp_error()
278 if (!data->temp_error1 || in sanitize_temp_error()
279 (pdata->min_efuse_value > data->temp_error1) || in sanitize_temp_error()
280 (data->temp_error1 > pdata->max_efuse_value)) in sanitize_temp_error()
281 data->temp_error1 = pdata->efuse_value & EXYNOS_TMU_TEMP_MASK; in sanitize_temp_error()
283 if (!data->temp_error2) in sanitize_temp_error()
284 data->temp_error2 = in sanitize_temp_error()
289 static u32 get_th_reg(struct exynos_tmu_data *data, u32 threshold, bool falling) in get_th_reg() argument
291 struct thermal_zone_device *tz = data->tzd; in get_th_reg()
313 threshold |= temp_to_code(data, temp) << 8 * i; in get_th_reg()
321 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos_tmu_initialize() local
324 mutex_lock(&data->lock); in exynos_tmu_initialize()
325 clk_enable(data->clk); in exynos_tmu_initialize()
326 if (!IS_ERR(data->clk_sec)) in exynos_tmu_initialize()
327 clk_enable(data->clk_sec); in exynos_tmu_initialize()
328 ret = data->tmu_initialize(pdev); in exynos_tmu_initialize()
329 clk_disable(data->clk); in exynos_tmu_initialize()
330 mutex_unlock(&data->lock); in exynos_tmu_initialize()
331 if (!IS_ERR(data->clk_sec)) in exynos_tmu_initialize()
332 clk_disable(data->clk_sec); in exynos_tmu_initialize()
337 static u32 get_con_reg(struct exynos_tmu_data *data, u32 con) in get_con_reg() argument
339 struct exynos_tmu_platform_data *pdata = data->pdata; in get_con_reg()
341 if (data->soc == SOC_ARCH_EXYNOS4412 || in get_con_reg()
342 data->soc == SOC_ARCH_EXYNOS3250) in get_con_reg()
361 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos_tmu_control() local
363 mutex_lock(&data->lock); in exynos_tmu_control()
364 clk_enable(data->clk); in exynos_tmu_control()
365 data->tmu_control(pdev, on); in exynos_tmu_control()
366 clk_disable(data->clk); in exynos_tmu_control()
367 mutex_unlock(&data->lock); in exynos_tmu_control()
372 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos4210_tmu_initialize() local
373 struct thermal_zone_device *tz = data->tzd; in exynos4210_tmu_initialize()
387 status = readb(data->base + EXYNOS_TMU_REG_STATUS); in exynos4210_tmu_initialize()
393 sanitize_temp_error(data, readl(data->base + EXYNOS_TMU_REG_TRIMINFO)); in exynos4210_tmu_initialize()
397 threshold_code = temp_to_code(data, reference); in exynos4210_tmu_initialize()
402 writeb(threshold_code, data->base + EXYNOS4210_TMU_REG_THRESHOLD_TEMP); in exynos4210_tmu_initialize()
406 writeb(temp - reference, data->base + in exynos4210_tmu_initialize()
410 data->tmu_clear_irqs(data); in exynos4210_tmu_initialize()
417 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos4412_tmu_initialize() local
419 of_thermal_get_trip_points(data->tzd); in exynos4412_tmu_initialize()
424 status = readb(data->base + EXYNOS_TMU_REG_STATUS); in exynos4412_tmu_initialize()
430 if (data->soc == SOC_ARCH_EXYNOS3250 || in exynos4412_tmu_initialize()
431 data->soc == SOC_ARCH_EXYNOS4412 || in exynos4412_tmu_initialize()
432 data->soc == SOC_ARCH_EXYNOS5250) { in exynos4412_tmu_initialize()
433 if (data->soc == SOC_ARCH_EXYNOS3250) { in exynos4412_tmu_initialize()
434 ctrl = readl(data->base + EXYNOS_TMU_TRIMINFO_CON1); in exynos4412_tmu_initialize()
436 writel(ctrl, data->base + EXYNOS_TMU_TRIMINFO_CON1); in exynos4412_tmu_initialize()
438 ctrl = readl(data->base + EXYNOS_TMU_TRIMINFO_CON2); in exynos4412_tmu_initialize()
440 writel(ctrl, data->base + EXYNOS_TMU_TRIMINFO_CON2); in exynos4412_tmu_initialize()
444 if (data->soc == SOC_ARCH_EXYNOS5420_TRIMINFO) in exynos4412_tmu_initialize()
445 trim_info = readl(data->base_second + EXYNOS_TMU_REG_TRIMINFO); in exynos4412_tmu_initialize()
447 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO); in exynos4412_tmu_initialize()
449 sanitize_temp_error(data, trim_info); in exynos4412_tmu_initialize()
452 rising_threshold = readl(data->base + EXYNOS_THD_TEMP_RISE); in exynos4412_tmu_initialize()
453 rising_threshold = get_th_reg(data, rising_threshold, false); in exynos4412_tmu_initialize()
454 writel(rising_threshold, data->base + EXYNOS_THD_TEMP_RISE); in exynos4412_tmu_initialize()
455 writel(get_th_reg(data, 0, true), data->base + EXYNOS_THD_TEMP_FALL); in exynos4412_tmu_initialize()
457 data->tmu_clear_irqs(data); in exynos4412_tmu_initialize()
460 for (i = 0; i < of_thermal_get_ntrips(data->tzd); i++) { in exynos4412_tmu_initialize()
467 if (i == of_thermal_get_ntrips(data->tzd)) { in exynos4412_tmu_initialize()
474 threshold_code = temp_to_code(data, crit_temp / MCELSIUS); in exynos4412_tmu_initialize()
478 writel(rising_threshold, data->base + EXYNOS_THD_TEMP_RISE); in exynos4412_tmu_initialize()
479 con = readl(data->base + EXYNOS_TMU_REG_CONTROL); in exynos4412_tmu_initialize()
481 writel(con, data->base + EXYNOS_TMU_REG_CONTROL); in exynos4412_tmu_initialize()
489 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos5440_tmu_initialize() local
498 switch (data->id) { in exynos5440_tmu_initialize()
500 trim_info = readl(data->base + EXYNOS5440_EFUSE_SWAP_OFFSET + in exynos5440_tmu_initialize()
504 trim_info = readl(data->base + EXYNOS5440_TMU_S0_7_TRIM); in exynos5440_tmu_initialize()
507 trim_info = readl(data->base - EXYNOS5440_EFUSE_SWAP_OFFSET + in exynos5440_tmu_initialize()
510 sanitize_temp_error(data, trim_info); in exynos5440_tmu_initialize()
513 rising_threshold = readl(data->base + EXYNOS5440_TMU_S0_7_TH0); in exynos5440_tmu_initialize()
514 rising_threshold = get_th_reg(data, rising_threshold, false); in exynos5440_tmu_initialize()
515 writel(rising_threshold, data->base + EXYNOS5440_TMU_S0_7_TH0); in exynos5440_tmu_initialize()
516 writel(0, data->base + EXYNOS5440_TMU_S0_7_TH1); in exynos5440_tmu_initialize()
518 data->tmu_clear_irqs(data); in exynos5440_tmu_initialize()
521 if (!data->tzd->ops->get_crit_temp(data->tzd, &crit_temp)) { in exynos5440_tmu_initialize()
522 threshold_code = temp_to_code(data, crit_temp / MCELSIUS); in exynos5440_tmu_initialize()
526 writel(rising_threshold, data->base + EXYNOS5440_TMU_S0_7_TH2); in exynos5440_tmu_initialize()
527 con = readl(data->base + EXYNOS5440_TMU_S0_7_CTRL); in exynos5440_tmu_initialize()
529 writel(con, data->base + EXYNOS5440_TMU_S0_7_CTRL); in exynos5440_tmu_initialize()
532 if (!data->id) in exynos5440_tmu_initialize()
533 writel(0, data->base_second + EXYNOS5440_TMU_PMIN); in exynos5440_tmu_initialize()
539 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos7_tmu_initialize() local
540 struct thermal_zone_device *tz = data->tzd; in exynos7_tmu_initialize()
541 struct exynos_tmu_platform_data *pdata = data->pdata; in exynos7_tmu_initialize()
548 status = readb(data->base + EXYNOS_TMU_REG_STATUS); in exynos7_tmu_initialize()
554 trim_info = readl(data->base + EXYNOS_TMU_REG_TRIMINFO); in exynos7_tmu_initialize()
556 data->temp_error1 = trim_info & EXYNOS7_TMU_TEMP_MASK; in exynos7_tmu_initialize()
557 if (!data->temp_error1 || in exynos7_tmu_initialize()
558 (pdata->min_efuse_value > data->temp_error1) || in exynos7_tmu_initialize()
559 (data->temp_error1 > pdata->max_efuse_value)) in exynos7_tmu_initialize()
560 data->temp_error1 = pdata->efuse_value & EXYNOS_TMU_TEMP_MASK; in exynos7_tmu_initialize()
594 threshold_code = temp_to_code(data, temp); in exynos7_tmu_initialize()
595 rising_threshold = readl(data->base + in exynos7_tmu_initialize()
600 data->base + EXYNOS7_THD_TEMP_RISE7_6 + reg_off); in exynos7_tmu_initialize()
603 threshold_code = temp_to_code(data, temp_hist); in exynos7_tmu_initialize()
607 data->base + EXYNOS7_THD_TEMP_FALL7_6 + reg_off); in exynos7_tmu_initialize()
610 data->tmu_clear_irqs(data); in exynos7_tmu_initialize()
617 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos4210_tmu_control() local
618 struct thermal_zone_device *tz = data->tzd; in exynos4210_tmu_control()
621 con = get_con_reg(data, readl(data->base + EXYNOS_TMU_REG_CONTROL)); in exynos4210_tmu_control()
635 if (data->soc != SOC_ARCH_EXYNOS4210) in exynos4210_tmu_control()
642 writel(interrupt_en, data->base + EXYNOS_TMU_REG_INTEN); in exynos4210_tmu_control()
643 writel(con, data->base + EXYNOS_TMU_REG_CONTROL); in exynos4210_tmu_control()
648 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos5440_tmu_control() local
649 struct thermal_zone_device *tz = data->tzd; in exynos5440_tmu_control()
652 con = get_con_reg(data, readl(data->base + EXYNOS5440_TMU_S0_7_CTRL)); in exynos5440_tmu_control()
671 writel(interrupt_en, data->base + EXYNOS5440_TMU_S0_7_IRQEN); in exynos5440_tmu_control()
672 writel(con, data->base + EXYNOS5440_TMU_S0_7_CTRL); in exynos5440_tmu_control()
677 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos7_tmu_control() local
678 struct thermal_zone_device *tz = data->tzd; in exynos7_tmu_control()
681 con = get_con_reg(data, readl(data->base + EXYNOS_TMU_REG_CONTROL)); in exynos7_tmu_control()
712 writel(interrupt_en, data->base + EXYNOS7_TMU_REG_INTEN); in exynos7_tmu_control()
713 writel(con, data->base + EXYNOS_TMU_REG_CONTROL); in exynos7_tmu_control()
718 struct exynos_tmu_data *data = p; in exynos_get_temp() local
720 if (!data || !data->tmu_read) in exynos_get_temp()
723 mutex_lock(&data->lock); in exynos_get_temp()
724 clk_enable(data->clk); in exynos_get_temp()
726 *temp = code_to_temp(data, data->tmu_read(data)) * MCELSIUS; in exynos_get_temp()
728 clk_disable(data->clk); in exynos_get_temp()
729 mutex_unlock(&data->lock); in exynos_get_temp()
735 static u32 get_emul_con_reg(struct exynos_tmu_data *data, unsigned int val, in get_emul_con_reg() argument
741 if (data->soc != SOC_ARCH_EXYNOS5440) { in get_emul_con_reg()
745 if (data->soc == SOC_ARCH_EXYNOS7) { in get_emul_con_reg()
748 val |= (temp_to_code(data, temp) << in get_emul_con_reg()
754 val |= (temp_to_code(data, temp) << in get_emul_con_reg()
765 static void exynos4412_tmu_set_emulation(struct exynos_tmu_data *data, in exynos4412_tmu_set_emulation() argument
771 if (data->soc == SOC_ARCH_EXYNOS5260) in exynos4412_tmu_set_emulation()
773 else if (data->soc == SOC_ARCH_EXYNOS7) in exynos4412_tmu_set_emulation()
778 val = readl(data->base + emul_con); in exynos4412_tmu_set_emulation()
779 val = get_emul_con_reg(data, val, temp); in exynos4412_tmu_set_emulation()
780 writel(val, data->base + emul_con); in exynos4412_tmu_set_emulation()
783 static void exynos5440_tmu_set_emulation(struct exynos_tmu_data *data, in exynos5440_tmu_set_emulation() argument
788 val = readl(data->base + EXYNOS5440_TMU_S0_7_DEBUG); in exynos5440_tmu_set_emulation()
789 val = get_emul_con_reg(data, val, temp); in exynos5440_tmu_set_emulation()
790 writel(val, data->base + EXYNOS5440_TMU_S0_7_DEBUG); in exynos5440_tmu_set_emulation()
795 struct exynos_tmu_data *data = drv_data; in exynos_tmu_set_emulation() local
798 if (data->soc == SOC_ARCH_EXYNOS4210) in exynos_tmu_set_emulation()
804 mutex_lock(&data->lock); in exynos_tmu_set_emulation()
805 clk_enable(data->clk); in exynos_tmu_set_emulation()
806 data->tmu_set_emulation(data, temp); in exynos_tmu_set_emulation()
807 clk_disable(data->clk); in exynos_tmu_set_emulation()
808 mutex_unlock(&data->lock); in exynos_tmu_set_emulation()
820 static int exynos4210_tmu_read(struct exynos_tmu_data *data) in exynos4210_tmu_read() argument
822 int ret = readb(data->base + EXYNOS_TMU_REG_CURRENT_TEMP); in exynos4210_tmu_read()
828 static int exynos4412_tmu_read(struct exynos_tmu_data *data) in exynos4412_tmu_read() argument
830 return readb(data->base + EXYNOS_TMU_REG_CURRENT_TEMP); in exynos4412_tmu_read()
833 static int exynos5440_tmu_read(struct exynos_tmu_data *data) in exynos5440_tmu_read() argument
835 return readb(data->base + EXYNOS5440_TMU_S0_7_TEMP); in exynos5440_tmu_read()
838 static int exynos7_tmu_read(struct exynos_tmu_data *data) in exynos7_tmu_read() argument
840 return readw(data->base + EXYNOS_TMU_REG_CURRENT_TEMP) & in exynos7_tmu_read()
846 struct exynos_tmu_data *data = container_of(work, in exynos_tmu_work() local
850 if (!IS_ERR(data->clk_sec)) in exynos_tmu_work()
851 clk_enable(data->clk_sec); in exynos_tmu_work()
853 if (data->soc == SOC_ARCH_EXYNOS5440) { in exynos_tmu_work()
854 val_type = readl(data->base_second + EXYNOS5440_TMU_IRQ_STATUS); in exynos_tmu_work()
855 if (!((val_type >> data->id) & 0x1)) in exynos_tmu_work()
858 if (!IS_ERR(data->clk_sec)) in exynos_tmu_work()
859 clk_disable(data->clk_sec); in exynos_tmu_work()
861 exynos_report_trigger(data); in exynos_tmu_work()
862 mutex_lock(&data->lock); in exynos_tmu_work()
863 clk_enable(data->clk); in exynos_tmu_work()
866 data->tmu_clear_irqs(data); in exynos_tmu_work()
868 clk_disable(data->clk); in exynos_tmu_work()
869 mutex_unlock(&data->lock); in exynos_tmu_work()
871 enable_irq(data->irq); in exynos_tmu_work()
874 static void exynos4210_tmu_clear_irqs(struct exynos_tmu_data *data) in exynos4210_tmu_clear_irqs() argument
879 if (data->soc == SOC_ARCH_EXYNOS5260) { in exynos4210_tmu_clear_irqs()
882 } else if (data->soc == SOC_ARCH_EXYNOS7) { in exynos4210_tmu_clear_irqs()
890 val_irq = readl(data->base + tmu_intstat); in exynos4210_tmu_clear_irqs()
899 writel(val_irq, data->base + tmu_intclear); in exynos4210_tmu_clear_irqs()
902 static void exynos5440_tmu_clear_irqs(struct exynos_tmu_data *data) in exynos5440_tmu_clear_irqs() argument
906 val_irq = readl(data->base + EXYNOS5440_TMU_S0_7_IRQ); in exynos5440_tmu_clear_irqs()
908 writel(val_irq, data->base + EXYNOS5440_TMU_S0_7_IRQ); in exynos5440_tmu_clear_irqs()
913 struct exynos_tmu_data *data = id; in exynos_tmu_irq() local
916 schedule_work(&data->irq_work); in exynos_tmu_irq()
998 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos_map_dt_data() local
1003 if (!data || !pdev->dev.of_node) in exynos_map_dt_data()
1011 data->regulator = devm_regulator_get(&pdev->dev, "vtmu"); in exynos_map_dt_data()
1012 if (!IS_ERR(data->regulator)) { in exynos_map_dt_data()
1013 ret = regulator_enable(data->regulator); in exynos_map_dt_data()
1022 data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl"); in exynos_map_dt_data()
1023 if (data->id < 0) in exynos_map_dt_data()
1024 data->id = 0; in exynos_map_dt_data()
1026 data->irq = irq_of_parse_and_map(pdev->dev.of_node, 0); in exynos_map_dt_data()
1027 if (data->irq <= 0) { in exynos_map_dt_data()
1037 data->base = devm_ioremap(&pdev->dev, res.start, resource_size(&res)); in exynos_map_dt_data()
1038 if (!data->base) { in exynos_map_dt_data()
1050 data->pdata = pdata; in exynos_map_dt_data()
1051 data->soc = exynos_of_get_soc_type(pdev->dev.of_node); in exynos_map_dt_data()
1053 switch (data->soc) { in exynos_map_dt_data()
1055 data->tmu_initialize = exynos4210_tmu_initialize; in exynos_map_dt_data()
1056 data->tmu_control = exynos4210_tmu_control; in exynos_map_dt_data()
1057 data->tmu_read = exynos4210_tmu_read; in exynos_map_dt_data()
1058 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs; in exynos_map_dt_data()
1066 data->tmu_initialize = exynos4412_tmu_initialize; in exynos_map_dt_data()
1067 data->tmu_control = exynos4210_tmu_control; in exynos_map_dt_data()
1068 data->tmu_read = exynos4412_tmu_read; in exynos_map_dt_data()
1069 data->tmu_set_emulation = exynos4412_tmu_set_emulation; in exynos_map_dt_data()
1070 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs; in exynos_map_dt_data()
1073 data->tmu_initialize = exynos5440_tmu_initialize; in exynos_map_dt_data()
1074 data->tmu_control = exynos5440_tmu_control; in exynos_map_dt_data()
1075 data->tmu_read = exynos5440_tmu_read; in exynos_map_dt_data()
1076 data->tmu_set_emulation = exynos5440_tmu_set_emulation; in exynos_map_dt_data()
1077 data->tmu_clear_irqs = exynos5440_tmu_clear_irqs; in exynos_map_dt_data()
1080 data->tmu_initialize = exynos7_tmu_initialize; in exynos_map_dt_data()
1081 data->tmu_control = exynos7_tmu_control; in exynos_map_dt_data()
1082 data->tmu_read = exynos7_tmu_read; in exynos_map_dt_data()
1083 data->tmu_set_emulation = exynos4412_tmu_set_emulation; in exynos_map_dt_data()
1084 data->tmu_clear_irqs = exynos4210_tmu_clear_irqs; in exynos_map_dt_data()
1095 if (data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO && in exynos_map_dt_data()
1096 data->soc != SOC_ARCH_EXYNOS5440) in exynos_map_dt_data()
1104 data->base_second = devm_ioremap(&pdev->dev, res.start, in exynos_map_dt_data()
1106 if (!data->base_second) { in exynos_map_dt_data()
1122 struct exynos_tmu_data *data; in exynos_tmu_probe() local
1125 data = devm_kzalloc(&pdev->dev, sizeof(struct exynos_tmu_data), in exynos_tmu_probe()
1127 if (!data) in exynos_tmu_probe()
1130 platform_set_drvdata(pdev, data); in exynos_tmu_probe()
1131 mutex_init(&data->lock); in exynos_tmu_probe()
1133 data->tzd = thermal_zone_of_sensor_register(&pdev->dev, 0, data, in exynos_tmu_probe()
1135 if (IS_ERR(data->tzd)) { in exynos_tmu_probe()
1136 pr_err("thermal: tz: %p ERROR\n", data->tzd); in exynos_tmu_probe()
1137 return PTR_ERR(data->tzd); in exynos_tmu_probe()
1143 pdata = data->pdata; in exynos_tmu_probe()
1145 INIT_WORK(&data->irq_work, exynos_tmu_work); in exynos_tmu_probe()
1147 data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); in exynos_tmu_probe()
1148 if (IS_ERR(data->clk)) { in exynos_tmu_probe()
1150 ret = PTR_ERR(data->clk); in exynos_tmu_probe()
1154 data->clk_sec = devm_clk_get(&pdev->dev, "tmu_triminfo_apbif"); in exynos_tmu_probe()
1155 if (IS_ERR(data->clk_sec)) { in exynos_tmu_probe()
1156 if (data->soc == SOC_ARCH_EXYNOS5420_TRIMINFO) { in exynos_tmu_probe()
1158 ret = PTR_ERR(data->clk_sec); in exynos_tmu_probe()
1162 ret = clk_prepare(data->clk_sec); in exynos_tmu_probe()
1169 ret = clk_prepare(data->clk); in exynos_tmu_probe()
1175 if (data->soc == SOC_ARCH_EXYNOS7) { in exynos_tmu_probe()
1176 data->sclk = devm_clk_get(&pdev->dev, "tmu_sclk"); in exynos_tmu_probe()
1177 if (IS_ERR(data->sclk)) { in exynos_tmu_probe()
1181 ret = clk_prepare_enable(data->sclk); in exynos_tmu_probe()
1195 ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq, in exynos_tmu_probe()
1196 IRQF_TRIGGER_RISING | IRQF_SHARED, dev_name(&pdev->dev), data); in exynos_tmu_probe()
1198 dev_err(&pdev->dev, "Failed to request irq: %d\n", data->irq); in exynos_tmu_probe()
1205 clk_disable_unprepare(data->sclk); in exynos_tmu_probe()
1207 clk_unprepare(data->clk); in exynos_tmu_probe()
1209 if (!IS_ERR(data->clk_sec)) in exynos_tmu_probe()
1210 clk_unprepare(data->clk_sec); in exynos_tmu_probe()
1212 if (!IS_ERR_OR_NULL(data->regulator)) in exynos_tmu_probe()
1213 regulator_disable(data->regulator); in exynos_tmu_probe()
1214 thermal_zone_of_sensor_unregister(&pdev->dev, data->tzd); in exynos_tmu_probe()
1221 struct exynos_tmu_data *data = platform_get_drvdata(pdev); in exynos_tmu_remove() local
1222 struct thermal_zone_device *tzd = data->tzd; in exynos_tmu_remove()
1227 clk_disable_unprepare(data->sclk); in exynos_tmu_remove()
1228 clk_unprepare(data->clk); in exynos_tmu_remove()
1229 if (!IS_ERR(data->clk_sec)) in exynos_tmu_remove()
1230 clk_unprepare(data->clk_sec); in exynos_tmu_remove()
1232 if (!IS_ERR(data->regulator)) in exynos_tmu_remove()
1233 regulator_disable(data->regulator); in exynos_tmu_remove()