From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> This can be used via $ref by bindings that are consumers of the channels provided by IIO devices. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> --- .../devicetree/bindings/iio/iio-bindings.txt | 53 ----------------- .../devicetree/bindings/iio/iio-consumer.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 53 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/iio-bindings.txt b/Documentation/devicetree/bindings/iio/iio-bindings.txt index aa63cac7323e..cfaed2b54fa9 100644 --- a/Documentation/devicetree/bindings/iio/iio-bindings.txt +++ b/Documentation/devicetree/bindings/iio/iio-bindings.txt @@ -47,56 +47,3 @@ Example for a configuration with trigger: }; }; -==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"; - }; diff --git a/Documentation/devicetree/bindings/iio/iio-consumer.yaml b/Documentation/devicetree/bindings/iio/iio-consumer.yaml new file mode 100644 index 000000000000..5f28cc29edce --- /dev/null +++ b/Documentation/devicetree/bindings/iio/iio-consumer.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/iio-consumer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Generic IIO consumer-bindings + +maintainers: + - Jonathan Cameron <jic23@xxxxxxxxxx> + +description: + This binding describes generic properties a consumer of the channels + provided by an IIO device may use. + + As well, direct readings of channels on an IIO Device, an IIO device + can provide services to consumer devices. Thes are in the form of + channel readings and properties. For example, an ADC might provide + 3 channels to an analog accelerometer so that an accelerometer + driver can use them to read the voltages that correspond to the + accelerations on the 3 axis and apply appropriate calibration to + provide useful outputs. + +properties: + io-channels: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: > + 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. + + io-channel-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: > + List of names associated with a given IIO channel by the consumer + device. An example for an analog accelerometer would be "accel_x". + Consumers drivers will use io-channel-names to locate the correct + phandle based reference in io-channels. + + io-channel-ranges: + type: boolean + description: > + 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. + +additionalProperties: true + +examples: + - | + 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>; + }; +... \ No newline at end of file -- 2.28.0