18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/st,stmfx.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: STMicroelectonics Multi-Function eXpander (STMFX) bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: ST Multi-Function eXpander (STMFX) is a slave controller using I2C for 108c2ecf20Sopenharmony_ci communication with the main MCU. Its main features are GPIO expansion, 118c2ecf20Sopenharmony_ci main MCU IDD measurement (IDD is the amount of current that flows 128c2ecf20Sopenharmony_ci through VDD) and resistive touchscreen controller. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cimaintainers: 158c2ecf20Sopenharmony_ci - Amelie Delaunay <amelie.delaunay@st.com> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci const: st,stmfx-0300 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci reg: 228c2ecf20Sopenharmony_ci enum: [ 0x42, 0x43 ] 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci interrupts: 258c2ecf20Sopenharmony_ci maxItems: 1 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci drive-open-drain: true 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci vdd-supply: 308c2ecf20Sopenharmony_ci maxItems: 1 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci pinctrl: 338c2ecf20Sopenharmony_ci type: object 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci properties: 368c2ecf20Sopenharmony_ci compatible: 378c2ecf20Sopenharmony_ci const: st,stmfx-0300-pinctrl 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci "#gpio-cells": 408c2ecf20Sopenharmony_ci const: 2 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci "#interrupt-cells": 438c2ecf20Sopenharmony_ci const: 2 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci gpio-controller: true 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci interrupt-controller: true 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci gpio-ranges: 508c2ecf20Sopenharmony_ci description: if all STMFX pins[24:0] are available (no other STMFX function in use), 518c2ecf20Sopenharmony_ci you should use gpio-ranges = <&stmfx_pinctrl 0 0 24>; 528c2ecf20Sopenharmony_ci if agpio[3:0] are not available (STMFX Touchscreen function in use), 538c2ecf20Sopenharmony_ci you should use gpio-ranges = <&stmfx_pinctrl 0 0 16>, <&stmfx_pinctrl 20 20 4>; 548c2ecf20Sopenharmony_ci if agpio[7:4] are not available (STMFX IDD function in use), 558c2ecf20Sopenharmony_ci you should use gpio-ranges = <&stmfx_pinctrl 0 0 20>; 568c2ecf20Sopenharmony_ci maxItems: 1 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci patternProperties: 598c2ecf20Sopenharmony_ci "^[a-zA-Z]*-pins$": 608c2ecf20Sopenharmony_ci type: object 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci allOf: 638c2ecf20Sopenharmony_ci - $ref: ../pinctrl/pinmux-node.yaml 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci properties: 668c2ecf20Sopenharmony_ci pins: true 678c2ecf20Sopenharmony_ci bias-disable: true 688c2ecf20Sopenharmony_ci bias-pull-up: true 698c2ecf20Sopenharmony_ci bias-pull-pin-default: true 708c2ecf20Sopenharmony_ci bias-pull-down: true 718c2ecf20Sopenharmony_ci drive-open-drain: true 728c2ecf20Sopenharmony_ci drive-push-pull: true 738c2ecf20Sopenharmony_ci output-high: true 748c2ecf20Sopenharmony_ci output-low: true 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci additionalProperties: false 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci required: 798c2ecf20Sopenharmony_ci - compatible 808c2ecf20Sopenharmony_ci - "#gpio-cells" 818c2ecf20Sopenharmony_ci - "#interrupt-cells" 828c2ecf20Sopenharmony_ci - gpio-controller 838c2ecf20Sopenharmony_ci - interrupt-controller 848c2ecf20Sopenharmony_ci - gpio-ranges 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ciadditionalProperties: false 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_cirequired: 898c2ecf20Sopenharmony_ci - compatible 908c2ecf20Sopenharmony_ci - reg 918c2ecf20Sopenharmony_ci - interrupts 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ciexamples: 948c2ecf20Sopenharmony_ci - | 958c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 968c2ecf20Sopenharmony_ci i2c { 978c2ecf20Sopenharmony_ci #address-cells = <1>; 988c2ecf20Sopenharmony_ci #size-cells = <0>; 998c2ecf20Sopenharmony_ci stmfx@42 { 1008c2ecf20Sopenharmony_ci compatible = "st,stmfx-0300"; 1018c2ecf20Sopenharmony_ci reg = <0x42>; 1028c2ecf20Sopenharmony_ci interrupts = <8 IRQ_TYPE_EDGE_RISING>; 1038c2ecf20Sopenharmony_ci interrupt-parent = <&gpioi>; 1048c2ecf20Sopenharmony_ci vdd-supply = <&v3v3>; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci stmfx_pinctrl: pinctrl { 1078c2ecf20Sopenharmony_ci compatible = "st,stmfx-0300-pinctrl"; 1088c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1098c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1108c2ecf20Sopenharmony_ci gpio-controller; 1118c2ecf20Sopenharmony_ci interrupt-controller; 1128c2ecf20Sopenharmony_ci gpio-ranges = <&stmfx_pinctrl 0 0 24>; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci joystick_pins: joystick-pins { 1158c2ecf20Sopenharmony_ci pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4"; 1168c2ecf20Sopenharmony_ci drive-push-pull; 1178c2ecf20Sopenharmony_ci bias-pull-up; 1188c2ecf20Sopenharmony_ci }; 1198c2ecf20Sopenharmony_ci }; 1208c2ecf20Sopenharmony_ci }; 1218c2ecf20Sopenharmony_ci }; 1228c2ecf20Sopenharmony_ci... 123