File Index
Files and directories
Sign in
FILE

st,stmfx.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/mfd/st,stmfx.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/mfd/st,stmfx.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: STMicroelectonics Multi-Function eXpander (STMFX)
  8
  9description: ST Multi-Function eXpander (STMFX) is a slave controller using I2C for
 10               communication with the main MCU. Its main features are GPIO expansion,
 11               main MCU IDD measurement (IDD is the amount of current that flows
 12               through VDD) and resistive touchscreen controller.
 13
 14maintainers:
 15  - Amelie Delaunay <amelie.delaunay@foss.st.com>
 16
 17properties:
 18  compatible:
 19    const: st,stmfx-0300
 20
 21  reg:
 22    enum: [ 0x42, 0x43 ]
 23
 24  interrupts:
 25    maxItems: 1
 26
 27  drive-open-drain: true
 28
 29  vdd-supply: true
 30
 31  pinctrl:
 32    type: object
 33
 34    properties:
 35      compatible:
 36        const: st,stmfx-0300-pinctrl
 37
 38      "#gpio-cells":
 39        const: 2
 40
 41      "#interrupt-cells":
 42        const: 2
 43
 44      gpio-controller: true
 45
 46      interrupt-controller: true
 47
 48      gpio-ranges:
 49        description: if all STMFX pins[24:0] are available (no other STMFX function in use),
 50                     you should use gpio-ranges = <&stmfx_pinctrl 0 0 24>;
 51                     if agpio[3:0] are not available (STMFX Touchscreen function in use),
 52                     you should use gpio-ranges = <&stmfx_pinctrl 0 0 16>, <&stmfx_pinctrl 20 20 4>;
 53                     if agpio[7:4] are not available (STMFX IDD function in use),
 54                     you should use gpio-ranges = <&stmfx_pinctrl 0 0 20>;
 55        maxItems: 1
 56
 57    patternProperties:
 58      "^[a-zA-Z]*-pins$":
 59        type: object
 60        additionalProperties: false
 61
 62        allOf:
 63          - $ref: /schemas/pinctrl/pinmux-node.yaml
 64
 65        properties:
 66          pins: true
 67          bias-disable: true
 68          bias-pull-up: true
 69          bias-pull-pin-default: true
 70          bias-pull-down: true
 71          drive-open-drain: true
 72          drive-push-pull: true
 73          output-high: true
 74          output-low: true
 75
 76    additionalProperties: false
 77
 78    required:
 79      - compatible
 80      - "#gpio-cells"
 81      - "#interrupt-cells"
 82      - gpio-controller
 83      - interrupt-controller
 84      - gpio-ranges
 85
 86additionalProperties: false
 87
 88required:
 89  - compatible
 90  - reg
 91  - interrupts
 92
 93examples:
 94  - |
 95    #include <dt-bindings/interrupt-controller/arm-gic.h>
 96    i2c {
 97      #address-cells = <1>;
 98      #size-cells = <0>;
 99      stmfx@42 {
100        compatible = "st,stmfx-0300";
101        reg = <0x42>;
102        interrupts = <8 IRQ_TYPE_EDGE_RISING>;
103        interrupt-parent = <&gpioi>;
104        vdd-supply = <&v3v3>;
105
106        stmfx_pinctrl: pinctrl {
107          compatible = "st,stmfx-0300-pinctrl";
108          #gpio-cells = <2>;
109          #interrupt-cells = <2>;
110          gpio-controller;
111          interrupt-controller;
112          gpio-ranges = <&stmfx_pinctrl 0 0 24>;
113
114          joystick_pins: joystick-pins {
115            pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
116            drive-push-pull;
117            bias-pull-up;
118          };
119        };
120      };
121    };
122...
~/ Read-only file preview.