On Mon, 3 Apr 2023 00:31:21 +0300 Daniel Matyas <daniel.matyas23@xxxxxxxxx> wrote: > Dear Kernel community, > > I am developing an IIO driver for a temperature switch, which communicates through I2C at Analog Devices Inc. > > When implementing the event handling for the comparator mode of the device, I faced a problem: I don't know how to differentiate the underTemp event from the overTemp event. To understand better, I suggest you check out the device's data sheet for Address map (page 12), Configuration Register Definition (page 13) and OT/UT Status Bits and ALARM Pin Behavior (page 15) - https://www.analog.com/media/en/technical-documentation/data-sheets/MAX31827-MAX31829.pdf > > I had the idea to make 2 channels with the exact same attributes, but with different indexes, so that I can store the overTemp related events on channel 0 and underTemp related events on channel 1. Even so, I don't really feel like this is the right solution. Can anyone give me some advice on this? If it's just a question of over and under temp, I'd imagine these map to two different directions of IIO event. You can have one channel with RISING and FALLING events on it. e.g. https://elixir.bootlin.com/linux/v6.2.9/source/drivers/iio/adc/max1363.c#L451 The place we run into IIO limitations is if you have two events in the same direction (warn and critical for example) When that happens it is almost always a device that fits better in hwmon anyway so we've never figured out how to enable this sort of thing. Doesn't seem to apply here though. > > Also, I was suggested that I convert my driver from IIO to HWMON. Do you think that this is needed? No obvious reason why this benefits from being in IIO so I'm agreeing with the others who have replied that this looks more suited to hwmon. Jonathan > > Yours faithfully, > Daniel Matyas