Lines Matching full:sensor

3  * ST Thermal Sensor Driver for memory mapped sensors.
19 /* Power control bits for the memory mapped thermal sensor */
25 * According to the STIH416 MPE temp sensor data sheet -
28 * sensor. regmap_update_bits() will be used to update the register.
39 struct st_thermal_sensor *sensor = sdata; in st_mmap_thermal_trip_handler() local
41 thermal_zone_device_update(sensor->thermal_dev, in st_mmap_thermal_trip_handler()
48 static int st_mmap_power_ctrl(struct st_thermal_sensor *sensor, in st_mmap_power_ctrl() argument
54 return regmap_update_bits(sensor->regmap, STIH416_MPE_CONF, mask, val); in st_mmap_power_ctrl()
57 static int st_mmap_alloc_regfields(struct st_thermal_sensor *sensor) in st_mmap_alloc_regfields() argument
59 struct device *dev = sensor->dev; in st_mmap_alloc_regfields()
60 struct regmap *regmap = sensor->regmap; in st_mmap_alloc_regfields()
61 const struct reg_field *reg_fields = sensor->cdata->reg_fields; in st_mmap_alloc_regfields()
63 sensor->int_thresh_hi = devm_regmap_field_alloc(dev, regmap, in st_mmap_alloc_regfields()
65 sensor->int_enable = devm_regmap_field_alloc(dev, regmap, in st_mmap_alloc_regfields()
68 if (IS_ERR(sensor->int_thresh_hi) || IS_ERR(sensor->int_enable)) { in st_mmap_alloc_regfields()
76 static int st_mmap_enable_irq(struct st_thermal_sensor *sensor) in st_mmap_enable_irq() argument
81 ret = regmap_field_write(sensor->int_thresh_hi, in st_mmap_enable_irq()
82 sensor->cdata->crit_temp - in st_mmap_enable_irq()
83 sensor->cdata->temp_adjust_val); in st_mmap_enable_irq()
87 return regmap_field_write(sensor->int_enable, 1); in st_mmap_enable_irq()
90 static int st_mmap_register_enable_irq(struct st_thermal_sensor *sensor) in st_mmap_register_enable_irq() argument
92 struct device *dev = sensor->dev; in st_mmap_register_enable_irq()
96 sensor->irq = platform_get_irq(pdev, 0); in st_mmap_register_enable_irq()
97 if (sensor->irq < 0) in st_mmap_register_enable_irq()
98 return sensor->irq; in st_mmap_register_enable_irq()
100 ret = devm_request_threaded_irq(dev, sensor->irq, in st_mmap_register_enable_irq()
103 dev->driver->name, sensor); in st_mmap_register_enable_irq()
105 dev_err(dev, "failed to register IRQ %d\n", sensor->irq); in st_mmap_register_enable_irq()
109 return st_mmap_enable_irq(sensor); in st_mmap_register_enable_irq()
118 static int st_mmap_regmap_init(struct st_thermal_sensor *sensor) in st_mmap_regmap_init() argument
120 struct device *dev = sensor->dev; in st_mmap_regmap_init()
123 sensor->mmio_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); in st_mmap_regmap_init()
124 if (IS_ERR(sensor->mmio_base)) in st_mmap_regmap_init()
125 return PTR_ERR(sensor->mmio_base); in st_mmap_regmap_init()
127 sensor->regmap = devm_regmap_init_mmio(dev, sensor->mmio_base, in st_mmap_regmap_init()
129 if (IS_ERR(sensor->regmap)) { in st_mmap_regmap_init()
131 return PTR_ERR(sensor->regmap); in st_mmap_regmap_init()
145 /* Compatible device data stih407 thermal sensor */
183 MODULE_DESCRIPTION("STMicroelectronics STi SoC Thermal Sensor Driver");