1 # SPDX-License-Identifier: GPL-2.0-only OR BSD 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/mfd/rohm,bd 4 $id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: ROHM BD71837 Power Management Integrate 7 title: ROHM BD71837 Power Management Integrated Circuit 8 8 9 maintainers: 9 maintainers: 10 - Matti Vaittinen <mazziesaccount@gmail.com> 10 - Matti Vaittinen <mazziesaccount@gmail.com> 11 11 12 description: | 12 description: | 13 BD71837MWV is programmable Power Management 13 BD71837MWV is programmable Power Management ICs for powering single-core, 14 dual-core, and quad-core SoCs such as NXP-i. 14 dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low 15 BOM cost and compact solution footprint. BD7 15 BOM cost and compact solution footprint. BD71837MWV integrates 8 Buck 16 regulators and 7 LDOs. 16 regulators and 7 LDOs. 17 Datasheet for BD71837 is available at 17 Datasheet for BD71837 is available at 18 https://www.rohm.com/products/power-manageme 18 https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product 19 19 20 properties: 20 properties: 21 compatible: 21 compatible: 22 const: rohm,bd71837 22 const: rohm,bd71837 23 23 24 reg: 24 reg: 25 description: 25 description: 26 I2C slave address. 26 I2C slave address. 27 maxItems: 1 27 maxItems: 1 28 28 29 interrupts: 29 interrupts: 30 maxItems: 1 30 maxItems: 1 31 31 32 clocks: 32 clocks: 33 maxItems: 1 33 maxItems: 1 34 34 35 clock-names: 35 clock-names: 36 const: osc 36 const: osc 37 37 38 "#clock-cells": 38 "#clock-cells": 39 const: 0 39 const: 0 40 40 41 clock-output-names: 41 clock-output-names: 42 const: pmic_clk 42 const: pmic_clk 43 43 44 # The BD718x7 supports two different HW states 44 # The BD718x7 supports two different HW states as reset target states. States 45 # are called as SNVS and READY. At READY state 45 # are called as SNVS and READY. At READY state all the PMIC power outputs go 46 # down and OTP is reload. At the SNVS state al 46 # down and OTP is reload. At the SNVS state all other logic and external 47 # devices apart from the SNVS power domain are 47 # devices apart from the SNVS power domain are shut off. Please refer to NXP 48 # i.MX8 documentation for further information 48 # i.MX8 documentation for further information regarding SNVS state. When a 49 # reset is done via SNVS state the PMIC OTP da 49 # reset is done via SNVS state the PMIC OTP data is not reload. This causes 50 # power outputs that have been under SW contro 50 # power outputs that have been under SW control to stay down when reset has 51 # switched power state to SNVS. If reset is do 51 # switched power state to SNVS. If reset is done via READY state the power 52 # outputs will be returned to HW control by OT 52 # outputs will be returned to HW control by OTP loading. Thus the reset 53 # target state is set to READY by default. If 53 # target state is set to READY by default. If SNVS state is used the boot 54 # crucial regulators must have the regulator-a 54 # crucial regulators must have the regulator-always-on and regulator-boot-on 55 # properties set in regulator node. 55 # properties set in regulator node. 56 56 57 rohm,reset-snvs-powered: 57 rohm,reset-snvs-powered: 58 description: | 58 description: | 59 Transfer PMIC to SNVS state at reset 59 Transfer PMIC to SNVS state at reset 60 type: boolean 60 type: boolean 61 61 62 # Configure the "short press" and "long press" 62 # Configure the "short press" and "long press" timers for the power button. 63 # Values are rounded to what hardware supports 63 # Values are rounded to what hardware supports 64 # Short-press: 64 # Short-press: 65 # Shortest being 10ms, next 500ms and then m 65 # Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s 66 # Long-press: 66 # Long-press: 67 # Shortest being 10ms, next 1000ms and then 67 # Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s 68 # If these properties are not present the exis 68 # If these properties are not present the existing configuration (from 69 # bootloader or OTP) is not touched. 69 # bootloader or OTP) is not touched. 70 70 71 rohm,short-press-ms: 71 rohm,short-press-ms: 72 description: 72 description: 73 Short press duration in milliseconds 73 Short press duration in milliseconds 74 enum: 74 enum: 75 - 10 75 - 10 76 - 500 76 - 500 77 - 1000 77 - 1000 78 - 1500 78 - 1500 79 - 2000 79 - 2000 80 - 2500 80 - 2500 81 - 3000 81 - 3000 82 - 3500 82 - 3500 83 - 4000 83 - 4000 84 - 4500 84 - 4500 85 - 5000 85 - 5000 86 - 5500 86 - 5500 87 - 6000 87 - 6000 88 - 6500 88 - 6500 89 - 7000 89 - 7000 90 90 91 rohm,long-press-ms: 91 rohm,long-press-ms: 92 description: 92 description: 93 Long press duration in milliseconds 93 Long press duration in milliseconds 94 enum: 94 enum: 95 - 10 95 - 10 96 - 1000 96 - 1000 97 - 2000 97 - 2000 98 - 3000 98 - 3000 99 - 4000 99 - 4000 100 - 5000 100 - 5000 101 - 6000 101 - 6000 102 - 7000 102 - 7000 103 - 8000 103 - 8000 104 - 9000 104 - 9000 105 - 10000 105 - 10000 106 - 11000 106 - 11000 107 - 12000 107 - 12000 108 - 13000 108 - 13000 109 - 14000 109 - 14000 110 110 111 regulators: 111 regulators: 112 $ref: /schemas/regulator/rohm,bd71837-regu !! 112 $ref: ../regulator/rohm,bd71837-regulator.yaml 113 description: 113 description: 114 List of child nodes that specify the reg 114 List of child nodes that specify the regulators. 115 115 116 required: 116 required: 117 - compatible 117 - compatible 118 - reg 118 - reg 119 - interrupts 119 - interrupts 120 - clocks 120 - clocks 121 - "#clock-cells" 121 - "#clock-cells" 122 - regulators 122 - regulators 123 123 124 additionalProperties: false 124 additionalProperties: false 125 125 126 examples: 126 examples: 127 - | 127 - | 128 #include <dt-bindings/interrupt-controller 128 #include <dt-bindings/interrupt-controller/irq.h> 129 #include <dt-bindings/leds/common.h> 129 #include <dt-bindings/leds/common.h> 130 130 131 i2c { 131 i2c { 132 #address-cells = <1>; 132 #address-cells = <1>; 133 #size-cells = <0>; 133 #size-cells = <0>; 134 pmic: pmic@4b { 134 pmic: pmic@4b { 135 compatible = "rohm,bd71837"; 135 compatible = "rohm,bd71837"; 136 reg = <0x4b>; 136 reg = <0x4b>; 137 interrupt-parent = <&gpio1>; 137 interrupt-parent = <&gpio1>; 138 interrupts = <29 IRQ_TYPE_LEVEL_LO 138 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 139 #clock-cells = <0>; 139 #clock-cells = <0>; 140 clocks = <&osc 0>; 140 clocks = <&osc 0>; 141 rohm,reset-snvs-powered; 141 rohm,reset-snvs-powered; 142 rohm,short-press-ms = <10>; 142 rohm,short-press-ms = <10>; 143 rohm,long-press-ms = <2000>; 143 rohm,long-press-ms = <2000>; 144 144 145 regulators { 145 regulators { 146 buck1: BUCK1 { 146 buck1: BUCK1 { 147 regulator-name = "buck1"; 147 regulator-name = "buck1"; 148 regulator-min-microvolt = 148 regulator-min-microvolt = <700000>; 149 regulator-max-microvolt = 149 regulator-max-microvolt = <1300000>; 150 regulator-boot-on; 150 regulator-boot-on; 151 regulator-always-on; 151 regulator-always-on; 152 regulator-ramp-delay = <12 152 regulator-ramp-delay = <1250>; 153 rohm,dvs-run-voltage = <90 153 rohm,dvs-run-voltage = <900000>; 154 rohm,dvs-idle-voltage = <8 154 rohm,dvs-idle-voltage = <850000>; 155 rohm,dvs-suspend-voltage = 155 rohm,dvs-suspend-voltage = <800000>; 156 }; 156 }; 157 buck2: BUCK2 { 157 buck2: BUCK2 { 158 regulator-name = "buck2"; 158 regulator-name = "buck2"; 159 regulator-min-microvolt = 159 regulator-min-microvolt = <700000>; 160 regulator-max-microvolt = 160 regulator-max-microvolt = <1300000>; 161 regulator-boot-on; 161 regulator-boot-on; 162 regulator-always-on; 162 regulator-always-on; 163 regulator-ramp-delay = <12 163 regulator-ramp-delay = <1250>; 164 rohm,dvs-run-voltage = <10 164 rohm,dvs-run-voltage = <1000000>; 165 rohm,dvs-idle-voltage = <9 165 rohm,dvs-idle-voltage = <900000>; 166 }; 166 }; 167 buck3: BUCK3 { 167 buck3: BUCK3 { 168 regulator-name = "buck3"; 168 regulator-name = "buck3"; 169 regulator-min-microvolt = 169 regulator-min-microvolt = <700000>; 170 regulator-max-microvolt = 170 regulator-max-microvolt = <1300000>; 171 regulator-boot-on; 171 regulator-boot-on; 172 rohm,dvs-run-voltage = <10 172 rohm,dvs-run-voltage = <1000000>; 173 }; 173 }; 174 buck4: BUCK4 { 174 buck4: BUCK4 { 175 regulator-name = "buck4"; 175 regulator-name = "buck4"; 176 regulator-min-microvolt = 176 regulator-min-microvolt = <700000>; 177 regulator-max-microvolt = 177 regulator-max-microvolt = <1300000>; 178 regulator-boot-on; 178 regulator-boot-on; 179 rohm,dvs-run-voltage = <10 179 rohm,dvs-run-voltage = <1000000>; 180 }; 180 }; 181 buck5: BUCK5 { 181 buck5: BUCK5 { 182 regulator-name = "buck5"; 182 regulator-name = "buck5"; 183 regulator-min-microvolt = 183 regulator-min-microvolt = <700000>; 184 regulator-max-microvolt = 184 regulator-max-microvolt = <1350000>; 185 regulator-boot-on; 185 regulator-boot-on; 186 }; 186 }; 187 buck6: BUCK6 { 187 buck6: BUCK6 { 188 regulator-name = "buck6"; 188 regulator-name = "buck6"; 189 regulator-min-microvolt = 189 regulator-min-microvolt = <3000000>; 190 regulator-max-microvolt = 190 regulator-max-microvolt = <3300000>; 191 regulator-boot-on; 191 regulator-boot-on; 192 }; 192 }; 193 buck7: BUCK7 { 193 buck7: BUCK7 { 194 regulator-name = "buck7"; 194 regulator-name = "buck7"; 195 regulator-min-microvolt = 195 regulator-min-microvolt = <1605000>; 196 regulator-max-microvolt = 196 regulator-max-microvolt = <1995000>; 197 regulator-boot-on; 197 regulator-boot-on; 198 }; 198 }; 199 buck8: BUCK8 { 199 buck8: BUCK8 { 200 regulator-name = "buck8"; 200 regulator-name = "buck8"; 201 regulator-min-microvolt = 201 regulator-min-microvolt = <800000>; 202 regulator-max-microvolt = 202 regulator-max-microvolt = <1400000>; 203 }; 203 }; 204 204 205 ldo1: LDO1 { 205 ldo1: LDO1 { 206 regulator-name = "ldo1"; 206 regulator-name = "ldo1"; 207 regulator-min-microvolt = 207 regulator-min-microvolt = <3000000>; 208 regulator-max-microvolt = 208 regulator-max-microvolt = <3300000>; 209 regulator-boot-on; 209 regulator-boot-on; 210 }; 210 }; 211 ldo2: LDO2 { 211 ldo2: LDO2 { 212 regulator-name = "ldo2"; 212 regulator-name = "ldo2"; 213 regulator-min-microvolt = 213 regulator-min-microvolt = <900000>; 214 regulator-max-microvolt = 214 regulator-max-microvolt = <900000>; 215 regulator-boot-on; 215 regulator-boot-on; 216 }; 216 }; 217 ldo3: LDO3 { 217 ldo3: LDO3 { 218 regulator-name = "ldo3"; 218 regulator-name = "ldo3"; 219 regulator-min-microvolt = 219 regulator-min-microvolt = <1800000>; 220 regulator-max-microvolt = 220 regulator-max-microvolt = <3300000>; 221 }; 221 }; 222 ldo4: LDO4 { 222 ldo4: LDO4 { 223 regulator-name = "ldo4"; 223 regulator-name = "ldo4"; 224 regulator-min-microvolt = 224 regulator-min-microvolt = <900000>; 225 regulator-max-microvolt = 225 regulator-max-microvolt = <1800000>; 226 }; 226 }; 227 ldo5: LDO5 { 227 ldo5: LDO5 { 228 regulator-name = "ldo5"; 228 regulator-name = "ldo5"; 229 regulator-min-microvolt = 229 regulator-min-microvolt = <1800000>; 230 regulator-max-microvolt = 230 regulator-max-microvolt = <3300000>; 231 }; 231 }; 232 ldo6: LDO6 { 232 ldo6: LDO6 { 233 regulator-name = "ldo6"; 233 regulator-name = "ldo6"; 234 regulator-min-microvolt = 234 regulator-min-microvolt = <900000>; 235 regulator-max-microvolt = 235 regulator-max-microvolt = <1800000>; 236 }; 236 }; 237 ldo7_reg: LDO7 { 237 ldo7_reg: LDO7 { 238 regulator-name = "ldo7"; 238 regulator-name = "ldo7"; 239 regulator-min-microvolt = 239 regulator-min-microvolt = <1800000>; 240 regulator-max-microvolt = 240 regulator-max-microvolt = <3300000>; 241 }; 241 }; 242 }; 242 }; 243 }; 243 }; 244 }; 244 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.