• Home
  • Raw
  • Download

Lines Matching +full:lower +full:- +full:case

1 // SPDX-License-Identifier: GPL-2.0-only
6 * Author: Lars-Peter Clausen <lars@metafoo.de>
13 #include "xilinx-xadc.h"
19 case XADC_THRESHOLD_OT_MAX: in xadc_event_to_channel()
20 case XADC_THRESHOLD_TEMP_MAX: in xadc_event_to_channel()
21 return &indio_dev->channels[0]; in xadc_event_to_channel()
22 case XADC_THRESHOLD_VCCINT_MAX: in xadc_event_to_channel()
23 case XADC_THRESHOLD_VCCAUX_MAX: in xadc_event_to_channel()
24 return &indio_dev->channels[event]; in xadc_event_to_channel()
26 return &indio_dev->channels[event-1]; in xadc_event_to_channel()
40 if (chan->type == IIO_TEMP) { in xadc_handle_event()
42 * The temperature channel only supports over-temperature in xadc_handle_event()
46 IIO_UNMOD_EVENT_CODE(chan->type, chan->channel, in xadc_handle_event()
52 * lower threshold event. Userspace will have to check the in xadc_handle_event()
56 IIO_UNMOD_EVENT_CODE(chan->type, chan->channel, in xadc_handle_event()
75 if (chan->type == IIO_TEMP) { in xadc_get_threshold_offset()
78 if (chan->channel < 2) in xadc_get_threshold_offset()
79 offset = chan->channel + 1; in xadc_get_threshold_offset()
81 offset = chan->channel + 6; in xadc_get_threshold_offset()
92 if (chan->type == IIO_TEMP) in xadc_get_alarm_mask()
94 switch (chan->channel) { in xadc_get_alarm_mask()
95 case 0: in xadc_get_alarm_mask()
97 case 1: in xadc_get_alarm_mask()
99 case 2: in xadc_get_alarm_mask()
101 case 3: in xadc_get_alarm_mask()
103 case 4: in xadc_get_alarm_mask()
105 case 5: in xadc_get_alarm_mask()
119 return (bool)(xadc->alarm_mask & xadc_get_alarm_mask(chan)); in xadc_read_event_config()
131 mutex_lock(&xadc->mutex); in xadc_write_event_config()
134 xadc->alarm_mask |= alarm; in xadc_write_event_config()
136 xadc->alarm_mask &= ~alarm; in xadc_write_event_config()
138 xadc->ops->update_alarm(xadc, xadc->alarm_mask); in xadc_write_event_config()
146 cfg &= ~((xadc->alarm_mask & 0xf0) << 4); /* bram, pint, paux, ddr */ in xadc_write_event_config()
147 cfg &= ~((xadc->alarm_mask & 0x08) >> 3); /* ot */ in xadc_write_event_config()
148 cfg &= ~((xadc->alarm_mask & 0x07) << 1); /* temp, vccint, vccaux */ in xadc_write_event_config()
153 mutex_unlock(&xadc->mutex); in xadc_write_event_config()
158 /* Register value is msb aligned, the lower 4 bits are ignored */
170 case IIO_EV_INFO_VALUE: in xadc_read_event_value()
171 *val = xadc->threshold[offset]; in xadc_read_event_value()
173 case IIO_EV_INFO_HYSTERESIS: in xadc_read_event_value()
174 *val = xadc->temp_hysteresis; in xadc_read_event_value()
177 return -EINVAL; in xadc_read_event_value()
197 return -EINVAL; in xadc_write_event_value()
199 mutex_lock(&xadc->mutex); in xadc_write_event_value()
202 case IIO_EV_INFO_VALUE: in xadc_write_event_value()
203 xadc->threshold[offset] = val; in xadc_write_event_value()
205 case IIO_EV_INFO_HYSTERESIS: in xadc_write_event_value()
206 xadc->temp_hysteresis = val; in xadc_write_event_value()
209 mutex_unlock(&xadc->mutex); in xadc_write_event_value()
210 return -EINVAL; in xadc_write_event_value()
213 if (chan->type == IIO_TEMP) { in xadc_write_event_value()
215 * According to the datasheet we need to set the lower 4 bits to in xadc_write_event_value()
227 if (xadc->threshold[offset] < xadc->temp_hysteresis) in xadc_write_event_value()
228 xadc->threshold[offset + 4] = 0; in xadc_write_event_value()
230 xadc->threshold[offset + 4] = xadc->threshold[offset] - in xadc_write_event_value()
231 xadc->temp_hysteresis; in xadc_write_event_value()
233 xadc->threshold[offset + 4]); in xadc_write_event_value()
242 mutex_unlock(&xadc->mutex); in xadc_write_event_value()