Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: mfd: Add binding for the PF1550 PMIC

Add a DT binding document for pf1550 PMIC. This describes the core MFD
device along with its children: regulators, charger and onkey.

Signed-off-by: Samuel Kayode <samuel.kayode@savoirfairelinux.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tested-by: Sean Nyekjaer <sean@geanix.com>
Link: https://patch.msgid.link/20251001-pf1550-v12-1-a3302aa41687@savoirfairelinux.com
Signed-off-by: Lee Jones <lee@kernel.org>

authored by

Samuel Kayode and committed by
Lee Jones
2391e137 3a866087

+161
+161
Documentation/devicetree/bindings/mfd/nxp,pf1550.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/nxp,pf1550.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP PF1550 Power Management IC 8 + 9 + maintainers: 10 + - Samuel Kayode <samuel.kayode@savoirfairelinux.com> 11 + 12 + description: 13 + PF1550 PMIC provides battery charging and power supply for low power IoT and 14 + wearable applications. This device consists of an i2c controlled MFD that 15 + includes regulators, battery charging and an onkey/power button. 16 + 17 + $ref: /schemas/power/supply/power-supply.yaml 18 + 19 + properties: 20 + compatible: 21 + const: nxp,pf1550 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + wakeup-source: true 30 + 31 + regulators: 32 + type: object 33 + additionalProperties: false 34 + 35 + patternProperties: 36 + "^(ldo[1-3]|sw[1-3]|vrefddr)$": 37 + type: object 38 + $ref: /schemas/regulator/regulator.yaml 39 + description: 40 + regulator configuration for ldo1-3, buck converters(sw1-3) 41 + and DDR termination reference voltage (vrefddr) 42 + unevaluatedProperties: false 43 + 44 + monitored-battery: 45 + description: | 46 + A phandle to a monitored battery node that contains a valid value 47 + for: 48 + constant-charge-voltage-max-microvolt. 49 + 50 + nxp,thermal-regulation-celsius: 51 + description: 52 + Temperature threshold for thermal regulation of charger in celsius. 53 + enum: [ 80, 95, 110, 125 ] 54 + 55 + nxp,min-system-microvolt: 56 + description: 57 + System specific lower limit voltage. 58 + enum: [ 3500000, 3700000, 4300000 ] 59 + 60 + nxp,disable-key-power: 61 + type: boolean 62 + description: 63 + Disable power-down using a long key-press. The onkey driver will remove 64 + support for the KEY_POWER key press when triggered using a long press of 65 + the onkey. 66 + 67 + required: 68 + - compatible 69 + - reg 70 + - interrupts 71 + 72 + unevaluatedProperties: false 73 + 74 + examples: 75 + - | 76 + #include <dt-bindings/interrupt-controller/irq.h> 77 + #include <dt-bindings/input/linux-event-codes.h> 78 + 79 + battery: battery-cell { 80 + compatible = "simple-battery"; 81 + constant-charge-voltage-max-microvolt = <4400000>; 82 + }; 83 + 84 + i2c { 85 + #address-cells = <1>; 86 + #size-cells = <0>; 87 + 88 + pmic@8 { 89 + compatible = "nxp,pf1550"; 90 + reg = <0x8>; 91 + 92 + interrupt-parent = <&gpio1>; 93 + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 94 + wakeup-source; 95 + monitored-battery = <&battery>; 96 + nxp,min-system-microvolt = <4300000>; 97 + nxp,thermal-regulation-celsius = <80>; 98 + 99 + regulators { 100 + sw1_reg: sw1 { 101 + regulator-name = "sw1"; 102 + regulator-min-microvolt = <600000>; 103 + regulator-max-microvolt = <1387500>; 104 + regulator-always-on; 105 + regulator-ramp-delay = <6250>; 106 + 107 + regulator-state-mem { 108 + regulator-on-in-suspend; 109 + regulator-suspend-min-microvolt = <1270000>; 110 + }; 111 + }; 112 + 113 + sw2_reg: sw2 { 114 + regulator-name = "sw2"; 115 + regulator-min-microvolt = <600000>; 116 + regulator-max-microvolt = <1387500>; 117 + regulator-always-on; 118 + 119 + regulator-state-mem { 120 + regulator-on-in-suspend; 121 + }; 122 + }; 123 + 124 + sw3_reg: sw3 { 125 + regulator-name = "sw3"; 126 + regulator-min-microvolt = <1800000>; 127 + regulator-max-microvolt = <3300000>; 128 + regulator-always-on; 129 + 130 + regulator-state-mem { 131 + regulator-on-in-suspend; 132 + }; 133 + }; 134 + 135 + vldo1_reg: ldo1 { 136 + regulator-name = "ldo1"; 137 + regulator-min-microvolt = <750000>; 138 + regulator-max-microvolt = <3300000>; 139 + regulator-always-on; 140 + 141 + regulator-state-mem { 142 + regulator-off-in-suspend; 143 + }; 144 + }; 145 + 146 + vldo2_reg: ldo2 { 147 + regulator-name = "ldo2"; 148 + regulator-min-microvolt = <1800000>; 149 + regulator-max-microvolt = <3300000>; 150 + regulator-always-on; 151 + }; 152 + 153 + vldo3_reg: ldo3 { 154 + regulator-name = "ldo3"; 155 + regulator-min-microvolt = <750000>; 156 + regulator-max-microvolt = <3300000>; 157 + regulator-always-on; 158 + }; 159 + }; 160 + }; 161 + };