Hi, I am going about to clean up stuff to further upstream support for my ebook readers. One question arises about the temperature interface of the EPD PMIC. Vendor code uses regulator_get_voltage in the EPDC driver to read a temperature in celsius and provides temperature through the regulator interface (besides sysfs/hwmon). That is ugly. But what are the options, if a kernel consumer should be able to reference it via devicetree phandle and read out from it? I see temperature sensors both in the iio and the hwmon subsystem, but do not find a description why these things are there. If I put it into the iio-subsystem iio_channel_get() and friends can be used, if I understand things correctly, there are no such functions in the hwmon subsystem, so I would not be able to use it there. So the better choice is to put it into the iio subsystem? On the consumer side, the temperature, which is pratically the ambient temperature, is used to choose the right waveform for the corresponding temperature range. Here are some code snippets in the vendor kernel: temperature = regulator_get_voltage(fb_data->tmst_regulator); dev_dbg(fb_data->dev, "auto temperature reading = %d\n", temperature); if (temperature != 0xFF) { fb_data->last_time_temp_auto_update = now; fb_data->temp_index = mxc_epdc_fb_get_temp_index(fb_data, temperature); } static int mxc_epdc_fb_get_temp_index(struct mxc_epdc_fb_data *fb_data, int temp ) { int i; int index = -1; if (fb_data->trt_entries == 0) { dev_err(fb_data->dev, "No TRT exists...using default temp index\n"); return DEFAULT_TEMP_INDEX; } /* Search temperature ranges for a match */ for (i = 0; i < fb_data->trt_entries - 1; i++) { if ((temp >= fb_data->temp_range_bounds[i]) && (temp < fb_data->temp_range_bounds[i+1])) { index = i; break; } } ... and writing that index to some register in the EPDC. As the consumer is not upstream (I have a basic drm-based variant also in my clean-up queue), compatibilty to existing systems does not matter that much. Also I see no drivers for similar chips upstream. Regards, Andreas