On 06/06/2015 08:28 AM, Gergely Imreh wrote:
On 6 June 2015 at 23:05, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
On 06/06/2015 08:01 AM, Guenter Roeck wrote:
On 06/06/2015 07:51 AM, Gergely Imreh wrote:
Hi,
I was checking out what would it take to support lm-sensors on the
Parallella board[1]. It's an interesting little board with a dual core
Xilinx ARM Cortex-A9, an FPGA, and a 16-core Epiphany co-processor.
It's Xilinx XADC sensor used for temperature/voltage sensing does not
seem to be anywhere on the lm-sensors supported device list. Currently
users seem to monitor it through reading the device data directly from
the /sys entries and doing the necessary scaling and conversion (as it
was discussed on the Parallella forums, bash script included[2])
In a nutshell, the data is accessible through
/sys/bus/iio/devices/iio:device0/in_temp0_{raw,offset,scale} files.
There are also 8 voltage readings there that could be extracted.
If it is supported through iio, it should be possible use the iio->hwmon
bridge.
Here is an example devicetree entry, used to configure a max1139 as
hwmon device.
max1139: voltage-sensor@35 {
compatible = "maxim,max1139";
reg = <0x35>;
vcc-supply = <®_3p3v>;
vref-supply = <®_3p3v>;
#io-channel-cells = <1>;
};
...
max1139@35 {
compatible = "iio-hwmon";
io-channels = <&max1139 0>, <&max1139 1>, <&max1139 2>,
<&max1139 3>, <&max1139 4>, <&max1139 5>,
<&max1139 6>, <&max1139 7>, <&max1139 8>,
<&max1139 9>, <&max1139 10>, <&max1139 11>;
};
Guenter
So if I get it right, all the support can be enabled through iio-hwmon
by modifying the Parallella device tree?
If so, the relevant entry is I think this (from the repo[1])
xadc@f8007100 {
compatible = "xlnx,zynq-xadc-1.00.a", "xlnx,ps7-xadc-1.00.a";
reg = <0xf8007100 0x20>;
interrupts = <0 7 4>;
interrupt-parent = <&gic>;
clocks = <&clkc 12>;
};
I guess in the above example "voltage-sensor" is just a descriptive
label, can be anything else too, right?
Yes.
Looking at the iio-hwmon binding docs[2], would a version like this be usable?
adc: xadc@f8007100 {
compatible = "xlnx,zynq-xadc-1.00.a", "xlnx,ps7-xadc-1.00.a";
reg = <0xf8007100 0x20>;
interrupts = <0 7 4>;
interrupt-parent = <&gic>;
clocks = <&clkc 12>;
#io-channel-cells = <1>;
};
iio_hwmon {
compatible = "iio-hwmon";
io-channels = <&adc 0>, <&adc 1>, <&adc 2>,
<&adc 3>, <&adc 4>, <&adc 5>,
<&adc 6>, <&adc 7>, <&adc 8>,
<&adc 9>; <&adc 10>; <&adc 11>;
<&adc 12>; <&adc 13>; <&adc 14>;
<&adc 15>; <&adc 16>; <&adc 17>;
<&adc 18>;
};
Something like that, correct.
How would this be able to tell which adc channels belong to what? (eg.
0-1-2 are needed for the temperature sensing, the rest are voltage
sensors in pairs, raw and scale values)
iio-hwmon checks the sensor type and instantiates it accordingly.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors