mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-31 23:27:20 +00:00

On some platforms to minimise pop and click during switching between CTIA and OMTP headset an additional HiFi Mux Switch is used. Most common case is that this switch is switched on by default, but on some platforms this needs a regulator enable. One such platform is Lenovo T14s. Adds required bindings in gpio-mux to add such optional regulator. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Acked-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20250327100633.11530-2-srinivas.kandagatla@linaro.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
103 lines
2.1 KiB
YAML
103 lines
2.1 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mux/gpio-mux.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: GPIO-based multiplexer controller
|
|
|
|
maintainers:
|
|
- Peter Rosin <peda@axentia.se>
|
|
|
|
description: |+
|
|
Define what GPIO pins are used to control a multiplexer. Or several
|
|
multiplexers, if the same pins control more than one multiplexer.
|
|
|
|
The multiplexer state is defined as the number represented by the
|
|
multiplexer GPIO pins, where the first pin is the least significant
|
|
bit. An active pin is a binary 1, an inactive pin is a binary 0.
|
|
|
|
properties:
|
|
compatible:
|
|
const: gpio-mux
|
|
|
|
mux-gpios:
|
|
description:
|
|
List of gpios used to control the multiplexer, least significant bit first.
|
|
|
|
mux-supply:
|
|
description:
|
|
Regulator to power on the multiplexer.
|
|
|
|
'#mux-control-cells':
|
|
enum: [ 0, 1 ]
|
|
|
|
'#mux-state-cells':
|
|
enum: [ 1, 2 ]
|
|
|
|
idle-state:
|
|
default: -1
|
|
|
|
required:
|
|
- compatible
|
|
- mux-gpios
|
|
anyOf:
|
|
- required:
|
|
- "#mux-control-cells"
|
|
- required:
|
|
- "#mux-state-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
mux: mux-controller {
|
|
compatible = "gpio-mux";
|
|
#mux-control-cells = <0>;
|
|
|
|
mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
|
|
<&pioA 1 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
adc-mux {
|
|
compatible = "io-channel-mux";
|
|
io-channels = <&adc 0>;
|
|
io-channel-names = "parent";
|
|
|
|
mux-controls = <&mux>;
|
|
|
|
channels = "sync-1", "in", "out", "sync-2";
|
|
};
|
|
|
|
i2c-mux {
|
|
compatible = "i2c-mux";
|
|
i2c-parent = <&i2c1>;
|
|
|
|
mux-controls = <&mux>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
i2c@0 {
|
|
reg = <0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
ssd1307: oled@3c {
|
|
reg = <0x3c>;
|
|
};
|
|
};
|
|
|
|
i2c@3 {
|
|
reg = <3>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
pca9555: pca9555@20 {
|
|
reg = <0x20>;
|
|
};
|
|
};
|
|
};
|
|
...
|