• Home
  • Raw
  • Download

Lines Matching full:tsc

83 	void (*thermal_init)(struct rcar_gen3_thermal_tsc *tsc);
86 static inline u32 rcar_gen3_thermal_read(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_read() argument
89 return ioread32(tsc->base + reg); in rcar_gen3_thermal_read()
92 static inline void rcar_gen3_thermal_write(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_write() argument
95 iowrite32(data, tsc->base + reg); in rcar_gen3_thermal_write()
162 struct rcar_gen3_thermal_tsc *tsc = devdata; in rcar_gen3_thermal_get_temp() local
167 reg = rcar_gen3_thermal_read(tsc, REG_GEN3_TEMP) & CTEMP_MASK; in rcar_gen3_thermal_get_temp()
169 val1 = FIXPT_DIV(FIXPT_INT(reg) - tsc->coef.b1, tsc->coef.a1); in rcar_gen3_thermal_get_temp()
170 val2 = FIXPT_DIV(FIXPT_INT(reg) - tsc->coef.b2, tsc->coef.a2); in rcar_gen3_thermal_get_temp()
183 static int rcar_gen3_thermal_mcelsius_to_temp(struct rcar_gen3_thermal_tsc *tsc, in rcar_gen3_thermal_mcelsius_to_temp() argument
189 val1 = celsius * tsc->coef.a1 + tsc->coef.b1; in rcar_gen3_thermal_mcelsius_to_temp()
190 val2 = celsius * tsc->coef.a2 + tsc->coef.b2; in rcar_gen3_thermal_mcelsius_to_temp()
197 struct rcar_gen3_thermal_tsc *tsc = devdata; in rcar_gen3_thermal_set_trips() local
202 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQTEMP1, in rcar_gen3_thermal_set_trips()
203 rcar_gen3_thermal_mcelsius_to_temp(tsc, low)); in rcar_gen3_thermal_set_trips()
205 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQTEMP2, in rcar_gen3_thermal_set_trips()
206 rcar_gen3_thermal_mcelsius_to_temp(tsc, high)); in rcar_gen3_thermal_set_trips()
208 tsc->low = low; in rcar_gen3_thermal_set_trips()
209 tsc->high = high; in rcar_gen3_thermal_set_trips()
250 static void rcar_gen3_thermal_init_r8a7795es1(struct rcar_gen3_thermal_tsc *tsc) in rcar_gen3_thermal_init_r8a7795es1() argument
252 rcar_gen3_thermal_write(tsc, REG_GEN3_CTSR, CTSR_THBGR); in rcar_gen3_thermal_init_r8a7795es1()
253 rcar_gen3_thermal_write(tsc, REG_GEN3_CTSR, 0x0); in rcar_gen3_thermal_init_r8a7795es1()
257 rcar_gen3_thermal_write(tsc, REG_GEN3_CTSR, CTSR_PONM); in rcar_gen3_thermal_init_r8a7795es1()
259 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQCTL, 0x3F); in rcar_gen3_thermal_init_r8a7795es1()
260 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQMSK, 0); in rcar_gen3_thermal_init_r8a7795es1()
261 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQEN, IRQ_TEMPD1 | IRQ_TEMP2); in rcar_gen3_thermal_init_r8a7795es1()
263 rcar_gen3_thermal_write(tsc, REG_GEN3_CTSR, in rcar_gen3_thermal_init_r8a7795es1()
268 rcar_gen3_thermal_write(tsc, REG_GEN3_CTSR, in rcar_gen3_thermal_init_r8a7795es1()
275 static void rcar_gen3_thermal_init(struct rcar_gen3_thermal_tsc *tsc) in rcar_gen3_thermal_init() argument
279 reg_val = rcar_gen3_thermal_read(tsc, REG_GEN3_THCTR); in rcar_gen3_thermal_init()
281 rcar_gen3_thermal_write(tsc, REG_GEN3_THCTR, reg_val); in rcar_gen3_thermal_init()
285 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQCTL, 0x3F); in rcar_gen3_thermal_init()
286 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQMSK, 0); in rcar_gen3_thermal_init()
287 rcar_gen3_thermal_write(tsc, REG_GEN3_IRQEN, IRQ_TEMPD1 | IRQ_TEMP2); in rcar_gen3_thermal_init()
289 reg_val = rcar_gen3_thermal_read(tsc, REG_GEN3_THCTR); in rcar_gen3_thermal_init()
291 rcar_gen3_thermal_write(tsc, REG_GEN3_THCTR, reg_val); in rcar_gen3_thermal_init()
371 struct rcar_gen3_thermal_tsc *tsc; in rcar_gen3_thermal_probe() local
377 tsc = devm_kzalloc(dev, sizeof(*tsc), GFP_KERNEL); in rcar_gen3_thermal_probe()
378 if (!tsc) { in rcar_gen3_thermal_probe()
383 tsc->base = devm_ioremap_resource(dev, res); in rcar_gen3_thermal_probe()
384 if (IS_ERR(tsc->base)) { in rcar_gen3_thermal_probe()
385 ret = PTR_ERR(tsc->base); in rcar_gen3_thermal_probe()
389 priv->tscs[i] = tsc; in rcar_gen3_thermal_probe()
391 priv->thermal_init(tsc); in rcar_gen3_thermal_probe()
392 rcar_gen3_thermal_calc_coefs(&tsc->coef, ptat, thcode[i]); in rcar_gen3_thermal_probe()
394 zone = devm_thermal_zone_of_sensor_register(dev, i, tsc, in rcar_gen3_thermal_probe()
401 tsc->zone = zone; in rcar_gen3_thermal_probe()
403 ret = of_thermal_get_ntrips(tsc->zone); in rcar_gen3_thermal_probe()
407 dev_info(dev, "TSC%d: Loaded %d trip points\n", i, ret); in rcar_gen3_thermal_probe()
442 struct rcar_gen3_thermal_tsc *tsc = priv->tscs[i]; in rcar_gen3_thermal_resume() local
444 priv->thermal_init(tsc); in rcar_gen3_thermal_resume()
445 rcar_gen3_thermal_set_trips(tsc, tsc->low, tsc->high); in rcar_gen3_thermal_resume()