1*e9ab77a4SJonathan Cameron# SPDX-License-Identifier: GPL-2.0 2*e9ab77a4SJonathan Cameron%YAML 1.2 3*e9ab77a4SJonathan Cameron--- 4*e9ab77a4SJonathan Cameron$id: http://devicetree.org/schemas/iio/multiplexer/io-channel-mux.yaml# 5*e9ab77a4SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml# 6*e9ab77a4SJonathan Cameron 7*e9ab77a4SJonathan Camerontitle: I/O channel multiplexer bindings 8*e9ab77a4SJonathan Cameron 9*e9ab77a4SJonathan Cameronmaintainers: 10*e9ab77a4SJonathan Cameron - Peter Rosin <peda@axentia.se> 11*e9ab77a4SJonathan Cameron 12*e9ab77a4SJonathan Camerondescription: | 13*e9ab77a4SJonathan Cameron If a multiplexer is used to select which hardware signal is fed to 14*e9ab77a4SJonathan Cameron e.g. an ADC channel, these bindings describe that situation. 15*e9ab77a4SJonathan Cameron 16*e9ab77a4SJonathan Cameron For each non-empty string in the channels property, an io-channel will be 17*e9ab77a4SJonathan Cameron created. The number of this io-channel is the same as the index into the list 18*e9ab77a4SJonathan Cameron of strings in the channels property, and also matches the mux controller 19*e9ab77a4SJonathan Cameron state. The mux controller state is described in 20*e9ab77a4SJonathan Cameron Documentation/devicetree/bindings/mux/mux-controller.yaml 21*e9ab77a4SJonathan Cameron 22*e9ab77a4SJonathan Cameronproperties: 23*e9ab77a4SJonathan Cameron 24*e9ab77a4SJonathan Cameron compatible: 25*e9ab77a4SJonathan Cameron const: io-channel-mux 26*e9ab77a4SJonathan Cameron 27*e9ab77a4SJonathan Cameron io-channels: 28*e9ab77a4SJonathan Cameron maxItems: 1 29*e9ab77a4SJonathan Cameron description: Channel node of the parent channel that has multiplexed input. 30*e9ab77a4SJonathan Cameron 31*e9ab77a4SJonathan Cameron io-channel-names: 32*e9ab77a4SJonathan Cameron const: parent 33*e9ab77a4SJonathan Cameron 34*e9ab77a4SJonathan Cameron mux-controls: true 35*e9ab77a4SJonathan Cameron mux-control-names: true 36*e9ab77a4SJonathan Cameron 37*e9ab77a4SJonathan Cameron channels: 38*e9ab77a4SJonathan Cameron $ref: /schemas/types.yaml#/definitions/string-array 39*e9ab77a4SJonathan Cameron description: 40*e9ab77a4SJonathan Cameron List of strings, labeling the mux controller states. 41*e9ab77a4SJonathan Cameron 42*e9ab77a4SJonathan Cameronrequired: 43*e9ab77a4SJonathan Cameron - compatible 44*e9ab77a4SJonathan Cameron - io-channels 45*e9ab77a4SJonathan Cameron - io-channel-names 46*e9ab77a4SJonathan Cameron - mux-controls 47*e9ab77a4SJonathan Cameron - channels 48*e9ab77a4SJonathan Cameron 49*e9ab77a4SJonathan CameronadditionalProperties: false 50*e9ab77a4SJonathan Cameron 51*e9ab77a4SJonathan Cameronexamples: 52*e9ab77a4SJonathan Cameron - | 53*e9ab77a4SJonathan Cameron #include <dt-bindings/gpio/gpio.h> 54*e9ab77a4SJonathan Cameron mux: mux-controller { 55*e9ab77a4SJonathan Cameron compatible = "gpio-mux"; 56*e9ab77a4SJonathan Cameron #mux-control-cells = <0>; 57*e9ab77a4SJonathan Cameron 58*e9ab77a4SJonathan Cameron mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 59*e9ab77a4SJonathan Cameron <&pioA 1 GPIO_ACTIVE_HIGH>; 60*e9ab77a4SJonathan Cameron }; 61*e9ab77a4SJonathan Cameron 62*e9ab77a4SJonathan Cameron adc-mux { 63*e9ab77a4SJonathan Cameron compatible = "io-channel-mux"; 64*e9ab77a4SJonathan Cameron io-channels = <&adc 0>; 65*e9ab77a4SJonathan Cameron io-channel-names = "parent"; 66*e9ab77a4SJonathan Cameron 67*e9ab77a4SJonathan Cameron mux-controls = <&mux>; 68*e9ab77a4SJonathan Cameron channels = "sync", "in", "system-regulator"; 69*e9ab77a4SJonathan Cameron }; 70*e9ab77a4SJonathan Cameron... 71