^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Maxim MAX14577/77836 Multi-Function Device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) MAX14577 is a Multi-Function Device with Micro-USB Interface Circuit, Li+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Battery Charger and SFOUT LDO output for powering USB devices. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) interfaced to host controller using I2C.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) MAX77836 additionally contains PMIC (with two LDO regulators) and Fuel Gauge.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) For the description of Fuel Gauge low SOC alert interrupt see:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ../power/supply/max17040_battery.txt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - compatible : Must be "maxim,max14577" or "maxim,max77836".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) - reg : I2C slave address for the max14577 chip (0x25 for max14577/max77836)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - interrupts : IRQ line for the chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Required nodes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) - charger :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Node for configuring the charger driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - compatible : "maxim,max14577-charger"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) or "maxim,max77836-charger"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - maxim,fast-charge-uamp : Current in uA for Fast Charge;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) Valid values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - for max14577: 90000 - 950000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - for max77836: 45000 - 475000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - maxim,eoc-uamp : Current in uA for End-Of-Charge mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) Valid values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - for max14577: 50000 - 200000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - for max77836: 5000 - 100000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - maxim,ovp-uvolt : OverVoltage Protection Threshold in uV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) In an overvoltage condition, INT asserts and charging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) stops. Valid values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - 6000000, 6500000, 7000000, 7500000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - maxim,constant-uvolt : Battery Constant Voltage in uV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Valid values:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - 4000000 - 4280000 (step by 20000);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - 4350000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Optional nodes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - max14577-muic/max77836-muic :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) Node used only by extcon consumers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) - compatible : "maxim,max14577-muic" or "maxim,max77836-muic"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) - regulators :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) - compatible : "maxim,max14577-regulator"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) or "maxim,max77836-regulator"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) May contain a sub-node per regulator from the list below. Each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) sub-node should contain the constraints and initialization information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) for that regulator. See regulator.txt for a description of standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) properties for these sub-nodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) List of valid regulator names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - for max14577: CHARGER, SAFEOUT.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) - for max77836: CHARGER, SAFEOUT, LDO1, LDO2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) The SAFEOUT is a fixed voltage regulator so there is no need to specify
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) voltages for it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #include <dt-bindings/interrupt-controller/irq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) max14577@25 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) compatible = "maxim,max14577";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) reg = <0x25>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) interrupt-parent = <&gpx1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) interrupts = <5 IRQ_TYPE_NONE>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) muic: max14577-muic {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) compatible = "maxim,max14577-muic";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) regulators {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) compatible = "maxim,max14577-regulator";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) SAFEOUT {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) regulator-name = "SAFEOUT";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) CHARGER {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) regulator-name = "CHARGER";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) regulator-min-microamp = <90000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) regulator-max-microamp = <950000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) regulator-boot-on;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) charger {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) compatible = "maxim,max14577-charger";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) maxim,constant-uvolt = <4350000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) maxim,fast-charge-uamp = <450000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) maxim,eoc-uamp = <50000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) maxim,ovp-uvolt = <6500000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) max77836@25 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) compatible = "maxim,max77836";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) reg = <0x25>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) interrupt-parent = <&gpx1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) interrupts = <5 IRQ_TYPE_NONE>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) muic: max77836-muic {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) compatible = "maxim,max77836-muic";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) regulators {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) compatible = "maxim,max77836-regulator";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) SAFEOUT {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) regulator-name = "SAFEOUT";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) CHARGER {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) regulator-name = "CHARGER";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) regulator-min-microamp = <90000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) regulator-max-microamp = <950000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) regulator-boot-on;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) LDO1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) regulator-name = "LDO1";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) regulator-min-microvolt = <2700000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) regulator-max-microvolt = <2700000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) LDO2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) regulator-name = "LDO2";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) regulator-min-microvolt = <800000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) regulator-max-microvolt = <3950000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) };
^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) charger {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) compatible = "maxim,max77836-charger";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) maxim,constant-uvolt = <4350000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) maxim,fast-charge-uamp = <225000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) maxim,eoc-uamp = <7500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) maxim,ovp-uvolt = <6500000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) };