Lines Matching refs:tdev
102 static int uniphier_tm_initialize_sensor(struct uniphier_tm_dev *tdev) in uniphier_tm_initialize_sensor() argument
104 struct regmap *map = tdev->regmap; in uniphier_tm_initialize_sensor()
110 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN, in uniphier_tm_initialize_sensor()
120 ret = regmap_read(map, tdev->data->map_base + TMODCOEF, &val); in uniphier_tm_initialize_sensor()
125 ret = of_property_read_u32_array(tdev->dev->of_node, in uniphier_tm_initialize_sensor()
132 regmap_write(map, tdev->data->tmod_setup_addr, in uniphier_tm_initialize_sensor()
138 regmap_write_bits(map, tdev->data->block_base + PVTCTLMODE, in uniphier_tm_initialize_sensor()
142 regmap_write_bits(map, tdev->data->block_base + EMONREPEAT, in uniphier_tm_initialize_sensor()
147 regmap_write_bits(map, tdev->data->map_base + PVTCTLSEL, in uniphier_tm_initialize_sensor()
153 static void uniphier_tm_set_alert(struct uniphier_tm_dev *tdev, u32 ch, in uniphier_tm_set_alert() argument
156 struct regmap *map = tdev->regmap; in uniphier_tm_set_alert()
159 regmap_write_bits(map, tdev->data->map_base + SETALERT0 + (ch << 2), in uniphier_tm_set_alert()
165 static void uniphier_tm_enable_sensor(struct uniphier_tm_dev *tdev) in uniphier_tm_enable_sensor() argument
167 struct regmap *map = tdev->regmap; in uniphier_tm_enable_sensor()
172 if (tdev->alert_en[i]) in uniphier_tm_enable_sensor()
176 regmap_write_bits(map, tdev->data->map_base + PMALERTINTCTL, in uniphier_tm_enable_sensor()
180 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN, in uniphier_tm_enable_sensor()
186 static void uniphier_tm_disable_sensor(struct uniphier_tm_dev *tdev) in uniphier_tm_disable_sensor() argument
188 struct regmap *map = tdev->regmap; in uniphier_tm_disable_sensor()
191 regmap_write_bits(map, tdev->data->map_base + PMALERTINTCTL, in uniphier_tm_disable_sensor()
195 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN, in uniphier_tm_disable_sensor()
203 struct uniphier_tm_dev *tdev = data; in uniphier_tm_get_temp() local
204 struct regmap *map = tdev->regmap; in uniphier_tm_get_temp()
208 ret = regmap_read(map, tdev->data->map_base + TMOD, &temp); in uniphier_tm_get_temp()
222 static void uniphier_tm_irq_clear(struct uniphier_tm_dev *tdev) in uniphier_tm_irq_clear() argument
233 regmap_write_bits(tdev->regmap, in uniphier_tm_irq_clear()
234 tdev->data->map_base + PMALERTINTCTL, mask, bits); in uniphier_tm_irq_clear()
239 struct uniphier_tm_dev *tdev = _tdev; in uniphier_tm_alarm_irq() local
242 uniphier_tm_irq_clear(tdev); in uniphier_tm_alarm_irq()
249 struct uniphier_tm_dev *tdev = _tdev; in uniphier_tm_alarm_irq_thread() local
251 thermal_zone_device_update(tdev->tz_dev, THERMAL_EVENT_UNSPECIFIED); in uniphier_tm_alarm_irq_thread()
261 struct uniphier_tm_dev *tdev; in uniphier_tm_probe() local
265 tdev = devm_kzalloc(dev, sizeof(*tdev), GFP_KERNEL); in uniphier_tm_probe()
266 if (!tdev) in uniphier_tm_probe()
268 tdev->dev = dev; in uniphier_tm_probe()
270 tdev->data = of_device_get_match_data(dev); in uniphier_tm_probe()
271 if (WARN_ON(!tdev->data)) in uniphier_tm_probe()
287 tdev->regmap = regmap; in uniphier_tm_probe()
289 ret = uniphier_tm_initialize_sensor(tdev); in uniphier_tm_probe()
297 0, "thermal", tdev); in uniphier_tm_probe()
301 platform_set_drvdata(pdev, tdev); in uniphier_tm_probe()
303 tdev->tz_dev = devm_thermal_zone_of_sensor_register(dev, 0, tdev, in uniphier_tm_probe()
305 if (IS_ERR(tdev->tz_dev)) { in uniphier_tm_probe()
307 return PTR_ERR(tdev->tz_dev); in uniphier_tm_probe()
311 trips = of_thermal_get_trip_points(tdev->tz_dev); in uniphier_tm_probe()
312 ntrips = of_thermal_get_ntrips(tdev->tz_dev); in uniphier_tm_probe()
323 uniphier_tm_set_alert(tdev, i, trips[i].temperature); in uniphier_tm_probe()
324 tdev->alert_en[i] = true; in uniphier_tm_probe()
332 uniphier_tm_enable_sensor(tdev); in uniphier_tm_probe()
339 struct uniphier_tm_dev *tdev = platform_get_drvdata(pdev); in uniphier_tm_remove() local
342 uniphier_tm_disable_sensor(tdev); in uniphier_tm_remove()