Skip to content

Commit

Permalink
dt: document HiSilicon SPMI controller and mfd/regulator properties
Browse files Browse the repository at this point in the history
Add documentation for the properties needed by the HiSilicon
6421v600 driver, and by the SPMI controller used to access
the chipset.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/56c40a260bf31edf7049f50586c63ee0d06e02cb.1597762400.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Mauro Carvalho Chehab authored and Greg Kroah-Hartman committed Aug 18, 2020
1 parent 9f46c34 commit 9e59172
Showing 2 changed files with 221 additions and 0 deletions.
159 changes: 159 additions & 0 deletions drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/hisilicon,hi6421-spmi-pmic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: HiSilicon 6421v600 SPMI PMIC

maintainers:
- Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

description: |
HiSilicon 6421v600 should be connected inside a MIPI System Power Management
(SPMI) bus. It provides interrupts and power supply.
The GPIO and interrupt settings are represented as part of the top-level PMIC
node.
The SPMI controller part is provided by
Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml.
properties:
$nodename:
pattern: "pmic@[0-9a-f]"

compatible:
const: hisilicon,hi6421v600-spmi

reg:
maxItems: 1

'#interrupt-cells':
const: 2

interrupt-controller:
description:
Identify that the PMIC is capable of behaving as an interrupt controller.

gpios:
maxItems: 1

regulators:
type: object

properties:
'#address-cells':
const: 1

'#size-cells':
const: 0

patternProperties:
'^ldo[0-9]+@[0-9a-f]$':
type: object

$ref: "/schemas/regulator/regulator.yaml#"

properties:
reg:
description: Enable register.

'#address-cells':
const: 1

'#size-cells':
const: 0

vsel-reg:
description: Voltage selector register.

enable-mask:
description: Bitmask used to enable the regulator.

voltage-table:
description: Table with the selector items for the voltage regulator.
minItems: 2
maxItems: 16

off-on-delay-us:
description: Time required for changing state to enabled in microseconds.

startup-delay-us:
description: Startup time in microseconds.

idle-mode-mask:
description: Bitmask used to put the regulator on idle mode.

eco-microamp:
description: Maximum current while on idle mode.

required:
- reg
- vsel-reg
- enable-mask
- voltage-table
- off-on-delay-us
- startup-delay-us

required:
- compatible
- reg
- regulators

examples:
- |
/* pmic properties */
pmic: pmic@0 {
compatible = "hisilicon,hi6421-spmi";
reg = <0 0>;
#interrupt-cells = <2>;
interrupt-controller;
gpios = <&gpio28 0 0>;
regulators {
#address-cells = <1>;
#size-cells = <0>;
ldo3: ldo3@16 {
reg = <0x16>;
vsel-reg = <0x51>;
regulator-name = "ldo3";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2000000>;
regulator-boot-on;
enable-mask = <0x01>;
voltage-table = <1500000>, <1550000>, <1600000>, <1650000>,
<1700000>, <1725000>, <1750000>, <1775000>,
<1800000>, <1825000>, <1850000>, <1875000>,
<1900000>, <1925000>, <1950000>, <2000000>;
off-on-delay-us = <20000>;
startup-delay-us = <120>;
};
ldo4: ldo4@17 { /* 40 PIN */
reg = <0x17>;
vsel-reg = <0x52>;
regulator-name = "ldo4";
regulator-min-microvolt = <1725000>;
regulator-max-microvolt = <1900000>;
regulator-boot-on;
enable-mask = <0x01>;
idle-mode-mask = <0x10>;
eco-microamp = <10000>;
hi6421-vsel = <0x52 0x07>;
voltage-table = <1725000>, <1750000>, <1775000>, <1800000>,
<1825000>, <1850000>, <1875000>, <1900000>;
off-on-delay-us = <20000>;
startup-delay-us = <120>;
};
};
};
62 changes: 62 additions & 0 deletions drivers/staging/hikey9xx/hisilicon,hisi-spmi-controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/hisilicon,hisi-spmi-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: HiSilicon SPMI controller

maintainers:
- Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

description: |
The HiSilicon SPMI BUS controller is found on some Kirin-based designs.
It is a MIPI System Power Management (SPMI) controller.
The PMIC part is provided by
Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml.
properties:
$nodename:
pattern: "spmi@[0-9a-f]"

compatible:
const: hisilicon,kirin970-spmi-controller

reg:
maxItems: 1

spmi-channel:
description: |
number of the Kirin 970 SPMI channel where the SPMI devices are connected.
required:
- compatible
- reg
- spmi-channel

patternProperties:
"^pmic@[0-9a-f]$":
description: |
PMIC properties, which are specific to the used SPMI PMIC device(s).
When used in combination with HiSilicon 6421v600, the properties
are documented at
Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml.
examples:
- |
bus {
#address-cells = <2>;
#size-cells = <2>;
spmi: spmi@fff24000 {
compatible = "hisilicon,kirin970-spmi-controller";
status = "ok";
reg = <0x0 0xfff24000 0x0 0x1000>;
spmi-channel = <2>;
pmic@0 {
/* pmic properties */
};
};
};

0 comments on commit 9e59172

Please sign in to comment.