dt-bindings: Add devicetree bindings

Add snapshot of device tree bindings from keystone common kernel, branch
"android-mainline-keystone-qcom-release" at c4c12103f9c0 ("Snap for 9228065
from e32903b9a63bb558df8b803b076619c53c16baad to
android-mainline-keystone-qcom-release").

Change-Id: I7682079615cbd9f29340a5c1f2a1d84ec441a1f1
Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
This commit is contained in:
Melody Olvera
2023-04-03 14:38:11 -07:00
parent c334acf377
commit 6f18ce8026
4878 changed files with 424312 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
# 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.
allOf:
- $ref: spmi.yaml#
properties:
$nodename:
pattern: "spmi@[0-9a-f]"
compatible:
const: hisilicon,kirin970-spmi-controller
reg:
maxItems: 1
hisilicon,spmi-channel:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
number of the Kirin 970 SPMI channel where the SPMI devices are connected.
required:
- compatible
- reg
- hisilicon,spmi-channel
patternProperties:
"@[0-9a-f]$":
type: object
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
drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml.
unevaluatedProperties: false
examples:
- |
bus {
#address-cells = <2>;
#size-cells = <2>;
spmi: spmi@fff24000 {
compatible = "hisilicon,kirin970-spmi-controller";
#address-cells = <2>;
#size-cells = <0>;
reg = <0x0 0xfff24000 0x0 0x1000>;
hisilicon,spmi-channel = <2>;
pmic@0 {
reg = <0 0>;
/* pmic properties */
};
};
};

View File

@@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/mtk,spmi-mtk-pmif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Mediatek SPMI Controller
maintainers:
- Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
description: |+
On MediaTek SoCs the PMIC is connected via SPMI and the controller allows
for multiple SoCs to control a single SPMI master.
allOf:
- $ref: "spmi.yaml"
properties:
compatible:
enum:
- mediatek,mt6873-spmi
- mediatek,mt8195-spmi
reg:
maxItems: 2
reg-names:
items:
- const: pmif
- const: spmimst
clocks:
minItems: 3
maxItems: 3
clock-names:
items:
- const: pmif_sys_ck
- const: pmif_tmr_ck
- const: spmimst_clk_mux
assigned-clocks:
maxItems: 1
assigned-clock-parents:
maxItems: 1
required:
- compatible
- reg
- reg-names
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/mt8192-clk.h>
spmi: spmi@10027000 {
compatible = "mediatek,mt6873-spmi";
reg = <0x10027000 0xe00>,
<0x10029000 0x100>;
reg-names = "pmif", "spmimst";
clocks = <&infracfg CLK_INFRA_PMIC_AP>,
<&infracfg CLK_INFRA_PMIC_TMR>,
<&topckgen CLK_TOP_SPMI_MST_SEL>;
clock-names = "pmif_sys_ck",
"pmif_tmr_ck",
"spmimst_clk_mux";
assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
};
...

View File

@@ -0,0 +1,117 @@
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/qcom,spmi-pmic-arb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SPMI Controller (PMIC Arbiter)
maintainers:
- Stephen Boyd <sboyd@kernel.org>
description: |
The SPMI PMIC Arbiter is found on Snapdragon chipsets. It is an SPMI
controller with wrapping arbitration logic to allow for multiple on-chip
devices to control a single SPMI master.
The PMIC Arbiter can also act as an interrupt controller, providing interrupts
to slave devices.
allOf:
- $ref: spmi.yaml
properties:
compatible:
const: qcom,spmi-pmic-arb
reg:
oneOf:
- items: # V1
- description: core registers
- description: interrupt controller registers
- description: configuration registers
- items: # V2
- description: core registers
- description: tx-channel per virtual slave regosters
- description: rx-channel (called observer) per virtual slave registers
- description: interrupt controller registers
- description: configuration registers
reg-names:
oneOf:
- items:
- const: core
- const: intr
- const: cnfg
- items:
- const: core
- const: chnls
- const: obsrvr
- const: intr
- const: cnfg
interrupts:
maxItems: 1
interrupt-names:
const: periph_irq
interrupt-controller: true
'#address-cells': true
'#interrupt-cells':
const: 4
description: |
cell 1: slave ID for the requested interrupt (0-15)
cell 2: peripheral ID for requested interrupt (0-255)
cell 3: the requested peripheral interrupt (0-7)
cell 4: interrupt flags indicating level-sense information,
as defined in dt-bindings/interrupt-controller/irq.h
'#size-cells': true
qcom,ee:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 5
description: >
indicates the active Execution Environment identifier
qcom,channel:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 5
description: >
which of the PMIC Arb provided channels to use for accesses
required:
- compatible
- reg-names
- qcom,ee
- qcom,channel
unevaluatedProperties: false
examples:
- |
spmi@fc4cf000 {
compatible = "qcom,spmi-pmic-arb";
reg-names = "core", "intr", "cnfg";
reg = <0xfc4cf000 0x1000>,
<0xfc4cb000 0x1000>,
<0xfc4ca000 0x1000>;
interrupt-names = "periph_irq";
interrupts = <0 190 0>;
qcom,ee = <0>;
qcom,channel = <0>;
#address-cells = <2>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <4>;
};

75
bindings/spmi/spmi.yaml Normal file
View File

@@ -0,0 +1,75 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/spmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: System Power Management Interface (SPMI) Controller
maintainers:
- Stephen Boyd <sboyd@kernel.org>
description: |
The System Power Management (SPMI) controller is a 2-wire bus defined
by the MIPI Alliance for power management control to be used on SoC designs.
SPMI controllers are modelled in device tree using a generic set of
bindings defined here, plus any bus controller specific properties, if
needed.
Each SPMI controller has zero or more child nodes (up to 16 ones), each
one representing an unique slave at the bus.
properties:
$nodename:
pattern: "^spmi@.*"
"#address-cells":
const: 2
"#size-cells":
const: 0
patternProperties:
"@[0-9a-f]$":
description: up to 16 child PMIC nodes
type: object
properties:
reg:
items:
- minItems: 1
items:
- minimum: 0
maximum: 0xf
- enum: [ 0 ]
description:
0 means user ID address. 1 is reserved for group ID
address.
required:
- reg
required:
- reg
additionalProperties: true
examples:
- |
#include <dt-bindings/spmi/spmi.h>
spmi@0 {
reg = <0 0>;
#address-cells = <2>;
#size-cells = <0>;
child@0 {
reg = <0 SPMI_USID>;
};
child@7 {
reg = <7 SPMI_USID>;
};
};