regulator: max77851: add max77851 regulator driver

Bug 200749982

Change-Id: I8bbc914b7aa93058e4ec116fb3eb5b6d3eb74606
Signed-off-by: Shubhi Garg <shgarg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2595372
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2946283
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Shubhi Garg
2021-09-16 16:06:09 +05:30
committed by mobile promotions
parent 3006e5b42f
commit 0acac0ee77
4 changed files with 1091 additions and 1 deletions

View File

@@ -0,0 +1,239 @@
# SPDX-License-Identifier: GPL-2.0-only
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/regulator-max77851.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MAX77851 Power management IC Regulator
maintainers:
- Joan Na<Joan.na@maximintegrated.com>
- Shubhi Garg <shgarg@nvidia.com>
description: |
Regulator DT binding for MAX77851 Power management IC from Maxim Semiconductor.
properties:
maxim,out-voltage-range:
$ref: "/schemas/types.yaml#/definitions/uint32"
description:
Output Voltage Range
enabled/disabled when system is in active state.
Valid values are:
- MAX77620_FPS_SRC_0,
FPS source is FPS0.
- MAX77620_FPS_SRC_1,
FPS source is FPS1
- MAX77620_FPS_SRC_2 and
FPS source is FPS2
- MAX77620_FPS_SRC_NONE.
Regulator is not controlled
by FPS events and it gets
enabled/disabled by register
access.
Absence of this property will leave
the FPS configuration register for that
regulator to default configuration.
maxim,fps-user-setting-enable:
$ref: /schemas/types.yaml#/definitions/flag
using default setting (OTP/SHADOW)
maxim,regulator-dvs-mode-enable:
$ref: /schemas/types.yaml#/definitions/flag
DVS Mode Enable
the regulator get disabled when master
FPS input event set to LOW.
Valid values are 0 to 7.
This is applicable if FPS source is
selected as FPS0, FPS1 or FPS2.
maxim,regulator-dvs-voltage:
$ref: "/schemas/types.yaml#/definitions/uint32"
VOUT0/VOUT1 Voltage array
maxim,pu-slot:
$ref: "/schemas/types.yaml#/definitions/uint32"
FPS Power-Up Slot
Valid values are 0 to F.
maxim,pd-slot:
$ref: "/schemas/types.yaml#/definitions/uint32"
FPS Power-Down Slot
Valid values are 0 to F.
maxim,slpx-slot:
$ref: "/schemas/types.yaml#/definitions/uint32"
FPS Sleep Exit Slot
Valid values are 0 to F.
maxim,slpy-slot:
$ref: "/schemas/types.yaml#/definitions/uint32"
FPS Sleep Enter Slot
Valid values are 0 to F.
examples:
- |
#include <dt-bindings/mfd/max77851.h>
...
max77851: max77851@3c {
regulators {
max77851_ldo0: ldo0 {
...
#maxim,fps-default-enable;
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pu-slot = <MAX77851_FPS_SLOT_5>;
maxim,pd-slot = <MAX77851_FPS_SLOT_7>;
};
max77851_ldo1: ldo1 {
...
maxim,fps-user-setting-enable;
maxim,regulator-dvs-mode-enable;
/*
* 0x38(56h) : 0.75V
* 0x30(48h) : 0.70V
*/
maxim,regulator-dvs-voltage = <0x38>, <0x30>;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_2>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_2>;
maxim,pu-slot = <MAX77851_FPS_SLOT_1>;
maxim,pd-slot = <MAX77851_FPS_SLOT_2>;
};
max77851_ldo2: ldo2 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slot = <MAX77851_FPS_SLOT_8>;
maxim,slpx-slot = <MAX77851_FPS_SLOT_2>;
maxim,slpy-slot = <MAX77851_FPS_SLOT_5>;
};
max77851_ldo3: ldo3 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slot = <MAX77851_FPS_SLOT_8>;
maxim,slpx-slot = <MAX77851_FPS_SLOT_2>;
maxim,slpy-slot = <MAX77851_FPS_SLOT_5>;
};
max77851_ldo4: ldo4 {
...
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slot = <MAX77851_FPS_SLOT_8>;
};
max77851_ldo5: ldo5 {
...
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slot = <MAX77851_FPS_SLOT_8>;
};
max77851_ldo6: ldo6 {
...
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_0>;
maxim,pd-slot = <MAX77851_FPS_SLOT_8>;
};
max77851_buck0: buck0 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pu-slot = <MAX77851_FPS_SLOT_6>;
maxim,pd-slot = <MAX77851_FPS_SLOT_6>;
};
max77851_buck1: buck1 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pu-slot = <MAX77851_FPS_SLOT_6>;
maxim,pd-slot = <MAX77851_FPS_SLOT_6>;
};
max77851_buck2: buck2 {
...
maxim,fps-user-setting-enable;
maxim,regulator-dvs-mode-enable;
/*
* 0x50(80h) : 0.50V
* 0x3C(60h) : 0.45V
*/
maxim,regulator-dvs-voltage = <0x50>, <0x3C>;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_LOW>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_1>;
maxim,pu-slot = <MAX77851_FPS_SLOT_7>;
maxim,pd-slot = <MAX77851_FPS_SLOT_7>;
maxim,slpx-slot = <MAX77851_FPS_SLOT_3>;
maxim,slpy-slot = <MAX77851_FPS_SLOT_3>;
};
max77851_buck3: buck3 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_MID>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pu-slot = <MAX77851_FPS_SLOT_0>;
maxim,pd-slot = <MAX77851_FPS_SLOT_2>;
};
max77851_buck4: buck4 {
...
maxim,fps-user-setting-enable;
maxim,out-voltage-range = <MAX77851_VOUT_RNG_MID>;
maxim,pu-slpx-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pd-slpy-master-slot = <MAX77851_FPS_MASTER_SLOT_3>;
maxim,pu-slot = <MAX77851_FPS_SLOT_2>;
maxim,pd-slot = <MAX77851_FPS_SLOT_3>;
};
};
};
...