# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/fsl,mc13xxx.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Freescale MC13xxx Power Management Integrated Circuits (PMIC) maintainers: - Alexander Kurz description: > The MC13xxx PMIC series consists of the three models MC13783, MC13892 and MC34708 and provide regulators and other features like RTC, ADC, LED, touchscreen, codec and input buttons. Link to datasheets https://www.nxp.com/docs/en/data-sheet/MC13783.pdf https://www.nxp.com/docs/en/data-sheet/MC13892.pdf https://www.nxp.com/docs/en/data-sheet/MC34708.pdf properties: compatible: enum: - fsl,mc13783 - fsl,mc13892 - fsl,mc34708 reg: description: I2C slave address or SPI chip select number. maxItems: 1 spi-max-frequency: true spi-cs-high: true system-power-controller: true interrupts: maxItems: 1 buttons: type: object properties: "#address-cells": const: 1 "#size-cells": const: 0 patternProperties: "^onkey@[0-2]$": $ref: /schemas/input/input.yaml# unevaluatedProperties: false type: object properties: reg: description: | One of MC13783 BUTTON IDs: 0: ONOFD1 1: ONOFD2 2: ONOFD3 MC13892 BUTTON IDs: 0: PWRON1 1: PWRON2 2: PWRON3 MC34708 BUTTON IDs: 0: PWRON1 1: PWRON2 maximum: 2 debounce-delay-ms: enum: [0, 30, 150, 750] default: 30 description: Sets the debouncing delay in milliseconds. active-low: description: Set active when pin is pulled low. linux,code: true fsl,enable-reset: description: Setting of the global reset option. type: boolean unevaluatedProperties: false leds: type: object $ref: /schemas/leds/common.yaml# properties: reg: description: | One of MC13783 LED IDs 0: Main display 1: AUX display 2: Keypad 3: Red 1 4: Green 1 5: Blue 1 6: Red 2 7: Green 2 8: Blue 2 9: Red 3 10: Green 3 11: Blue 3 MC13892 LED IDs 0: Main display 1: AUX display 2: Keypad 3: Red 4: Green 5: Blue MC34708 LED IDs 0: Charger Red 1: Charger Green maxItems: 1 led-control: $ref: /schemas/types.yaml#/definitions/uint32-array description: | Setting for LED-Control register array length depends on model, mc13783: 6, mc13892: 4, mc34708: 1 regulators: type: object additionalProperties: type: object description: | List of child nodes specifying the regulators, depending on chip variant. Each child node is defined using the standard binding for regulators and the optional regulator properties defined below. fsl,mc13xxx-uses-adc: type: boolean description: Indicate the ADC is being used fsl,mc13xxx-uses-codec: type: boolean description: Indicate the Audio Codec is being used fsl,mc13xxx-uses-rtc: type: boolean description: Indicate the RTC is being used fsl,mc13xxx-uses-touch: type: boolean description: Indicate the touchscreen controller is being used required: - compatible - reg allOf: - if: properties: compatible: contains: const: fsl,mc13783 then: properties: leds: properties: led-control: minItems: 6 maxItems: 6 regulators: patternProperties: "^gpo[1-4]|pwgt[12]spi|sw[12][ab]|sw3|vaudio|vcam|vdig|vesim|vgen|viohi|violo|vmmc[12]|vrf[12]|vrfbg|vrfcp|vrfdig|vrfref|vsim|vvib$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false - if: properties: compatible: contains: const: fsl,mc13892 then: properties: leds: properties: led-control: minItems: 4 maxItems: 4 regulators: patternProperties: "^gpo[1-4]|pwgt[12]spi|sw[1-4]|swbst|vaudio|vcam|vcoincell|vdig|vgen[1-3]|viohi|vpll|vsd|vusb|vusb2|vvideo$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false - if: properties: compatible: contains: const: fsl,mc34708 then: properties: buttons: patternProperties: "^onkey@[0-2]$": properties: reg: maximum: 1 leds: properties: led-control: minItems: 1 maxItems: 1 additionalProperties: false examples: - | #include #include #include spi { #address-cells = <1>; #size-cells = <0>; pmic: mc13892@0 { compatible = "fsl,mc13892"; reg = <0>; spi-max-frequency = <1000000>; spi-cs-high; interrupt-parent = <&gpio0>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; fsl,mc13xxx-uses-rtc; fsl,mc13xxx-uses-adc; buttons { #address-cells = <1>; #size-cells = <0>; onkey@0 { reg = <0>; debounce-delay-ms = <30>; active-low; fsl,enable-reset; }; }; leds { #address-cells = <1>; #size-cells = <0>; led-control = <0x000 0x000 0x0e0 0x000>; sysled@3 { reg = <3>; label = "system:red:live"; linux,default-trigger = "heartbeat"; }; }; regulators { sw1_reg: sw1 { regulator-min-microvolt = <600000>; regulator-max-microvolt = <1375000>; regulator-boot-on; regulator-always-on; }; sw2_reg: sw2 { regulator-min-microvolt = <900000>; regulator-max-microvolt = <1850000>; regulator-boot-on; regulator-always-on; }; }; }; };