Lines Matching refs:tdev

91 static int uniphier_tm_initialize_sensor(struct uniphier_tm_dev *tdev)
93 struct regmap *map = tdev->regmap;
99 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN,
109 ret = regmap_read(map, tdev->data->map_base + TMODCOEF, &val);
114 ret = of_property_read_u32_array(tdev->dev->of_node,
121 regmap_write(map, tdev->data->tmod_setup_addr,
127 regmap_write_bits(map, tdev->data->block_base + PVTCTLMODE,
131 regmap_write_bits(map, tdev->data->block_base + EMONREPEAT,
136 regmap_write_bits(map, tdev->data->map_base + PVTCTLSEL,
142 static void uniphier_tm_set_alert(struct uniphier_tm_dev *tdev, u32 ch,
145 struct regmap *map = tdev->regmap;
148 regmap_write_bits(map, tdev->data->map_base + SETALERT0 + (ch << 2),
154 static void uniphier_tm_enable_sensor(struct uniphier_tm_dev *tdev)
156 struct regmap *map = tdev->regmap;
161 if (tdev->alert_en[i])
165 regmap_write_bits(map, tdev->data->map_base + PMALERTINTCTL,
169 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN,
175 static void uniphier_tm_disable_sensor(struct uniphier_tm_dev *tdev)
177 struct regmap *map = tdev->regmap;
180 regmap_write_bits(map, tdev->data->map_base + PMALERTINTCTL,
184 regmap_write_bits(map, tdev->data->block_base + PVTCTLEN,
192 struct uniphier_tm_dev *tdev = data;
193 struct regmap *map = tdev->regmap;
197 ret = regmap_read(map, tdev->data->map_base + TMOD, &temp);
211 static void uniphier_tm_irq_clear(struct uniphier_tm_dev *tdev)
222 regmap_write_bits(tdev->regmap,
223 tdev->data->map_base + PMALERTINTCTL, mask, bits);
228 struct uniphier_tm_dev *tdev = _tdev;
231 uniphier_tm_irq_clear(tdev);
238 struct uniphier_tm_dev *tdev = _tdev;
240 thermal_zone_device_update(tdev->tz_dev, THERMAL_EVENT_UNSPECIFIED);
250 struct uniphier_tm_dev *tdev;
254 tdev = devm_kzalloc(dev, sizeof(*tdev), GFP_KERNEL);
255 if (!tdev)
257 tdev->dev = dev;
259 tdev->data = of_device_get_match_data(dev);
260 if (WARN_ON(!tdev->data))
276 tdev->regmap = regmap;
278 ret = uniphier_tm_initialize_sensor(tdev);
286 0, "thermal", tdev);
290 platform_set_drvdata(pdev, tdev);
292 tdev->tz_dev = devm_thermal_zone_of_sensor_register(dev, 0, tdev,
294 if (IS_ERR(tdev->tz_dev)) {
296 return PTR_ERR(tdev->tz_dev);
300 trips = of_thermal_get_trip_points(tdev->tz_dev);
301 ntrips = of_thermal_get_ntrips(tdev->tz_dev);
312 uniphier_tm_set_alert(tdev, i, trips[i].temperature);
313 tdev->alert_en[i] = true;
321 uniphier_tm_enable_sensor(tdev);
328 struct uniphier_tm_dev *tdev = platform_get_drvdata(pdev);
331 uniphier_tm_disable_sensor(tdev);