162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/multiplexer/io-channel-mux.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: I/O channel multiplexer 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Peter Rosin <peda@axentia.se> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci If a multiplexer is used to select which hardware signal is fed to 1462306a36Sopenharmony_ci e.g. an ADC channel, these bindings describe that situation. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci For each non-empty string in the channels property, an io-channel will be 1762306a36Sopenharmony_ci created. The number of this io-channel is the same as the index into the list 1862306a36Sopenharmony_ci of strings in the channels property, and also matches the mux controller 1962306a36Sopenharmony_ci state. The mux controller state is described in 2062306a36Sopenharmony_ci Documentation/devicetree/bindings/mux/mux-controller.yaml 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciproperties: 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci compatible: 2562306a36Sopenharmony_ci const: io-channel-mux 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci io-channels: 2862306a36Sopenharmony_ci maxItems: 1 2962306a36Sopenharmony_ci description: Channel node of the parent channel that has multiplexed input. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci io-channel-names: 3262306a36Sopenharmony_ci const: parent 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci mux-controls: true 3562306a36Sopenharmony_ci mux-control-names: true 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci channels: 3862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/non-unique-string-array 3962306a36Sopenharmony_ci description: 4062306a36Sopenharmony_ci List of strings, labeling the mux controller states. An empty 4162306a36Sopenharmony_ci string for a state means that the channel is not available. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci settle-time-us: 4462306a36Sopenharmony_ci default: 0 4562306a36Sopenharmony_ci description: 4662306a36Sopenharmony_ci Time required for analog signals to settle after muxing. 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci "#io-channel-cells": 4962306a36Sopenharmony_ci const: 1 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_cirequired: 5262306a36Sopenharmony_ci - compatible 5362306a36Sopenharmony_ci - io-channels 5462306a36Sopenharmony_ci - io-channel-names 5562306a36Sopenharmony_ci - mux-controls 5662306a36Sopenharmony_ci - channels 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciadditionalProperties: false 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciexamples: 6162306a36Sopenharmony_ci - | 6262306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 6362306a36Sopenharmony_ci mux: mux-controller { 6462306a36Sopenharmony_ci compatible = "gpio-mux"; 6562306a36Sopenharmony_ci #mux-control-cells = <0>; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 6862306a36Sopenharmony_ci <&pioA 1 GPIO_ACTIVE_HIGH>; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci adc-mux { 7262306a36Sopenharmony_ci compatible = "io-channel-mux"; 7362306a36Sopenharmony_ci io-channels = <&adc 0>; 7462306a36Sopenharmony_ci io-channel-names = "parent"; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci mux-controls = <&mux>; 7762306a36Sopenharmony_ci channels = "sync", "in", "system-regulator"; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci... 80