Files
linux/Documentation/devicetree/bindings/mfd/st,stmfx.yaml
Rob Herring 42839dcafd dt-bindings: mfd: Add missing (unevaluated|additional)Properties on child nodes
In order to ensure only documented properties are present, node schemas
must have unevaluatedProperties or additionalProperties set to false
(typically).

Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Alistair Francis <alistair@alistair23.me>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20220823145649.3118479-4-robh@kernel.org
2022-09-28 16:17:40 +01:00

123 lines
3.0 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/st,stmfx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectonics Multi-Function eXpander (STMFX) bindings
description: ST Multi-Function eXpander (STMFX) is a slave controller using I2C for
communication with the main MCU. Its main features are GPIO expansion,
main MCU IDD measurement (IDD is the amount of current that flows
through VDD) and resistive touchscreen controller.
maintainers:
- Amelie Delaunay <amelie.delaunay@foss.st.com>
properties:
compatible:
const: st,stmfx-0300
reg:
enum: [ 0x42, 0x43 ]
interrupts:
maxItems: 1
drive-open-drain: true
vdd-supply: true
pinctrl:
type: object
properties:
compatible:
const: st,stmfx-0300-pinctrl
"#gpio-cells":
const: 2
"#interrupt-cells":
const: 2
gpio-controller: true
interrupt-controller: true
gpio-ranges:
description: if all STMFX pins[24:0] are available (no other STMFX function in use),
you should use gpio-ranges = <&stmfx_pinctrl 0 0 24>;
if agpio[3:0] are not available (STMFX Touchscreen function in use),
you should use gpio-ranges = <&stmfx_pinctrl 0 0 16>, <&stmfx_pinctrl 20 20 4>;
if agpio[7:4] are not available (STMFX IDD function in use),
you should use gpio-ranges = <&stmfx_pinctrl 0 0 20>;
maxItems: 1
patternProperties:
"^[a-zA-Z]*-pins$":
type: object
additionalProperties: false
allOf:
- $ref: ../pinctrl/pinmux-node.yaml
properties:
pins: true
bias-disable: true
bias-pull-up: true
bias-pull-pin-default: true
bias-pull-down: true
drive-open-drain: true
drive-push-pull: true
output-high: true
output-low: true
additionalProperties: false
required:
- compatible
- "#gpio-cells"
- "#interrupt-cells"
- gpio-controller
- interrupt-controller
- gpio-ranges
additionalProperties: false
required:
- compatible
- reg
- interrupts
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
stmfx@42 {
compatible = "st,stmfx-0300";
reg = <0x42>;
interrupts = <8 IRQ_TYPE_EDGE_RISING>;
interrupt-parent = <&gpioi>;
vdd-supply = <&v3v3>;
stmfx_pinctrl: pinctrl {
compatible = "st,stmfx-0300-pinctrl";
#gpio-cells = <2>;
#interrupt-cells = <2>;
gpio-controller;
interrupt-controller;
gpio-ranges = <&stmfx_pinctrl 0 0 24>;
joystick_pins: joystick-pins {
pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
drive-push-pull;
bias-pull-up;
};
};
};
};
...