| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- # 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)
- 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: /schemas/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;
- };
- };
- };
- };
- ...
|