Skip to content

Commit

Permalink
Merge branch 'regulator-4.19' into regulator-next
Browse files Browse the repository at this point in the history
  • Loading branch information
broonie committed Aug 10, 2018
2 parents a8afa92 + 46fc033 commit d22d593
Show file tree
Hide file tree
Showing 49 changed files with 4,163 additions and 269 deletions.
27 changes: 27 additions & 0 deletions Documentation/ABI/testing/sysfs-driver-bd9571mwv-regulator
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
What: /sys/bus/i2c/devices/.../bd9571mwv-regulator.*.auto/backup_mode
Date: Jul 2018
KernelVersion: 4.19
Contact: Geert Uytterhoeven <[email protected]>
Description: Read/write the current state of DDR Backup Mode, which controls
if DDR power rails will be kept powered during system suspend.
("on"/"1" = enabled, "off"/"0" = disabled).
Two types of power switches (or control signals) can be used:
A. With a momentary power switch (or pulse signal), DDR
Backup Mode is enabled by default when available, as the
PMIC will be configured only during system suspend.
B. With a toggle power switch (or level signal), the
following steps must be followed exactly:
1. Configure PMIC for backup mode, to change the role of
the accessory power switch from a power switch to a
wake-up switch,
2. Switch accessory power switch off, to prepare for
system suspend, which is a manual step not controlled
by software,
3. Suspend system,
4. Switch accessory power switch on, to resume the
system.
DDR Backup Mode must be explicitly enabled by the user,
to invoke step 1.
See also Documentation/devicetree/bindings/mfd/bd9571mwv.txt.
Users: User space applications for embedded boards equipped with a
BD9571MWV PMIC.
26 changes: 26 additions & 0 deletions Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
== Introduction==

LLCC (Last Level Cache Controller) provides last level of cache memory in SOC,
that can be shared by multiple clients. Clients here are different cores in the
SOC, the idea is to minimize the local caches at the clients and migrate to
common pool of memory. Cache memory is divided into partitions called slices
which are assigned to clients. Clients can query the slice details, activate
and deactivate them.

Properties:
- compatible:
Usage: required
Value type: <string>
Definition: must be "qcom,sdm845-llcc"

- reg:
Usage: required
Value Type: <prop-encoded-array>
Definition: Start address and the the size of the register region.

Example:

cache-controller@1100000 {
compatible = "qcom,sdm845-llcc";
reg = <0x1100000 0x250000>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Requires node properties:
- "compatible" value one of:
"motorola,cpcap-regulator"
"motorola,mapphone-cpcap-regulator"
"motorola,xoom-cpcap-regulator"

Required regulator properties:
- "regulator-name"
Expand Down
86 changes: 85 additions & 1 deletion Documentation/devicetree/bindings/regulator/pfuze100.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
PFUZE100 family of regulators

Required properties:
- compatible: "fsl,pfuze100", "fsl,pfuze200", "fsl,pfuze3000"
- compatible: "fsl,pfuze100", "fsl,pfuze200", "fsl,pfuze3000", "fsl,pfuze3001"
- reg: I2C slave address

Optional properties:
- fsl,pfuze-support-disable-sw: Boolean, if present disable all unused switch
regulators to save power consumption. Attention, ensure that all important
regulators (e.g. DDR ref, DDR supply) has set the "regulator-always-on"
property. If not present, the switched regualtors are always on and can't be
disabled. This binding is a workaround to keep backward compatibility with
old dtb's which rely on the fact that the switched regulators are always on
and don't mark them explicit as "regulator-always-on".

Required child node:
- regulators: This is the list of child nodes that specify the regulator
initialization data for defined regulators. Please refer to below doc
Expand All @@ -16,6 +25,8 @@ Required child node:
sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6,coin
--PFUZE3000
sw1a,sw1b,sw2,sw3,swbst,vsnvs,vrefddr,vldo1,vldo2,vccsd,v33,vldo3,vldo4
--PFUZE3001
sw1,sw2,sw3,vsnvs,vldo1,vldo2,vccsd,v33,vldo3,vldo4

Each regulator is defined using the standard binding for regulators.

Expand Down Expand Up @@ -303,3 +314,76 @@ Example 3: PFUZE3000
};
};
};

Example 4: PFUZE 3001

pfuze3001: pmic@8 {
compatible = "fsl,pfuze3001";
reg = <0x08>;

regulators {
sw1_reg: sw1 {
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};

sw2_reg: sw2 {
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};

sw3_reg: sw3 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1650000>;
regulator-boot-on;
regulator-always-on;
};

snvs_reg: vsnvs {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
regulator-always-on;
};

vgen1_reg: vldo1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

vgen2_reg: vldo2 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1550000>;
regulator-always-on;
};

vgen3_reg: vccsd {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

vgen4_reg: v33 {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

vgen5_reg: vldo3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

vgen6_reg: vldo4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};
160 changes: 160 additions & 0 deletions Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
Qualcomm Technologies, Inc. RPMh Regulators

rpmh-regulator devices support PMIC regulator management via the Voltage
Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators. The APPS
processor communicates with these hardware blocks via a Resource State
Coordinator (RSC) using command packets. The VRM allows changing three
parameters for a given regulator: enable state, output voltage, and operating
mode. The XOB allows changing only a single parameter for a given regulator:
its enable state. Despite its name, the XOB is capable of controlling the
enable state of any PMIC peripheral. It is used for clock buffers, low-voltage
switches, and LDO/SMPS regulators which have a fixed voltage and mode.

=======================
Required Node Structure
=======================

RPMh regulators must be described in two levels of device nodes. The first
level describes the PMIC containing the regulators and must reside within an
RPMh device node. The second level describes each regulator within the PMIC
which is to be used on the board. Each of these regulators maps to a single
RPMh resource.

The names used for regulator nodes must match those supported by a given PMIC.
Supported regulator node names:
PM8998: smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
PMI8998: bob
PM8005: smps1 - smps4

========================
First Level Nodes - PMIC
========================

- compatible
Usage: required
Value type: <string>
Definition: Must be one of: "qcom,pm8998-rpmh-regulators",
"qcom,pmi8998-rpmh-regulators" or
"qcom,pm8005-rpmh-regulators".

- qcom,pmic-id
Usage: required
Value type: <string>
Definition: RPMh resource name suffix used for the regulators found on
this PMIC. Typical values: "a", "b", "c", "d", "e", "f".

- vdd-s1-supply
- vdd-s2-supply
- vdd-s3-supply
- vdd-s4-supply
Usage: optional (PM8998 and PM8005 only)
Value type: <phandle>
Definition: phandle of the parent supply regulator of one or more of the
regulators for this PMIC.

- vdd-s5-supply
- vdd-s6-supply
- vdd-s7-supply
- vdd-s8-supply
- vdd-s9-supply
- vdd-s10-supply
- vdd-s11-supply
- vdd-s12-supply
- vdd-s13-supply
- vdd-l1-l27-supply
- vdd-l2-l8-l17-supply
- vdd-l3-l11-supply
- vdd-l4-l5-supply
- vdd-l6-supply
- vdd-l7-l12-l14-l15-supply
- vdd-l9-supply
- vdd-l10-l23-l25-supply
- vdd-l13-l19-l21-supply
- vdd-l16-l28-supply
- vdd-l18-l22-supply
- vdd-l20-l24-supply
- vdd-l26-supply
- vin-lvs-1-2-supply
Usage: optional (PM8998 only)
Value type: <phandle>
Definition: phandle of the parent supply regulator of one or more of the
regulators for this PMIC.

- vdd-bob-supply
Usage: optional (PMI8998 only)
Value type: <phandle>
Definition: BOB regulator parent supply phandle

===============================
Second Level Nodes - Regulators
===============================

- qcom,always-wait-for-ack
Usage: optional
Value type: <empty>
Definition: Boolean flag which indicates that the application processor
must wait for an ACK or a NACK from RPMh for every request
sent for this regulator including those which are for a
strictly lower power state.

Other properties defined in Documentation/devicetree/bindings/regulator.txt
may also be used. regulator-initial-mode and regulator-allowed-modes may be
specified for VRM regulators using mode values from
include/dt-bindings/regulator/qcom,rpmh-regulator.h. regulator-allow-bypass
may be specified for BOB type regulators managed via VRM.
regulator-allow-set-load may be specified for LDO type regulators managed via
VRM.

========
Examples
========

#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

&apps_rsc {
pm8998-rpmh-regulators {
compatible = "qcom,pm8998-rpmh-regulators";
qcom,pmic-id = "a";

vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;

smps2 {
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
};

pm8998_s5: smps5 {
regulator-min-microvolt = <1904000>;
regulator-max-microvolt = <2040000>;
};

ldo7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allowed-modes =
<RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
};

lvs1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};

pmi8998-rpmh-regulators {
compatible = "qcom,pmi8998-rpmh-regulators";
qcom,pmic-id = "b";

bob {
regulator-min-microvolt = <3312000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes =
<RPMH_REGULATOR_MODE_AUTO
RPMH_REGULATOR_MODE_HPM>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
};
};
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
ROHM BD71837 Power Management Integrated Circuit (PMIC) regulator bindings

BD71837MWV is a programmable Power Management
IC (PMIC) for powering single-core, dual-core, and
quad-core SoC’s such as NXP-i.MX 8M. It is optimized
for low BOM cost and compact solution footprint. It
integrates 8 Buck regulators and 7 LDO’s to provide all
the power rails required by the SoC and the commonly
used peripherals.

Required properties:
- regulator-name: should be "buck1", ..., "buck8" and "ldo1", ..., "ldo7"

Expand Down
Loading

0 comments on commit d22d593

Please sign in to comment.