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

dt-bindings: regulator: add PF0900 regulator yaml

Add device binding doc for PF0900 PMIC driver.

Can not get the I2C_CRC_EN config by reading register. If the PMIC
OTP_I2C_CRC_EN is enable, need to add the nxp,i2c-crc-enable property.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
Link: https://patch.msgid.link/20250731-b4-pf09-v2-v3-1-4c2659516582@nxp.com
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Joy Zou and committed by
Mark Brown
82f09079 8f5ae30d

+163
+163
Documentation/devicetree/bindings/regulator/nxp,pf0900.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/regulator/nxp,pf0900.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP PF0900 Power Management Integrated Circuit regulators 8 + 9 + maintainers: 10 + - Joy Zou <joy.zou@nxp.com> 11 + 12 + description: 13 + The PF0900 is a power management integrated circuit (PMIC) optimized 14 + for high performance i.MX9x based applications. It features five high 15 + efficiency buck converters, three linear and one vaon regulators. It 16 + provides low quiescent current in Standby and low power off Modes. 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - nxp,pf0900 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + regulators: 30 + type: object 31 + additionalProperties: false 32 + 33 + properties: 34 + vaon: 35 + type: object 36 + $ref: regulator.yaml# 37 + unevaluatedProperties: false 38 + 39 + patternProperties: 40 + "^ldo[1-3]$": 41 + type: object 42 + $ref: regulator.yaml# 43 + unevaluatedProperties: false 44 + 45 + "^sw[1-5]$": 46 + type: object 47 + $ref: regulator.yaml# 48 + unevaluatedProperties: false 49 + 50 + nxp,i2c-crc-enable: 51 + type: boolean 52 + description: 53 + The CRC enabled during register read/write. Controlled by customer 54 + unviewable fuse bits OTP_I2C_CRC_EN. Check chip part number. 55 + 56 + required: 57 + - compatible 58 + - reg 59 + - interrupts 60 + - regulators 61 + 62 + additionalProperties: false 63 + 64 + examples: 65 + - | 66 + #include <dt-bindings/interrupt-controller/irq.h> 67 + 68 + i2c { 69 + #address-cells = <1>; 70 + #size-cells = <0>; 71 + 72 + pmic@8 { 73 + compatible = "nxp,pf0900"; 74 + reg = <0x08>; 75 + interrupt-parent = <&pcal6524>; 76 + interrupts = <89 IRQ_TYPE_LEVEL_LOW>; 77 + nxp,i2c-crc-enable; 78 + 79 + regulators { 80 + vaon { 81 + regulator-name = "VAON"; 82 + regulator-min-microvolt = <1800000>; 83 + regulator-max-microvolt = <3300000>; 84 + regulator-boot-on; 85 + regulator-always-on; 86 + }; 87 + 88 + sw1 { 89 + regulator-name = "SW1"; 90 + regulator-min-microvolt = <500000>; 91 + regulator-max-microvolt = <3300000>; 92 + regulator-boot-on; 93 + regulator-always-on; 94 + regulator-ramp-delay = <1950>; 95 + regulator-state-mem { 96 + regulator-on-in-suspend; 97 + regulator-suspend-max-microvolt = <650000>; 98 + regulator-suspend-min-microvolt = <650000>; 99 + }; 100 + }; 101 + 102 + sw2 { 103 + regulator-name = "SW2"; 104 + regulator-min-microvolt = <300000>; 105 + regulator-max-microvolt = <3300000>; 106 + regulator-boot-on; 107 + regulator-always-on; 108 + regulator-ramp-delay = <1950>; 109 + }; 110 + 111 + sw3 { 112 + regulator-name = "SW3"; 113 + regulator-min-microvolt = <300000>; 114 + regulator-max-microvolt = <3300000>; 115 + regulator-boot-on; 116 + regulator-always-on; 117 + regulator-ramp-delay = <1950>; 118 + }; 119 + 120 + sw4 { 121 + regulator-name = "SW4"; 122 + regulator-min-microvolt = <300000>; 123 + regulator-max-microvolt = <3300000>; 124 + regulator-boot-on; 125 + regulator-always-on; 126 + regulator-ramp-delay = <1950>; 127 + }; 128 + 129 + sw5 { 130 + regulator-name = "SW5"; 131 + regulator-min-microvolt = <300000>; 132 + regulator-max-microvolt = <3300000>; 133 + regulator-boot-on; 134 + regulator-always-on; 135 + regulator-ramp-delay = <1950>; 136 + }; 137 + 138 + ldo1 { 139 + regulator-name = "LDO1"; 140 + regulator-min-microvolt = <750000>; 141 + regulator-max-microvolt = <3300000>; 142 + regulator-boot-on; 143 + regulator-always-on; 144 + }; 145 + 146 + ldo2 { 147 + regulator-name = "LDO2"; 148 + regulator-min-microvolt = <650000>; 149 + regulator-max-microvolt = <3300000>; 150 + regulator-boot-on; 151 + regulator-always-on; 152 + }; 153 + 154 + ldo3 { 155 + regulator-name = "LDO3"; 156 + regulator-min-microvolt = <650000>; 157 + regulator-max-microvolt = <3300000>; 158 + regulator-boot-on; 159 + regulator-always-on; 160 + }; 161 + }; 162 + }; 163 + };