• Home
  • Raw
  • Download

Lines Matching +full:qcom +full:- +full:tsens

22 #include "tsens.h"
27 struct tsens_device *tmdev = s->tmdev; in tsens_get_temp()
29 return tmdev->ops->get_temp(tmdev, s->id, temp); in tsens_get_temp()
35 struct tsens_device *tmdev = s->tmdev; in tsens_get_trend()
37 if (tmdev->ops->get_trend) in tsens_get_trend()
38 return tmdev->ops->get_trend(tmdev, s->id, trend); in tsens_get_trend()
40 return -ENOTSUPP; in tsens_get_trend()
47 if (tmdev->ops && tmdev->ops->suspend) in tsens_suspend()
48 return tmdev->ops->suspend(tmdev); in tsens_suspend()
57 if (tmdev->ops && tmdev->ops->resume) in tsens_resume()
58 return tmdev->ops->resume(tmdev); in tsens_resume()
67 .compatible = "qcom,msm8916-tsens",
70 .compatible = "qcom,msm8974-tsens",
73 .compatible = "qcom,msm8996-tsens",
76 .compatible = "qcom,tsens-v2",
92 u32 *hw_id, n = tmdev->num_sensors; in tsens_register()
94 hw_id = devm_kcalloc(tmdev->dev, n, sizeof(u32), GFP_KERNEL); in tsens_register()
96 return -ENOMEM; in tsens_register()
98 for (i = 0; i < tmdev->num_sensors; i++) { in tsens_register()
99 tmdev->sensor[i].tmdev = tmdev; in tsens_register()
100 tmdev->sensor[i].id = i; in tsens_register()
101 tzd = devm_thermal_zone_of_sensor_register(tmdev->dev, i, in tsens_register()
102 &tmdev->sensor[i], in tsens_register()
106 tmdev->sensor[i].tzd = tzd; in tsens_register()
107 if (tmdev->ops->enable) in tsens_register()
108 tmdev->ops->enable(tmdev, i); in tsens_register()
123 if (pdev->dev.of_node) in tsens_probe()
124 dev = &pdev->dev; in tsens_probe()
126 dev = pdev->dev.parent; in tsens_probe()
128 np = dev->of_node; in tsens_probe()
132 data = id->data; in tsens_probe()
136 num_sensors = data->num_sensors; in tsens_probe()
139 of_property_read_u32(np, "#qcom,sensors", &num_sensors); in tsens_probe()
143 return -EINVAL; in tsens_probe()
150 return -ENOMEM; in tsens_probe()
152 tmdev->dev = dev; in tsens_probe()
153 tmdev->num_sensors = num_sensors; in tsens_probe()
154 tmdev->ops = data->ops; in tsens_probe()
155 for (i = 0; i < tmdev->num_sensors; i++) { in tsens_probe()
156 if (data->hw_ids) in tsens_probe()
157 tmdev->sensor[i].hw_id = data->hw_ids[i]; in tsens_probe()
159 tmdev->sensor[i].hw_id = i; in tsens_probe()
162 if (!tmdev->ops || !tmdev->ops->init || !tmdev->ops->get_temp) in tsens_probe()
163 return -EINVAL; in tsens_probe()
165 ret = tmdev->ops->init(tmdev); in tsens_probe()
167 dev_err(dev, "tsens init failed\n"); in tsens_probe()
171 if (tmdev->ops->calibrate) { in tsens_probe()
172 ret = tmdev->ops->calibrate(tmdev); in tsens_probe()
174 if (ret != -EPROBE_DEFER) in tsens_probe()
175 dev_err(dev, "tsens calibration failed\n"); in tsens_probe()
191 if (tmdev->ops->disable) in tsens_remove()
192 tmdev->ops->disable(tmdev); in tsens_remove()
201 .name = "qcom-tsens",
209 MODULE_DESCRIPTION("QCOM Temperature Sensor driver");
210 MODULE_ALIAS("platform:qcom-tsens");