Messages in this thread | | | Subject | Re: [RFC PATCH] hwmon: (iio_hwmon) Enable power exporting from IIO | From | Guenter Roeck <> | Date | Tue, 20 Aug 2019 08:39:55 -0700 |
| |
On 8/12/19 6:29 AM, Michal Simek wrote: > There is no reason why power channel shouldn't be exported as is done for > voltage, current, temperature and humidity. > > Power channel is available on iio ina226 driver. > > Tested on Xilinx ZCU102 board. > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > --- > > But I don't think values are properly converted. Voltage1 is fine but the > rest is IMHO wrong. But this patch should enable power channel to be shown > which looks good. >
No idea what is going on there. I don't really know what "scaled" units the iio subsystem reports. power is supposed to be reported to user space in micro-Watt. Is that what the scaled value from iio reports ?
Thanks, Guenter
> root@zynqmp-debian:~# iio_info -a && sensors -u > Library version: 0.16 (git tag: v0.16) > Compiled with backends: local xml ip usb serial > Using auto-detected IIO context at URI "local:" > IIO context created with local backend. > Backend version: 0.16 (git tag: v0.16) > Backend description string: Linux zynqmp-debian 5.3.0-rc4-00004-ga7ca33daed22-dirty #41 SMP PREEMPT Mon Aug 12 15:06:58 CEST 2019 aarch64 > IIO context has 1 attributes: > local,kernel: 5.3.0-rc4-00004-ga7ca33daed22-dirty > IIO context has 1 devices: > iio:device0: ina226 (buffer capable) > 9 channels found: > voltage0: (input, index: 0, format: le:U16/16>>0) > 3 channel-specific attributes found: > attr 0: integration_time value: 0.001100 > attr 1: raw value: 70 > attr 2: scale value: 0.002500000 > voltage1: (input, index: 1, format: le:U16/16>>0) > 3 channel-specific attributes found: > attr 0: integration_time value: 0.001100 > attr 1: raw value: 958 > attr 2: scale value: 1.250000000 > power2: (input, index: 2, format: le:U16/16>>0) > 2 channel-specific attributes found: > attr 0: raw value: 3 > attr 1: scale value: 0.006250000 > current3: (input, index: 3, format: le:U16/16>>0) > 2 channel-specific attributes found: > attr 0: raw value: 70 > attr 1: scale value: 0.000250000 > timestamp: (input, index: 4, format: le:S64/64>>0) > allow: (input) > 1 channel-specific attributes found: > attr 0: async_readout value: 0 > oversampling: (input) > 1 channel-specific attributes found: > attr 0: ratio value: 4 > sampling: (input) > 1 channel-specific attributes found: > attr 0: frequency value: 114 > shunt: (input) > 1 channel-specific attributes found: > attr 0: resistor value: 10.000000000 > 2 device-specific attributes found: > attr 0: current_timestamp_clock value: realtime > > attr 1: integration_time_available value: 0.000140 0.000204 0.000332 0.000588 0.001100 0.002116 0.004156 0.008244 > 2 buffer-specific attributes found: > attr 0: data_available value: 0 > attr 1: watermark value: 1 > 1 debug attributes found: > debug attr 0: direct_reg_access value: 0x4327 > ina226_fourth-isa-0000 > Adapter: ISA adapter > in1: > in1_input: 0.000 > in2: > in2_input: 1.198 > power1: > power1_input: 0.000 > curr1: > curr1_input: 0.000 > --- > drivers/hwmon/iio_hwmon.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c > index f1c2d5faedf0..aedb95fa24e3 100644 > --- a/drivers/hwmon/iio_hwmon.c > +++ b/drivers/hwmon/iio_hwmon.c > @@ -59,7 +59,7 @@ static int iio_hwmon_probe(struct platform_device *pdev) > struct iio_hwmon_state *st; > struct sensor_device_attribute *a; > int ret, i; > - int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1; > + int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1, power_i = 1; > enum iio_chan_type type; > struct iio_channel *channels; > struct device *hwmon_dev; > @@ -114,6 +114,10 @@ static int iio_hwmon_probe(struct platform_device *pdev) > n = curr_i++; > prefix = "curr"; > break; > + case IIO_POWER: > + n = power_i++; > + prefix = "power"; > + break; > case IIO_HUMIDITYRELATIVE: > n = humidity_i++; > prefix = "humidity"; >
| |