Lines Matching +full:hw +full:- +full:channels
1 // SPDX-License-Identifier: GPL-2.0-only
42 struct hts221_hw *hw = iio_priv(iio_dev); in hts221_trig_set_state() local
44 return regmap_update_bits(hw->regmap, HTS221_REG_DRDY_EN_ADDR, in hts221_trig_set_state()
55 struct hts221_hw *hw = private; in hts221_trigger_handler_thread() local
58 err = regmap_read(hw->regmap, HTS221_REG_STATUS_ADDR, &status); in hts221_trigger_handler_thread()
65 * Here we can assume data channels are both available if H_DA bit in hts221_trigger_handler_thread()
71 iio_trigger_poll_nested(hw->trig); in hts221_trigger_handler_thread()
78 struct hts221_hw *hw = iio_priv(iio_dev); in hts221_allocate_trigger() local
79 struct st_sensors_platform_data *pdata = dev_get_platdata(hw->dev); in hts221_allocate_trigger()
84 irq_type = irq_get_trigger_type(hw->irq); in hts221_allocate_trigger()
94 dev_info(hw->dev, in hts221_allocate_trigger()
101 err = regmap_update_bits(hw->regmap, HTS221_REG_DRDY_HL_ADDR, in hts221_allocate_trigger()
108 if (device_property_read_bool(hw->dev, "drive-open-drain") || in hts221_allocate_trigger()
109 (pdata && pdata->open_drain)) { in hts221_allocate_trigger()
114 err = regmap_update_bits(hw->regmap, HTS221_REG_DRDY_PP_OD_ADDR, in hts221_allocate_trigger()
121 err = devm_request_threaded_irq(hw->dev, hw->irq, NULL, in hts221_allocate_trigger()
124 hw->name, hw); in hts221_allocate_trigger()
126 dev_err(hw->dev, "failed to request trigger irq %d\n", in hts221_allocate_trigger()
127 hw->irq); in hts221_allocate_trigger()
131 hw->trig = devm_iio_trigger_alloc(hw->dev, "%s-trigger", in hts221_allocate_trigger()
132 iio_dev->name); in hts221_allocate_trigger()
133 if (!hw->trig) in hts221_allocate_trigger()
134 return -ENOMEM; in hts221_allocate_trigger()
136 iio_trigger_set_drvdata(hw->trig, iio_dev); in hts221_allocate_trigger()
137 hw->trig->ops = &hts221_trigger_ops; in hts221_allocate_trigger()
139 err = devm_iio_trigger_register(hw->dev, hw->trig); in hts221_allocate_trigger()
141 iio_dev->trig = iio_trigger_get(hw->trig); in hts221_allocate_trigger()
164 struct iio_dev *iio_dev = pf->indio_dev; in hts221_buffer_handler_thread()
165 struct hts221_hw *hw = iio_priv(iio_dev); in hts221_buffer_handler_thread() local
170 ch = &iio_dev->channels[HTS221_SENSOR_H]; in hts221_buffer_handler_thread()
171 err = regmap_bulk_read(hw->regmap, ch->address, in hts221_buffer_handler_thread()
172 &hw->scan.channels[0], in hts221_buffer_handler_thread()
173 sizeof(hw->scan.channels[0])); in hts221_buffer_handler_thread()
178 ch = &iio_dev->channels[HTS221_SENSOR_T]; in hts221_buffer_handler_thread()
179 err = regmap_bulk_read(hw->regmap, ch->address, in hts221_buffer_handler_thread()
180 &hw->scan.channels[1], in hts221_buffer_handler_thread()
181 sizeof(hw->scan.channels[1])); in hts221_buffer_handler_thread()
185 iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan, in hts221_buffer_handler_thread()
189 iio_trigger_notify_done(hw->trig); in hts221_buffer_handler_thread()
196 struct hts221_hw *hw = iio_priv(iio_dev); in hts221_allocate_buffers() local
197 return devm_iio_triggered_buffer_setup(hw->dev, iio_dev, in hts221_allocate_buffers()