^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/mfd/max77650.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: MAX77650 ultra low-power PMIC from Maxim Integrated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Bartosz Golaszewski <bgolaszewski@baylibre.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) MAX77650 is an ultra-low power PMIC providing battery charging and power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) supply for low-power IoT and wearable applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) The GPIO-controller module is represented as part of the top-level PMIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) node. The device exposes a single GPIO line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) For device-tree bindings of other sub-modules (regulator, power supply,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) LEDs and onkey) refer to the binding documents under the respective
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) sub-system directories.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) const: maxim,max77650
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) I2C device address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) interrupt-controller: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) "#interrupt-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) The first cell is the IRQ number, the second cell is the trigger type.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) gpio-controller: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) "#gpio-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) The first cell is the pin number and the second cell is used to specify
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) the gpio active state.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) gpio-line-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) Single string containing the name of the GPIO line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) regulators:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) $ref: ../regulator/max77650-regulator.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) charger:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) $ref: ../power/supply/max77650-charger.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) leds:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) $ref: ../leds/leds-max77650.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) onkey:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) $ref: ../input/max77650-onkey.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) - interrupt-controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) - "#interrupt-cells"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) - gpio-controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - "#gpio-cells"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #include <dt-bindings/interrupt-controller/irq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) #include <dt-bindings/input/linux-event-codes.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) i2c {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) pmic@48 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) compatible = "maxim,max77650";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) reg = <0x48>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) interrupt-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) interrupt-parent = <&gpio2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #interrupt-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) gpio-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) #gpio-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) gpio-line-names = "max77650-charger";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) regulators {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) compatible = "maxim,max77650-regulator";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) max77650_ldo: regulator-ldo {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) regulator-compatible = "ldo";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) regulator-name = "max77650-ldo";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) regulator-min-microvolt = <1350000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) regulator-max-microvolt = <2937500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) max77650_sbb0: regulator-sbb0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) regulator-compatible = "sbb0";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) regulator-name = "max77650-sbb0";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) regulator-min-microvolt = <800000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) regulator-max-microvolt = <1587500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) charger {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) compatible = "maxim,max77650-charger";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) input-voltage-min-microvolt = <4200000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) input-current-limit-microamp = <285000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) leds {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) compatible = "maxim,max77650-led";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) led@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) reg = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) label = "blue:usr0";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) led@1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) reg = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) label = "red:usr1";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) linux,default-trigger = "heartbeat";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) led@2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) reg = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) label = "green:usr2";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) onkey {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) compatible = "maxim,max77650-onkey";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) linux,code = <KEY_END>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) maxim,onkey-slide;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) };