12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- This binding is derived from clock bindings, and based on suggestions
- from Lars-Peter Clausen [1].
- Sources of IIO channels can be represented by any node in the device
- tree. Those nodes are designated as IIO providers. IIO consumer
- nodes use a phandle and IIO specifier pair to connect IIO provider
- outputs to IIO inputs. Similar to the gpio specifiers, an IIO
- specifier is an array of one or more cells identifying the IIO
- output on a device. The length of an IIO specifier is defined by the
- value of a #io-channel-cells property in the IIO provider node.
- [1] http://marc.info/?l=linux-iio&m=135902119507483&w=2
- ==IIO providers==
- Required properties:
- #io-channel-cells: Number of cells in an IIO specifier; Typically 0 for nodes
- with a single IIO output and 1 for nodes with multiple
- IIO outputs.
- Example for a simple configuration with no trigger:
- adc: voltage-sensor@35 {
- compatible = "maxim,max1139";
- reg = <0x35>;
- #io-channel-cells = <1>;
- };
- Example for a configuration with trigger:
- adc@35 {
- compatible = "some-vendor,some-adc";
- reg = <0x35>;
- adc1: iio-device@0 {
- #io-channel-cells = <1>;
- /* other properties */
- };
- adc2: iio-device@1 {
- #io-channel-cells = <1>;
- /* other properties */
- };
- };
- ==IIO consumers==
- Required properties:
- io-channels: List of phandle and IIO specifier pairs, one pair
- for each IIO input to the device. Note: if the
- IIO provider specifies '0' for #io-channel-cells,
- then only the phandle portion of the pair will appear.
- Optional properties:
- io-channel-names:
- List of IIO input name strings sorted in the same
- order as the io-channels property. Consumers drivers
- will use io-channel-names to match IIO input names
- with IIO specifiers.
- io-channel-ranges:
- Empty property indicating that child nodes can inherit named
- IIO channels from this node. Useful for bus nodes to provide
- and IIO channel to their children.
- For example:
- device {
- io-channels = <&adc 1>, <&ref 0>;
- io-channel-names = "vcc", "vdd";
- };
- This represents a device with two IIO inputs, named "vcc" and "vdd".
- The vcc channel is connected to output 1 of the &adc device, and the
- vdd channel is connected to output 0 of the &ref device.
- ==Example==
- adc: max1139@35 {
- compatible = "maxim,max1139";
- reg = <0x35>;
- #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>;
- };
- some_consumer {
- compatible = "some-consumer";
- io-channels = <&adc 10>, <&adc 11>;
- io-channel-names = "adc1", "adc2";
- };
|