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:
85
bindings/mfd/88pm860x.txt
Normal file
85
bindings/mfd/88pm860x.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
* Marvell 88PM860x Power Management IC
|
||||
|
||||
Required parent device properties:
|
||||
- compatible : "marvell,88pm860x"
|
||||
- reg : the I2C slave address for the 88pm860x chip
|
||||
- interrupts : IRQ line for the 88pm860x chip
|
||||
- interrupt-controller: describes the 88pm860x as an interrupt controller (has its own domain)
|
||||
- #interrupt-cells : should be 1.
|
||||
- The cell is the 88pm860x local IRQ number
|
||||
|
||||
Optional parent device properties:
|
||||
- marvell,88pm860x-irq-read-clr: inicates whether interrupt status is cleared by read
|
||||
- marvell,88pm860x-slave-addr: 88pm860x are two chips solution. <reg> stores the I2C address
|
||||
of one chip, and this property stores the I2C address of
|
||||
another chip.
|
||||
|
||||
88pm860x consists of a large and varied group of sub-devices:
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
88pm860x-onkey : : On key
|
||||
88pm860x-rtc : : RTC
|
||||
88pm8607 : : Regulators
|
||||
88pm860x-backlight : : Backlight
|
||||
88pm860x-led : : Led
|
||||
88pm860x-touch : : Touchscreen
|
||||
|
||||
Example:
|
||||
|
||||
pmic: 88pm860x@34 {
|
||||
compatible = "marvell,88pm860x";
|
||||
reg = <0x34>;
|
||||
interrupts = <4>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
marvell,88pm860x-irq-read-clr;
|
||||
marvell,88pm860x-slave-addr = <0x11>;
|
||||
|
||||
regulators {
|
||||
BUCK1 {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
LDO1 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
rtc {
|
||||
marvell,88pm860x-vrtc = <1>;
|
||||
};
|
||||
touch {
|
||||
marvell,88pm860x-gpadc-prebias = <1>;
|
||||
marvell,88pm860x-gpadc-slot-cycle = <1>;
|
||||
marvell,88pm860x-tsi-prebias = <6>;
|
||||
marvell,88pm860x-pen-prebias = <16>;
|
||||
marvell,88pm860x-pen-prechg = <2>;
|
||||
marvell,88pm860x-resistor-X = <300>;
|
||||
};
|
||||
backlights {
|
||||
backlight-0 {
|
||||
marvell,88pm860x-iset = <4>;
|
||||
marvell,88pm860x-pwm = <3>;
|
||||
};
|
||||
backlight-2 {
|
||||
};
|
||||
};
|
||||
leds {
|
||||
led0-red {
|
||||
marvell,88pm860x-iset = <12>;
|
||||
};
|
||||
led0-green {
|
||||
marvell,88pm860x-iset = <12>;
|
||||
};
|
||||
led0-blue {
|
||||
marvell,88pm860x-iset = <12>;
|
||||
};
|
||||
};
|
||||
};
|
82
bindings/mfd/act8945a.txt
Normal file
82
bindings/mfd/act8945a.txt
Normal file
@@ -0,0 +1,82 @@
|
||||
Device-Tree bindings for Active-semi ACT8945A MFD driver
|
||||
|
||||
Required properties:
|
||||
- compatible: "active-semi,act8945a".
|
||||
- reg: the I2C slave address for the ACT8945A chip
|
||||
|
||||
The chip exposes two subdevices:
|
||||
- a regulators: see ../regulator/act8945a-regulator.txt
|
||||
- a charger: see ../power/act8945a-charger.txt
|
||||
|
||||
Example:
|
||||
pmic@5b {
|
||||
compatible = "active-semi,act8945a";
|
||||
reg = <0x5b>;
|
||||
|
||||
active-semi,vsel-high;
|
||||
|
||||
regulators {
|
||||
vdd_1v35_reg: REG_DCDC1 {
|
||||
regulator-name = "VDD_1V35";
|
||||
regulator-min-microvolt = <1350000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_1v2_reg: REG_DCDC2 {
|
||||
regulator-name = "VDD_1V2";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_3v3_reg: REG_DCDC3 {
|
||||
regulator-name = "VDD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_fuse_reg: REG_LDO1 {
|
||||
regulator-name = "VDD_FUSE";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_3v3_lp_reg: REG_LDO2 {
|
||||
regulator-name = "VDD_3V3_LP";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_led_reg: REG_LDO3 {
|
||||
regulator-name = "VDD_LED";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_sdhc_1v8_reg: REG_LDO4 {
|
||||
regulator-name = "VDD_SDHC_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "active-semi,act8945a-charger";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
|
||||
interrupt-parent = <&pioA>;
|
||||
interrupts = <45 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
|
||||
active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
|
||||
active-semi,input-voltage-threshold-microvolt = <6600>;
|
||||
active-semi,precondition-timeout = <40>;
|
||||
active-semi,total-timeout = <3>;
|
||||
};
|
||||
};
|
183
bindings/mfd/actions,atc260x.yaml
Normal file
183
bindings/mfd/actions,atc260x.yaml
Normal file
@@ -0,0 +1,183 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Actions Semi ATC260x Power Management IC bindings
|
||||
|
||||
maintainers:
|
||||
- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
- Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
|
||||
|
||||
description: |
|
||||
ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
|
||||
and GPIO controller blocks. Currently only the PM related functionalities
|
||||
(i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
|
||||
chip variants are supported.
|
||||
ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
|
||||
regulators and 1 fixed LDO regulator.
|
||||
ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
|
||||
regulators.
|
||||
|
||||
allOf:
|
||||
- $ref: ../input/input.yaml
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- actions,atc2603c
|
||||
- actions,atc2609a
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reset-time-sec:
|
||||
description: |
|
||||
Duration in seconds which the key should be kept pressed for device
|
||||
to reset automatically. The hardware default is 8. Use 0 to disable
|
||||
this functionality.
|
||||
enum: [0, 6, 8, 10, 12]
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
description: |
|
||||
List of child nodes specifying the regulators, depending on chip variant:
|
||||
* ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
|
||||
* ATC2609A: dcdc[0-4], ldo[0-9]
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- actions,atc2603c-regulator
|
||||
- actions,atc2609a-regulator
|
||||
|
||||
switchldo1:
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml
|
||||
|
||||
properties:
|
||||
regulator-name: true
|
||||
regulator-boot-on: true
|
||||
regulator-always-on: true
|
||||
regulator-min-microvolt: true
|
||||
regulator-max-microvolt: true
|
||||
regulator-allow-bypass: true
|
||||
regulator-active-discharge: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
"^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
|
||||
description: ATC260x voltage regulators supplies
|
||||
|
||||
"^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml
|
||||
|
||||
properties:
|
||||
regulator-name: true
|
||||
regulator-boot-on: true
|
||||
regulator-always-on: true
|
||||
regulator-min-microvolt: true
|
||||
regulator-max-microvolt: true
|
||||
regulator-allow-bypass: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: actions,atc2603c-regulator
|
||||
then:
|
||||
patternProperties:
|
||||
"^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
|
||||
|
||||
"^(ldo|dcdc)":
|
||||
properties:
|
||||
regulator-allow-bypass: false
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: actions,atc2609a-regulator
|
||||
then:
|
||||
patternProperties:
|
||||
"^(ldo1[1-2]|switchldo1)(-supply)?$": false
|
||||
|
||||
"^(dcdc|ldo[3-9])":
|
||||
properties:
|
||||
regulator-allow-bypass: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@65 {
|
||||
compatible = "actions,atc2603c";
|
||||
reg = <0x65>;
|
||||
interrupt-parent = <&sirq>;
|
||||
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
reset-time-sec = <6>;
|
||||
|
||||
regulators {
|
||||
compatible = "actions,atc2603c-regulator";
|
||||
|
||||
dcdc1-supply = <®_5v0>;
|
||||
dcdc3-supply = <®_5v0>;
|
||||
ldo5-supply = <®_5v0>;
|
||||
switchldo1-supply = <&vcc>;
|
||||
|
||||
vdd_cpu: dcdc1 {
|
||||
regulator-name = "VDD_CPU";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc: dcdc3 {
|
||||
regulator-name = "VCC";
|
||||
regulator-min-microvolt = <2600000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_3v1: ldo5 {
|
||||
regulator-name = "VCC_3V1";
|
||||
regulator-min-microvolt = <2600000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
sd_vcc: switchldo1 {
|
||||
regulator-name = "SD_VCC";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
76
bindings/mfd/allwinner,sun4i-a10-ts.yaml
Normal file
76
bindings/mfd/allwinner,sun4i-a10-ts.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/allwinner,sun4i-a10-ts.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 Resistive Touchscreen Controller
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#thermal-sensor-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun4i-a10-ts
|
||||
- allwinner,sun5i-a13-ts
|
||||
- allwinner,sun6i-a31-ts
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
allwinner,ts-attached:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: A touchscreen is attached to the controller
|
||||
|
||||
allwinner,tp-sensitive-adjust:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 15
|
||||
|
||||
description: Sensitivity of pen down detection
|
||||
|
||||
allwinner,filter-type:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 1
|
||||
|
||||
description: |
|
||||
Select median and averaging filter. Sample used for median /
|
||||
averaging filter:
|
||||
0: 4/2
|
||||
1: 5/3
|
||||
2: 8/4
|
||||
3: 16/8
|
||||
|
||||
required:
|
||||
- "#thermal-sensor-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
rtp: rtp@1c25000 {
|
||||
compatible = "allwinner,sun4i-a10-ts";
|
||||
reg = <0x01c25000 0x100>;
|
||||
interrupts = <29>;
|
||||
allwinner,ts-attached;
|
||||
#thermal-sensor-cells = <0>;
|
||||
/* sensitive/noisy touch panel */
|
||||
allwinner,tp-sensitive-adjust = <0>;
|
||||
allwinner,filter-type = <3>;
|
||||
};
|
||||
|
||||
...
|
259
bindings/mfd/allwinner,sun6i-a31-prcm.yaml
Normal file
259
bindings/mfd/allwinner,sun6i-a31-prcm.yaml
Normal file
@@ -0,0 +1,259 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A31 PRCM
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
deprecated: true
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun6i-a31-prcm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^.*_(clk|rst)$":
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun4i-a10-mod0-clk
|
||||
- allwinner,sun6i-a31-apb0-clk
|
||||
- allwinner,sun6i-a31-apb0-gates-clk
|
||||
- allwinner,sun6i-a31-ar100-clk
|
||||
- allwinner,sun6i-a31-clock-reset
|
||||
- fixed-factor-clock
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fixed-factor-clock
|
||||
|
||||
then:
|
||||
$ref: /schemas/clock/fixed-factor-clock.yaml#
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun4i-a10-mod0-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun6i-a31-apb0-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun6i-a31-apb0-gates-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 1
|
||||
description: >
|
||||
This additional argument passed to that clock is the
|
||||
offset of the bit controlling this particular gate in
|
||||
the register.
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun6i-a31-ar100-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 4
|
||||
description: >
|
||||
The parent order must match the hardware programming
|
||||
order.
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun6i-a31-clock-reset
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#reset-cells":
|
||||
const: 1
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#reset-cells"
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/sun6i-a31-ccu.h>
|
||||
|
||||
prcm@1f01400 {
|
||||
compatible = "allwinner,sun6i-a31-prcm";
|
||||
reg = <0x01f01400 0x200>;
|
||||
|
||||
ar100: ar100_clk {
|
||||
compatible = "allwinner,sun6i-a31-ar100-clk";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&rtc 0>, <&osc24M>,
|
||||
<&ccu CLK_PLL_PERIPH>,
|
||||
<&ccu CLK_PLL_PERIPH>;
|
||||
clock-output-names = "ar100";
|
||||
};
|
||||
|
||||
ahb0: ahb0_clk {
|
||||
compatible = "fixed-factor-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-div = <1>;
|
||||
clock-mult = <1>;
|
||||
clocks = <&ar100>;
|
||||
clock-output-names = "ahb0";
|
||||
};
|
||||
|
||||
apb0: apb0_clk {
|
||||
compatible = "allwinner,sun6i-a31-apb0-clk";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&ahb0>;
|
||||
clock-output-names = "apb0";
|
||||
};
|
||||
|
||||
apb0_gates: apb0_gates_clk {
|
||||
compatible = "allwinner,sun6i-a31-apb0-gates-clk";
|
||||
#clock-cells = <1>;
|
||||
clocks = <&apb0>;
|
||||
clock-output-names = "apb0_pio", "apb0_ir",
|
||||
"apb0_timer", "apb0_p2wi",
|
||||
"apb0_uart", "apb0_1wire",
|
||||
"apb0_i2c";
|
||||
};
|
||||
|
||||
ir_clk: ir_clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "allwinner,sun4i-a10-mod0-clk";
|
||||
clocks = <&rtc 0>, <&osc24M>;
|
||||
clock-output-names = "ir";
|
||||
};
|
||||
|
||||
apb0_rst: apb0_rst {
|
||||
compatible = "allwinner,sun6i-a31-clock-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
210
bindings/mfd/allwinner,sun8i-a23-prcm.yaml
Normal file
210
bindings/mfd/allwinner,sun8i-a23-prcm.yaml
Normal file
@@ -0,0 +1,210 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/allwinner,sun8i-a23-prcm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A23 PRCM
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
deprecated: true
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun8i-a23-prcm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^.*(clk|rst|codec).*$":
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fixed-factor-clock
|
||||
- allwinner,sun8i-a23-apb0-clk
|
||||
- allwinner,sun8i-a23-apb0-gates-clk
|
||||
- allwinner,sun6i-a31-clock-reset
|
||||
- allwinner,sun8i-a23-codec-analog
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fixed-factor-clock
|
||||
|
||||
then:
|
||||
$ref: /schemas/clock/fixed-factor-clock.yaml#
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun8i-a23-apb0-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun8i-a23-apb0-gates-clk
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#clock-cells":
|
||||
const: 1
|
||||
description: >
|
||||
This additional argument passed to that clock is the
|
||||
offset of the bit controlling this particular gate in
|
||||
the register.
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun6i-a31-clock-reset
|
||||
|
||||
then:
|
||||
properties:
|
||||
"#reset-cells":
|
||||
const: 1
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#reset-cells"
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun8i-a23-codec-analog
|
||||
|
||||
then:
|
||||
properties:
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
prcm@1f01400 {
|
||||
compatible = "allwinner,sun8i-a23-prcm";
|
||||
reg = <0x01f01400 0x200>;
|
||||
|
||||
ar100: ar100_clk {
|
||||
compatible = "fixed-factor-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-div = <1>;
|
||||
clock-mult = <1>;
|
||||
clocks = <&osc24M>;
|
||||
clock-output-names = "ar100";
|
||||
};
|
||||
|
||||
ahb0: ahb0_clk {
|
||||
compatible = "fixed-factor-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-div = <1>;
|
||||
clock-mult = <1>;
|
||||
clocks = <&ar100>;
|
||||
clock-output-names = "ahb0";
|
||||
};
|
||||
|
||||
apb0: apb0_clk {
|
||||
compatible = "allwinner,sun8i-a23-apb0-clk";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&ahb0>;
|
||||
clock-output-names = "apb0";
|
||||
};
|
||||
|
||||
apb0_gates: apb0_gates_clk {
|
||||
compatible = "allwinner,sun8i-a23-apb0-gates-clk";
|
||||
#clock-cells = <1>;
|
||||
clocks = <&apb0>;
|
||||
clock-output-names = "apb0_pio", "apb0_timer",
|
||||
"apb0_rsb", "apb0_uart",
|
||||
"apb0_i2c";
|
||||
};
|
||||
|
||||
apb0_rst: apb0_rst {
|
||||
compatible = "allwinner,sun6i-a31-clock-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
codec_analog: codec-analog {
|
||||
compatible = "allwinner,sun8i-a23-codec-analog";
|
||||
};
|
||||
};
|
||||
|
||||
...
|
56
bindings/mfd/altera-a10sr.txt
Normal file
56
bindings/mfd/altera-a10sr.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
* Altera Arria10 Development Kit System Resource Chip
|
||||
|
||||
Required parent device properties:
|
||||
- compatible : "altr,a10sr"
|
||||
- spi-max-frequency : Maximum SPI frequency.
|
||||
- reg : The SPI Chip Select address for the Arria10
|
||||
System Resource chip
|
||||
- interrupts : The interrupt line the device is connected to.
|
||||
- interrupt-controller : Marks the device node as an interrupt controller.
|
||||
- #interrupt-cells : The number of cells to describe an IRQ, should be 2.
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as trigger
|
||||
masks from ../interrupt-controller/interrupts.txt.
|
||||
|
||||
The A10SR consists of these sub-devices:
|
||||
|
||||
Device Description
|
||||
------ ----------
|
||||
a10sr_gpio GPIO Controller
|
||||
a10sr_rst Reset Controller
|
||||
|
||||
Arria10 GPIO
|
||||
Required Properties:
|
||||
- compatible : Should be "altr,a10sr-gpio"
|
||||
- gpio-controller : Marks the device node as a GPIO Controller.
|
||||
- #gpio-cells : Should be two. The first cell is the pin number and
|
||||
the second cell is used to specify flags.
|
||||
See ../gpio/gpio.txt for more information.
|
||||
|
||||
Arria10 Peripheral PHY Reset
|
||||
Required Properties:
|
||||
- compatible : Should be "altr,a10sr-reset"
|
||||
- #reset-cells : Should be one.
|
||||
|
||||
Example:
|
||||
|
||||
resource-manager@0 {
|
||||
compatible = "altr,a10sr";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <100000>;
|
||||
interrupt-parent = <&portb>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
a10sr_gpio: gpio-controller {
|
||||
compatible = "altr,a10sr-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
a10sr_rst: reset-controller {
|
||||
compatible = "altr,a10sr-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
73
bindings/mfd/as3711.txt
Normal file
73
bindings/mfd/as3711.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
AS3711 is an I2C PMIC from Austria MicroSystems with multiple DCDC and LDO power
|
||||
supplies, a battery charger and an RTC. So far only bindings for the two stepup
|
||||
DCDC converters are defined. Other DCDC and LDO supplies are configured, using
|
||||
standard regulator properties, they must belong to a sub-node, called
|
||||
"regulators" and be called "sd1" to "sd4" and "ldo1" to "ldo8." Stepup converter
|
||||
configuration should be placed in a subnode, called "backlight."
|
||||
|
||||
Compulsory properties:
|
||||
- compatible : must be "ams,as3711"
|
||||
- reg : specifies the I2C address
|
||||
|
||||
To use the SU1 converter as a backlight source the following two properties must
|
||||
be provided:
|
||||
- su1-dev : framebuffer phandle
|
||||
- su1-max-uA : maximum current
|
||||
|
||||
To use the SU2 converter as a backlight source the following two properties must
|
||||
be provided:
|
||||
- su2-dev : framebuffer phandle
|
||||
- su1-max-uA : maximum current
|
||||
|
||||
Additionally one of these properties must be provided to select the type of
|
||||
feedback used:
|
||||
- su2-feedback-voltage : voltage feedback is used
|
||||
- su2-feedback-curr1 : CURR1 input used for current feedback
|
||||
- su2-feedback-curr2 : CURR2 input used for current feedback
|
||||
- su2-feedback-curr3 : CURR3 input used for current feedback
|
||||
- su2-feedback-curr-auto: automatic current feedback selection
|
||||
|
||||
and one of these to select the over-voltage protection pin
|
||||
- su2-fbprot-lx-sd4 : LX_SD4 is used for over-voltage protection
|
||||
- su2-fbprot-gpio2 : GPIO2 is used for over-voltage protection
|
||||
- su2-fbprot-gpio3 : GPIO3 is used for over-voltage protection
|
||||
- su2-fbprot-gpio4 : GPIO4 is used for over-voltage protection
|
||||
|
||||
If "su2-feedback-curr-auto" is selected, one or more of the following properties
|
||||
have to be specified:
|
||||
- su2-auto-curr1 : use CURR1 input for current feedback
|
||||
- su2-auto-curr2 : use CURR2 input for current feedback
|
||||
- su2-auto-curr3 : use CURR3 input for current feedback
|
||||
|
||||
Example:
|
||||
|
||||
as3711@40 {
|
||||
compatible = "ams,as3711";
|
||||
reg = <0x40>;
|
||||
|
||||
regulators {
|
||||
sd4 {
|
||||
regulator-name = "1.215V";
|
||||
regulator-min-microvolt = <1215000>;
|
||||
regulator-max-microvolt = <1235000>;
|
||||
};
|
||||
ldo2 {
|
||||
regulator-name = "2.8V CPU";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "ams,as3711-bl";
|
||||
su2-dev = <&lcdc>;
|
||||
su2-max-uA = <36000>;
|
||||
su2-feedback-curr-auto;
|
||||
su2-fbprot-gpio4;
|
||||
su2-auto-curr1;
|
||||
su2-auto-curr2;
|
||||
su2-auto-curr3;
|
||||
};
|
||||
};
|
214
bindings/mfd/as3722.txt
Normal file
214
bindings/mfd/as3722.txt
Normal file
@@ -0,0 +1,214 @@
|
||||
* ams AS3722 Power management IC.
|
||||
|
||||
Required properties:
|
||||
-------------------
|
||||
- compatible: Must be "ams,as3722".
|
||||
- reg: I2C device address.
|
||||
- interrupt-controller: AS3722 has internal interrupt controller which takes the
|
||||
interrupt request from internal sub-blocks like RTC, regulators, GPIOs as well
|
||||
as external input.
|
||||
- #interrupt-cells: Should be set to 2 for IRQ number and flags.
|
||||
The first cell is the IRQ number. IRQ numbers for different interrupt source
|
||||
of AS3722 are defined at dt-bindings/mfd/as3722.h
|
||||
The second cell is the flags, encoded as the trigger masks from binding document
|
||||
interrupts.txt, using dt-bindings/irq.
|
||||
|
||||
Optional properties:
|
||||
--------------------
|
||||
- ams,enable-internal-int-pullup: Boolean property, to enable internal pullup on
|
||||
interrupt pin. Missing this will disable internal pullup on INT pin.
|
||||
- ams,enable-internal-i2c-pullup: Boolean property, to enable internal pullup on
|
||||
i2c scl/sda pins. Missing this will disable internal pullup on i2c
|
||||
scl/sda lines.
|
||||
- ams,enable-ac-ok-power-on: Boolean property, to enable exit out of power off
|
||||
mode with AC_OK pin (pin enabled in power off mode).
|
||||
|
||||
Optional submodule and their properties:
|
||||
=======================================
|
||||
|
||||
Pinmux and GPIO:
|
||||
===============
|
||||
Device has 8 GPIO pins which can be configured as GPIO as well as the special IO
|
||||
functions.
|
||||
|
||||
Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||
common pinctrl bindings used by client devices, including the meaning of the
|
||||
phrase "pin configuration node".
|
||||
|
||||
Following are properties which is needed if GPIO and pinmux functionality
|
||||
is required:
|
||||
Required properties:
|
||||
-------------------
|
||||
- gpio-controller: Marks the device node as a GPIO controller.
|
||||
- #gpio-cells: Number of GPIO cells. Refer to binding document
|
||||
gpio/gpio.txt
|
||||
|
||||
Optional properties:
|
||||
--------------------
|
||||
Following properties are require if pin control setting is required
|
||||
at boot.
|
||||
- pinctrl-names: A pinctrl state named "default" be defined, using the
|
||||
bindings in pinctrl/pinctrl-bindings.txt.
|
||||
- pinctrl[0...n]: Properties to contain the phandle that refer to
|
||||
different nodes of pin control settings. These nodes represents
|
||||
the pin control setting of state 0 to state n. Each of these
|
||||
nodes contains different subnodes to represents some desired
|
||||
configuration for a list of pins. This configuration can
|
||||
include the mux function to select on those pin(s), and
|
||||
various pin configuration parameters, such as pull-up,
|
||||
open drain.
|
||||
|
||||
Each subnode have following properties:
|
||||
Required properties:
|
||||
- pins: List of pins. Valid values of pins properties are:
|
||||
gpio0, gpio1, gpio2, gpio3, gpio4, gpio5,
|
||||
gpio6, gpio7
|
||||
|
||||
Optional properties:
|
||||
function, bias-disable, bias-pull-up, bias-pull-down,
|
||||
bias-high-impedance, drive-open-drain.
|
||||
|
||||
Valid values for function properties are:
|
||||
gpio, interrupt-out, gpio-in-interrupt,
|
||||
vsup-vbat-low-undebounce-out,
|
||||
vsup-vbat-low-debounce-out,
|
||||
voltage-in-standby, oc-pg-sd0, oc-pg-sd6,
|
||||
powergood-out, pwm-in, pwm-out, clk32k-out,
|
||||
watchdog-in, soft-reset-in
|
||||
|
||||
Regulators:
|
||||
===========
|
||||
Device has multiple DCDC and LDOs. The node "regulators" is require if regulator
|
||||
functionality is needed.
|
||||
|
||||
Following are properties of regulator subnode.
|
||||
|
||||
Optional properties:
|
||||
-------------------
|
||||
The input supply of regulators are the optional properties on the
|
||||
regulator node. The input supply of these regulators are provided
|
||||
through following properties:
|
||||
vsup-sd2-supply: Input supply for SD2.
|
||||
vsup-sd3-supply: Input supply for SD3.
|
||||
vsup-sd4-supply: Input supply for SD4.
|
||||
vsup-sd5-supply: Input supply for SD5.
|
||||
vin-ldo0-supply: Input supply for LDO0.
|
||||
vin-ldo1-6-supply: Input supply for LDO1 and LDO6.
|
||||
vin-ldo2-5-7-supply: Input supply for LDO2, LDO5 and LDO7.
|
||||
vin-ldo3-4-supply: Input supply for LDO3 and LDO4.
|
||||
vin-ldo9-10-supply: Input supply for LDO9 and LDO10.
|
||||
vin-ldo11-supply: Input supply for LDO11.
|
||||
|
||||
Optional sub nodes for regulators:
|
||||
---------------------------------
|
||||
The subnodes name is the name of regulator and it must be one of:
|
||||
sd[0-6], ldo[0-7], ldo[9-11]
|
||||
|
||||
Each sub-node should contain the constraints and initialization
|
||||
information for that regulator. See regulator.txt for a description
|
||||
of standard properties for these sub-nodes.
|
||||
Additional optional custom properties are listed below.
|
||||
ams,ext-control: External control of the rail. The option of
|
||||
this properties will tell which external input is
|
||||
controlling this rail. Valid values are 0, 1, 2 ad 3.
|
||||
0: There is no external control of this rail.
|
||||
1: Rail is controlled by ENABLE1 input pin.
|
||||
2: Rail is controlled by ENABLE2 input pin.
|
||||
3: Rail is controlled by ENABLE3 input pin.
|
||||
Missing this property on DT will be assume as no
|
||||
external control. The external control pin macros
|
||||
are defined @dt-bindings/mfd/as3722.h
|
||||
|
||||
ams,enable-tracking: Enable tracking with SD1, only supported
|
||||
by LDO3.
|
||||
|
||||
Power-off:
|
||||
=========
|
||||
AS3722 supports the system power off by turning off all its rails.
|
||||
The device node should have the following properties to enable this
|
||||
functionality
|
||||
ams,system-power-controller: Boolean, to enable the power off functionality
|
||||
through this device.
|
||||
|
||||
Example:
|
||||
--------
|
||||
#include <dt-bindings/mfd/as3722.h>
|
||||
...
|
||||
ams3722 {
|
||||
compatible = "ams,as3722";
|
||||
reg = <0x48>;
|
||||
|
||||
ams,system-power-controller;
|
||||
|
||||
interrupt-parent = <&intc>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&as3722_default>;
|
||||
|
||||
as3722_default: pinmux {
|
||||
gpio0 {
|
||||
pins = "gpio0";
|
||||
function = "gpio";
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
gpio1_2_4_7 {
|
||||
pins = "gpio1", "gpio2", "gpio4", "gpio7";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
gpio5 {
|
||||
pins = "gpio5";
|
||||
function = "clk32k_out";
|
||||
};
|
||||
}
|
||||
|
||||
regulators {
|
||||
vsup-sd2-supply = <...>;
|
||||
...
|
||||
|
||||
sd0 {
|
||||
regulator-name = "vdd_cpu";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-always-on;
|
||||
ams,ext-control = <2>;
|
||||
};
|
||||
|
||||
sd1 {
|
||||
regulator-name = "vdd_core";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-always-on;
|
||||
ams,ext-control = <1>;
|
||||
};
|
||||
|
||||
sd2 {
|
||||
regulator-name = "vddio_ddr";
|
||||
regulator-min-microvolt = <1350000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sd4 {
|
||||
regulator-name = "avdd-hdmi-pex";
|
||||
regulator-min-microvolt = <1050000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sd5 {
|
||||
regulator-name = "vdd-1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
....
|
||||
};
|
||||
};
|
110
bindings/mfd/aspeed,ast2x00-scu.yaml
Normal file
110
bindings/mfd/aspeed,ast2x00-scu.yaml
Normal file
@@ -0,0 +1,110 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/aspeed,ast2x00-scu.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Aspeed System Control Unit
|
||||
|
||||
description:
|
||||
The Aspeed System Control Unit manages the global behaviour of the SoC,
|
||||
configuring elements such as clocks, pinmux, and reset.
|
||||
|
||||
maintainers:
|
||||
- Joel Stanley <joel@jms.id.au>
|
||||
- Andrew Jeffery <andrew@aj.id.au>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-scu
|
||||
- aspeed,ast2500-scu
|
||||
- aspeed,ast2600-scu
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
'^p2a-control@[0-9a-f]+$':
|
||||
description: See Documentation/devicetree/bindings/misc/aspeed-p2a-ctrl.txt
|
||||
type: object
|
||||
|
||||
'^pinctrl(@[0-9a-f]+)?$':
|
||||
oneOf:
|
||||
- $ref: /schemas/pinctrl/aspeed,ast2400-pinctrl.yaml
|
||||
- $ref: /schemas/pinctrl/aspeed,ast2500-pinctrl.yaml
|
||||
- $ref: /schemas/pinctrl/aspeed,ast2600-pinctrl.yaml
|
||||
|
||||
'^interrupt-controller@[0-9a-f]+$':
|
||||
description: See Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2xxx-scu-ic.txt
|
||||
type: object
|
||||
|
||||
'^silicon-id@[0-9a-f]+$':
|
||||
description: Unique hardware silicon identifiers within the SoC
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-silicon-id
|
||||
- aspeed,ast2500-silicon-id
|
||||
- aspeed,ast2600-silicon-id
|
||||
- const: aspeed,silicon-id
|
||||
|
||||
reg:
|
||||
description:
|
||||
The reg should be the unique silicon id register, and not backwards
|
||||
compatible one in eg. the 2600.
|
||||
minItems: 1
|
||||
items:
|
||||
- description: silicon id information registers
|
||||
- description: unique chip id registers
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- ranges
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
- '#clock-cells'
|
||||
- '#reset-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@1e6e2000 {
|
||||
compatible = "aspeed,ast2400-scu", "syscon", "simple-mfd";
|
||||
reg = <0x1e6e2000 0x1a8>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x1e6e2000 0x1000>;
|
||||
|
||||
silicon-id@7c {
|
||||
compatible = "aspeed,ast2500-silicon-id", "aspeed,silicon-id";
|
||||
reg = <0x7c 0x4>, <0x150 0x8>;
|
||||
};
|
||||
};
|
||||
...
|
17
bindings/mfd/aspeed-gfx.txt
Normal file
17
bindings/mfd/aspeed-gfx.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
* Device tree bindings for Aspeed SoC Display Controller (GFX)
|
||||
|
||||
The Aspeed SoC Display Controller primarily does as its name suggests, but also
|
||||
participates in pinmux requests on the g5 SoCs. It is therefore considered a
|
||||
syscon device.
|
||||
|
||||
Required properties:
|
||||
- compatible: "aspeed,ast2500-gfx", "syscon"
|
||||
- reg: contains offset/length value of the GFX memory
|
||||
region.
|
||||
|
||||
Example:
|
||||
|
||||
gfx: display@1e6e6000 {
|
||||
compatible = "aspeed,ast2500-gfx", "syscon";
|
||||
reg = <0x1e6e6000 0x1000>;
|
||||
};
|
199
bindings/mfd/aspeed-lpc.yaml
Normal file
199
bindings/mfd/aspeed-lpc.yaml
Normal file
@@ -0,0 +1,199 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# # Copyright (c) 2021 Aspeed Tehchnology Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/aspeed-lpc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Aspeed Low Pin Count (LPC) Bus Controller
|
||||
|
||||
maintainers:
|
||||
- Andrew Jeffery <andrew@aj.id.au>
|
||||
- Chia-Wei Wang <chiawei_wang@aspeedtech.com>
|
||||
|
||||
description:
|
||||
The LPC bus is a means to bridge a host CPU to a number of low-bandwidth
|
||||
peripheral devices, replacing the use of the ISA bus in the age of PCI[0]. The
|
||||
primary use case of the Aspeed LPC controller is as a slave on the bus
|
||||
(typically in a Baseboard Management Controller SoC), but under certain
|
||||
conditions it can also take the role of bus master.
|
||||
|
||||
The LPC controller is represented as a multi-function device to account for the
|
||||
mix of functionality, which includes, but is not limited to
|
||||
|
||||
* An IPMI Block Transfer[2] Controller
|
||||
|
||||
* An LPC Host Interface Controller manages functions exposed to the host such
|
||||
as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART
|
||||
management and bus snoop configuration.
|
||||
|
||||
* A set of SuperIO[3] scratch registers enableing implementation of e.g. custom
|
||||
hardware management protocols for handover between the host and baseboard
|
||||
management controller.
|
||||
|
||||
Additionally the state of the LPC controller influences the pinmux
|
||||
configuration, therefore the host portion of the controller is exposed as a
|
||||
syscon as a means to arbitrate access.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-lpc-v2
|
||||
- aspeed,ast2500-lpc-v2
|
||||
- aspeed,ast2600-lpc-v2
|
||||
- const: simple-mfd
|
||||
- const: syscon
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
patternProperties:
|
||||
"^lpc-ctrl@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
description: |
|
||||
The LPC Host Interface Controller manages functions exposed to the host such as
|
||||
LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART management
|
||||
and bus snoop configuration.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-lpc-ctrl
|
||||
- aspeed,ast2500-lpc-ctrl
|
||||
- aspeed,ast2600-lpc-ctrl
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
memory-region:
|
||||
maxItems: 1
|
||||
description: handle to memory reservation for the LPC to AHB mapping region
|
||||
|
||||
flash:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The SPI flash controller containing the flash to be exposed over the LPC to AHB mapping
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
||||
"^reset-controller@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
description:
|
||||
The UARTs present in the ASPEED SoC can have their resets tied to the reset
|
||||
state of the LPC bus. Some systems may chose to modify this configuration
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-lpc-reset
|
||||
- aspeed,ast2500-lpc-reset
|
||||
- aspeed,ast2600-lpc-reset
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#reset-cells'
|
||||
|
||||
"^lpc-snoop@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
description:
|
||||
The LPC snoop interface allows the BMC to listen on and record the data
|
||||
bytes written by the Host to the targeted LPC I/O pots.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- aspeed,ast2400-lpc-snoop
|
||||
- aspeed,ast2500-lpc-snoop
|
||||
- aspeed,ast2600-lpc-snoop
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
snoop-ports:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: The LPC I/O ports to snoop
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- snoop-ports
|
||||
|
||||
"^uart-routing@[0-9a-f]+$":
|
||||
$ref: /schemas/soc/aspeed/uart-routing.yaml#
|
||||
description: The UART routing control under LPC register space
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- ranges
|
||||
|
||||
additionalProperties:
|
||||
type: object
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/ast2600-clock.h>
|
||||
|
||||
lpc: lpc@1e789000 {
|
||||
compatible = "aspeed,ast2600-lpc-v2", "simple-mfd", "syscon";
|
||||
reg = <0x1e789000 0x1000>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x1e789000 0x1000>;
|
||||
|
||||
lpc_ctrl: lpc-ctrl@80 {
|
||||
compatible = "aspeed,ast2600-lpc-ctrl";
|
||||
reg = <0x80 0x80>;
|
||||
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
|
||||
memory-region = <&flash_memory>;
|
||||
flash = <&spi>;
|
||||
};
|
||||
|
||||
lpc_reset: reset-controller@98 {
|
||||
compatible = "aspeed,ast2600-lpc-reset";
|
||||
reg = <0x98 0x4>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
lpc_snoop: lpc-snoop@90 {
|
||||
compatible = "aspeed,ast2600-lpc-snoop";
|
||||
reg = <0x90 0x8>;
|
||||
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
|
||||
snoop-ports = <0x80>;
|
||||
};
|
||||
};
|
63
bindings/mfd/atmel-flexcom.txt
Normal file
63
bindings/mfd/atmel-flexcom.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
* Device tree bindings for Atmel Flexcom (Flexible Serial Communication Unit)
|
||||
|
||||
The Atmel Flexcom is just a wrapper which embeds a SPI controller, an I2C
|
||||
controller and an USART. Only one function can be used at a time and is chosen
|
||||
at boot time according to the device tree.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,sama5d2-flexcom"
|
||||
- reg: Should be the offset/length value for Flexcom dedicated
|
||||
I/O registers (without USART, TWI or SPI registers).
|
||||
- clocks: Should be the Flexcom peripheral clock from PMC.
|
||||
- #address-cells: Should be <1>
|
||||
- #size-cells: Should be <1>
|
||||
- ranges: Should be one range for the full I/O register region
|
||||
(including USART, TWI and SPI registers).
|
||||
- atmel,flexcom-mode: Should be one of the following values:
|
||||
- <1> for USART
|
||||
- <2> for SPI
|
||||
- <3> for I2C
|
||||
|
||||
Required child:
|
||||
A single available child device of type matching the "atmel,flexcom-mode"
|
||||
property.
|
||||
|
||||
The phandle provided by the clocks property of the child is the same as one for
|
||||
the Flexcom parent.
|
||||
|
||||
For other properties, please refer to the documentations of the respective
|
||||
device:
|
||||
- ../serial/atmel-usart.txt
|
||||
- ../spi/spi_atmel.txt
|
||||
- ../i2c/i2c-at91.txt
|
||||
|
||||
Example:
|
||||
|
||||
flexcom@f8034000 {
|
||||
compatible = "atmel,sama5d2-flexcom";
|
||||
reg = <0xf8034000 0x200>;
|
||||
clocks = <&flx0_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0xf8034000 0x800>;
|
||||
atmel,flexcom-mode = <2>;
|
||||
|
||||
spi@400 {
|
||||
compatible = "atmel,at91rm9200-spi";
|
||||
reg = <0x400 0x200>;
|
||||
interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flx0_default>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&flx0_clk>;
|
||||
clock-names = "spi_clk";
|
||||
atmel,fifo-size = <32>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "atmel,at25f512b";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <20000000>;
|
||||
};
|
||||
};
|
||||
};
|
17
bindings/mfd/atmel-gpbr.txt
Normal file
17
bindings/mfd/atmel-gpbr.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
* Device tree bindings for Atmel GPBR (General Purpose Backup Registers)
|
||||
|
||||
The GPBR are a set of battery-backed registers.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following:
|
||||
"atmel,at91sam9260-gpbr", "syscon"
|
||||
"microchip,sam9x60-gpbr", "syscon"
|
||||
- reg: contains offset/length value of the GPBR memory
|
||||
region.
|
||||
|
||||
Example:
|
||||
|
||||
gpbr: gpbr@fffffd50 {
|
||||
compatible = "atmel,at91sam9260-gpbr", "syscon";
|
||||
reg = <0xfffffd50 0x10>;
|
||||
};
|
55
bindings/mfd/atmel-hlcdc.txt
Normal file
55
bindings/mfd/atmel-hlcdc.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
Device-Tree bindings for Atmel's HLCDC (High LCD Controller) MFD driver
|
||||
|
||||
Required properties:
|
||||
- compatible: value should be one of the following:
|
||||
"atmel,at91sam9n12-hlcdc"
|
||||
"atmel,at91sam9x5-hlcdc"
|
||||
"atmel,sama5d2-hlcdc"
|
||||
"atmel,sama5d3-hlcdc"
|
||||
"atmel,sama5d4-hlcdc"
|
||||
"microchip,sam9x60-hlcdc"
|
||||
- reg: base address and size of the HLCDC device registers.
|
||||
- clock-names: the name of the 3 clocks requested by the HLCDC device.
|
||||
Should contain "periph_clk", "sys_clk" and "slow_clk".
|
||||
- clocks: should contain the 3 clocks requested by the HLCDC device.
|
||||
- interrupts: should contain the description of the HLCDC interrupt line
|
||||
|
||||
The HLCDC IP exposes two subdevices:
|
||||
- a PWM chip: see ../pwm/atmel-hlcdc-pwm.txt
|
||||
- a Display Controller: see ../display/atmel/hlcdc-dc.txt
|
||||
|
||||
Example:
|
||||
|
||||
hlcdc: hlcdc@f0030000 {
|
||||
compatible = "atmel,sama5d3-hlcdc";
|
||||
reg = <0xf0030000 0x2000>;
|
||||
clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
|
||||
clock-names = "periph_clk","sys_clk", "slow_clk";
|
||||
interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
|
||||
hlcdc-display-controller {
|
||||
compatible = "atmel,hlcdc-display-controller";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
hlcdc_panel_output: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&panel_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hlcdc_pwm: hlcdc-pwm {
|
||||
compatible = "atmel,hlcdc-pwm";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_pwm>;
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
};
|
25
bindings/mfd/atmel-matrix.txt
Normal file
25
bindings/mfd/atmel-matrix.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
* Device tree bindings for Atmel Bus Matrix
|
||||
|
||||
The Bus Matrix registers are used to configure Atmel SoCs internal bus
|
||||
behavior (master/slave priorities, undefined burst length type, ...)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
"atmel,at91sam9260-matrix", "syscon"
|
||||
"atmel,at91sam9261-matrix", "syscon"
|
||||
"atmel,at91sam9263-matrix", "syscon"
|
||||
"atmel,at91sam9rl-matrix", "syscon"
|
||||
"atmel,at91sam9g45-matrix", "syscon"
|
||||
"atmel,at91sam9n12-matrix", "syscon"
|
||||
"atmel,at91sam9x5-matrix", "syscon"
|
||||
"atmel,sama5d3-matrix", "syscon"
|
||||
"microchip,sam9x60-matrix", "syscon"
|
||||
- reg: Contains offset/length value of the Bus Matrix
|
||||
memory region.
|
||||
|
||||
Example:
|
||||
|
||||
matrix: matrix@ffffec00 {
|
||||
compatible = "atmel,sama5d3-matrix", "syscon";
|
||||
reg = <0xffffec00 0x200>;
|
||||
};
|
21
bindings/mfd/atmel-smc.txt
Normal file
21
bindings/mfd/atmel-smc.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
* Device tree bindings for Atmel SMC (Static Memory Controller)
|
||||
|
||||
The SMC registers are used to configure Atmel EBI (External Bus Interface)
|
||||
to interface with standard memory devices (NAND, NOR, SRAM or specialized
|
||||
devices like FPGAs).
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
"atmel,at91sam9260-smc", "syscon"
|
||||
"atmel,sama5d3-smc", "syscon"
|
||||
"atmel,sama5d2-smc", "syscon"
|
||||
"microchip,sam9x60-smc", "syscon"
|
||||
- reg: Contains offset/length value of the SMC memory
|
||||
region.
|
||||
|
||||
Example:
|
||||
|
||||
smc: smc@ffffc000 {
|
||||
compatible = "atmel,sama5d3-smc", "syscon";
|
||||
reg = <0xffffc000 0x1000>;
|
||||
};
|
24
bindings/mfd/bfticu.txt
Normal file
24
bindings/mfd/bfticu.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
KEYMILE bfticu Chassis Management FPGA
|
||||
|
||||
The bfticu is a multifunction device that manages the whole chassis.
|
||||
Its main functionality is to collect IRQs from the whole chassis and signals
|
||||
them to a single controller.
|
||||
|
||||
Required properties:
|
||||
- compatible: "keymile,bfticu"
|
||||
- interrupt-controller: the bfticu FPGA is an interrupt controller
|
||||
- interrupts: the main IRQ line to signal the collected IRQs
|
||||
- #interrupt-cells : is 2 and their usage is compliant to the 2 cells variant
|
||||
of Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
- reg: access on the parent local bus (chip select, offset in chip select, size)
|
||||
|
||||
Example:
|
||||
|
||||
chassis-mgmt@3,0 {
|
||||
compatible = "keymile,bfticu";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <3 0 0x100>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <6 1 0 0>;
|
||||
};
|
39
bindings/mfd/brcm,bcm59056.txt
Normal file
39
bindings/mfd/brcm,bcm59056.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
-------------------------------
|
||||
BCM590xx Power Management Units
|
||||
-------------------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: "brcm,bcm59056"
|
||||
- reg: I2C slave address
|
||||
- interrupts: interrupt for the PMU. Generic interrupt client node bindings
|
||||
are described in interrupt-controller/interrupts.txt
|
||||
|
||||
------------------
|
||||
Voltage Regulators
|
||||
------------------
|
||||
|
||||
Optional child nodes:
|
||||
- regulators: container node for regulators following the generic
|
||||
regulator binding in regulator/regulator.txt
|
||||
|
||||
The valid regulator node names for BCM59056 are:
|
||||
rfldo, camldo1, camldo2, simldo1, simldo2, sdldo, sdxldo,
|
||||
mmcldo1, mmcldo2, audldo, micldo, usbldo, vibldo,
|
||||
csr, iosr1, iosr2, msr, sdsr1, sdsr2, vsr,
|
||||
gpldo1, gpldo2, gpldo3, gpldo4, gpldo5, gpldo6,
|
||||
vbus
|
||||
|
||||
Example:
|
||||
pmu: bcm59056@8 {
|
||||
compatible = "brcm,bcm59056";
|
||||
reg = <0x08>;
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
|
||||
regulators {
|
||||
rfldo_reg: rfldo {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
...
|
||||
};
|
||||
};
|
177
bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml
Normal file
177
bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,177 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm6318-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM6318 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM6318 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm6318-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6318-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm6318-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@10000080 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm6318-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0x10000080 0x80>;
|
||||
ranges = <0 0x10000080 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm6318-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 50>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@10 {
|
||||
compatible = "brcm,bcm6318-pinctrl";
|
||||
reg = <0x18 0x10>, <0x54 0x18>;
|
||||
|
||||
pinctrl_ephy0_spd_led: ephy0_spd_led-pins {
|
||||
function = "ephy0_spd_led";
|
||||
pins = "gpio0";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_spd_led: ephy1_spd_led-pins {
|
||||
function = "ephy1_spd_led";
|
||||
pins = "gpio1";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_spd_led: ephy2_spd_led-pins {
|
||||
function = "ephy2_spd_led";
|
||||
pins = "gpio2";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_spd_led: ephy3_spd_led-pins {
|
||||
function = "ephy3_spd_led";
|
||||
pins = "gpio3";
|
||||
};
|
||||
|
||||
pinctrl_ephy0_act_led: ephy0_act_led-pins {
|
||||
function = "ephy0_act_led";
|
||||
pins = "gpio4";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_act_led: ephy1_act_led-pins {
|
||||
function = "ephy1_act_led";
|
||||
pins = "gpio5";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_act_led: ephy2_act_led-pins {
|
||||
function = "ephy2_act_led";
|
||||
pins = "gpio6";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_act_led: ephy3_act_led-pins {
|
||||
function = "ephy3_act_led";
|
||||
pins = "gpio7";
|
||||
};
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
pinctrl_serial_led_data: serial_led_data-pins {
|
||||
function = "serial_led_data";
|
||||
pins = "gpio6";
|
||||
};
|
||||
|
||||
pinctrl_serial_led_clk: serial_led_clk-pins {
|
||||
function = "serial_led_clk";
|
||||
pins = "gpio7";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_inet_act_led: inet_act_led-pins {
|
||||
function = "inet_act_led";
|
||||
pins = "gpio8";
|
||||
};
|
||||
|
||||
pinctrl_inet_fail_led: inet_fail_led-pins {
|
||||
function = "inet_fail_led";
|
||||
pins = "gpio9";
|
||||
};
|
||||
|
||||
pinctrl_dsl_led: dsl_led-pins {
|
||||
function = "dsl_led";
|
||||
pins = "gpio10";
|
||||
};
|
||||
|
||||
pinctrl_post_fail_led: post_fail_led-pins {
|
||||
function = "post_fail_led";
|
||||
pins = "gpio11";
|
||||
};
|
||||
|
||||
pinctrl_wlan_wps_led: wlan_wps_led-pins {
|
||||
function = "wlan_wps_led";
|
||||
pins = "gpio12";
|
||||
};
|
||||
|
||||
pinctrl_usb_pwron: usb_pwron-pins {
|
||||
function = "usb_pwron";
|
||||
pins = "gpio13";
|
||||
};
|
||||
|
||||
pinctrl_usb_device_led: usb_device_led-pins {
|
||||
function = "usb_device_led";
|
||||
pins = "gpio13";
|
||||
};
|
||||
|
||||
pinctrl_usb_active: usb_active-pins {
|
||||
function = "usb_active";
|
||||
pins = "gpio40";
|
||||
};
|
||||
};
|
||||
};
|
194
bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml
Normal file
194
bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,194 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm63268-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM63268 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM63268 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm63268-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm63268-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@100000c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm63268-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0x100000c0 0x80>;
|
||||
ranges = <0 0x100000c0 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm63268-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 52>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@10 {
|
||||
compatible = "brcm,bcm63268-pinctrl";
|
||||
reg = <0x10 0x4>, <0x18 0x8>, <0x38 0x4>;
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
pinctrl_serial_led_clk: serial_led_clk-pins {
|
||||
function = "serial_led_clk";
|
||||
pins = "gpio0";
|
||||
};
|
||||
|
||||
pinctrl_serial_led_data: serial_led_data-pins {
|
||||
function = "serial_led_data";
|
||||
pins = "gpio1";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_hsspi_cs4: hsspi_cs4-pins {
|
||||
function = "hsspi_cs4";
|
||||
pins = "gpio16";
|
||||
};
|
||||
|
||||
pinctrl_hsspi_cs5: hsspi_cs5-pins {
|
||||
function = "hsspi_cs5";
|
||||
pins = "gpio17";
|
||||
};
|
||||
|
||||
pinctrl_hsspi_cs6: hsspi_cs6-pins {
|
||||
function = "hsspi_cs6";
|
||||
pins = "gpio8";
|
||||
};
|
||||
|
||||
pinctrl_hsspi_cs7: hsspi_cs7-pins {
|
||||
function = "hsspi_cs7";
|
||||
pins = "gpio9";
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi: adsl_spi-pins {
|
||||
pinctrl_adsl_spi_miso: adsl_spi_miso-pins {
|
||||
function = "adsl_spi_miso";
|
||||
pins = "gpio18";
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi_mosi: adsl_spi_mosi-pins {
|
||||
function = "adsl_spi_mosi";
|
||||
pins = "gpio19";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_vreq_clk: vreq_clk-pins {
|
||||
function = "vreq_clk";
|
||||
pins = "gpio22";
|
||||
};
|
||||
|
||||
pinctrl_pcie_clkreq_b: pcie_clkreq_b-pins {
|
||||
function = "pcie_clkreq_b";
|
||||
pins = "gpio23";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_clk: robosw_led_clk-pins {
|
||||
function = "robosw_led_clk";
|
||||
pins = "gpio30";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_data: robosw_led_data-pins {
|
||||
function = "robosw_led_data";
|
||||
pins = "gpio31";
|
||||
};
|
||||
|
||||
pinctrl_nand: nand-pins {
|
||||
function = "nand";
|
||||
group = "nand_grp";
|
||||
};
|
||||
|
||||
pinctrl_gpio35_alt: gpio35_alt-pins {
|
||||
function = "gpio35_alt";
|
||||
pin = "gpio35";
|
||||
};
|
||||
|
||||
pinctrl_dectpd: dectpd-pins {
|
||||
function = "dectpd";
|
||||
group = "dectpd_grp";
|
||||
};
|
||||
|
||||
pinctrl_vdsl_phy_override_0: vdsl_phy_override_0-pins {
|
||||
function = "vdsl_phy_override_0";
|
||||
group = "vdsl_phy_override_0_grp";
|
||||
};
|
||||
|
||||
pinctrl_vdsl_phy_override_1: vdsl_phy_override_1-pins {
|
||||
function = "vdsl_phy_override_1";
|
||||
group = "vdsl_phy_override_1_grp";
|
||||
};
|
||||
|
||||
pinctrl_vdsl_phy_override_2: vdsl_phy_override_2-pins {
|
||||
function = "vdsl_phy_override_2";
|
||||
group = "vdsl_phy_override_2_grp";
|
||||
};
|
||||
|
||||
pinctrl_vdsl_phy_override_3: vdsl_phy_override_3-pins {
|
||||
function = "vdsl_phy_override_3";
|
||||
group = "vdsl_phy_override_3_grp";
|
||||
};
|
||||
|
||||
pinctrl_dsl_gpio8: dsl_gpio8-pins {
|
||||
function = "dsl_gpio8";
|
||||
group = "dsl_gpio8";
|
||||
};
|
||||
|
||||
pinctrl_dsl_gpio9: dsl_gpio9-pins {
|
||||
function = "dsl_gpio9";
|
||||
group = "dsl_gpio9";
|
||||
};
|
||||
};
|
||||
};
|
162
bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml
Normal file
162
bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,162 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm6328-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM6328 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM6328 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm6328-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6328-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@10000080 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm6328-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0x10000080 0x80>;
|
||||
ranges = <0 0x10000080 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm6328-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 32>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@18 {
|
||||
compatible = "brcm,bcm6328-pinctrl";
|
||||
reg = <0x18 0x10>;
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
pinctrl_serial_led_data: serial_led_data-pins {
|
||||
function = "serial_led_data";
|
||||
pins = "gpio6";
|
||||
};
|
||||
|
||||
pinctrl_serial_led_clk: serial_led_clk-pins {
|
||||
function = "serial_led_clk";
|
||||
pins = "gpio7";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_inet_act_led: inet_act_led-pins {
|
||||
function = "inet_act_led";
|
||||
pins = "gpio11";
|
||||
};
|
||||
|
||||
pinctrl_pcie_clkreq: pcie_clkreq-pins {
|
||||
function = "pcie_clkreq";
|
||||
pins = "gpio16";
|
||||
};
|
||||
|
||||
pinctrl_ephy0_spd_led: ephy0_spd_led-pins {
|
||||
function = "led";
|
||||
pins = "gpio17";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_spd_led: ephy1_spd_led-pins {
|
||||
function = "led";
|
||||
pins = "gpio18";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_spd_led: ephy2_spd_led-pins {
|
||||
function = "led";
|
||||
pins = "gpio19";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_spd_led: ephy3_spd_led-pins {
|
||||
function = "led";
|
||||
pins = "gpio20";
|
||||
};
|
||||
|
||||
pinctrl_ephy0_act_led: ephy0_act_led-pins {
|
||||
function = "ephy0_act_led";
|
||||
pins = "gpio25";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_act_led: ephy1_act_led-pins {
|
||||
function = "ephy1_act_led";
|
||||
pins = "gpio26";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_act_led: ephy2_act_led-pins {
|
||||
function = "ephy2_act_led";
|
||||
pins = "gpio27";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_act_led: ephy3_act_led-pins {
|
||||
function = "ephy3_act_led";
|
||||
pins = "gpio28";
|
||||
};
|
||||
|
||||
pinctrl_hsspi_cs1: hsspi_cs1-pins {
|
||||
function = "hsspi_cs1";
|
||||
pins = "hsspi_cs1";
|
||||
};
|
||||
|
||||
pinctrl_usb_port1_device: usb_port1_device-pins {
|
||||
function = "usb_device_port";
|
||||
pins = "usb_port1";
|
||||
};
|
||||
|
||||
pinctrl_usb_port1_host: usb_port1_host-pins {
|
||||
function = "usb_host_port";
|
||||
pins = "usb_port1";
|
||||
};
|
||||
};
|
||||
};
|
130
bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml
Normal file
130
bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,130 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm6358-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM6358 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM6358 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm6358-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6358-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm6358-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@fffe0080 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm6358-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0xfffe0080 0x80>;
|
||||
ranges = <0 0xfffe0080 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm6358-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 40>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@18 {
|
||||
compatible = "brcm,bcm6358-pinctrl";
|
||||
reg = <0x18 0x4>;
|
||||
|
||||
pinctrl_ebi_cs: ebi_cs-pins {
|
||||
function = "ebi_cs";
|
||||
groups = "ebi_cs_grp";
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1-pins {
|
||||
function = "uart1";
|
||||
groups = "uart1_grp";
|
||||
};
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
function = "serial_led";
|
||||
groups = "serial_led_grp";
|
||||
};
|
||||
|
||||
pinctrl_legacy_led: legacy_led-pins {
|
||||
function = "legacy_led";
|
||||
groups = "legacy_led_grp";
|
||||
};
|
||||
|
||||
pinctrl_led: led-pins {
|
||||
function = "led";
|
||||
groups = "led_grp";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs_23: spi_cs-pins {
|
||||
function = "spi_cs";
|
||||
groups = "spi_cs_grp";
|
||||
};
|
||||
|
||||
pinctrl_utopia: utopia-pins {
|
||||
function = "utopia";
|
||||
groups = "utopia_grp";
|
||||
};
|
||||
|
||||
pinctrl_pwm_syn_clk: pwm_syn_clk-pins {
|
||||
function = "pwm_syn_clk";
|
||||
groups = "pwm_syn_clk_grp";
|
||||
};
|
||||
|
||||
pinctrl_sys_irq: sys_irq-pins {
|
||||
function = "sys_irq";
|
||||
groups = "sys_irq_grp";
|
||||
};
|
||||
};
|
||||
};
|
236
bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml
Normal file
236
bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,236 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm6362-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM6362 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM6362 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm6362-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6362-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm6362-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@10000080 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm6362-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0x10000080 0x80>;
|
||||
ranges = <0 0x10000080 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm6362-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 48>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@18 {
|
||||
compatible = "brcm,bcm6362-pinctrl";
|
||||
reg = <0x18 0x10>, <0x38 0x4>;
|
||||
|
||||
pinctrl_usb_device_led: usb_device_led-pins {
|
||||
function = "usb_device_led";
|
||||
pins = "gpio0";
|
||||
};
|
||||
|
||||
pinctrl_sys_irq: sys_irq-pins {
|
||||
function = "sys_irq";
|
||||
pins = "gpio1";
|
||||
};
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
pinctrl_serial_led_clk: serial_led_clk-pins {
|
||||
function = "serial_led_clk";
|
||||
pins = "gpio2";
|
||||
};
|
||||
|
||||
pinctrl_serial_led_data: serial_led_data-pins {
|
||||
function = "serial_led_data";
|
||||
pins = "gpio3";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_data: robosw_led_data-pins {
|
||||
function = "robosw_led_data";
|
||||
pins = "gpio4";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_clk: robosw_led_clk-pins {
|
||||
function = "robosw_led_clk";
|
||||
pins = "gpio5";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led0: robosw_led0-pins {
|
||||
function = "robosw_led0";
|
||||
pins = "gpio6";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led1: robosw_led1-pins {
|
||||
function = "robosw_led1";
|
||||
pins = "gpio7";
|
||||
};
|
||||
|
||||
pinctrl_inet_led: inet_led-pins {
|
||||
function = "inet_led";
|
||||
pins = "gpio8";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs2: spi_cs2-pins {
|
||||
function = "spi_cs2";
|
||||
pins = "gpio9";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs3: spi_cs3-pins {
|
||||
function = "spi_cs3";
|
||||
pins = "gpio10";
|
||||
};
|
||||
|
||||
pinctrl_ntr_pulse: ntr_pulse-pins {
|
||||
function = "ntr_pulse";
|
||||
pins = "gpio11";
|
||||
};
|
||||
|
||||
pinctrl_uart1_scts: uart1_scts-pins {
|
||||
function = "uart1_scts";
|
||||
pins = "gpio12";
|
||||
};
|
||||
|
||||
pinctrl_uart1_srts: uart1_srts-pins {
|
||||
function = "uart1_srts";
|
||||
pins = "gpio13";
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1-pins {
|
||||
pinctrl_uart1_sdin: uart1_sdin-pins {
|
||||
function = "uart1_sdin";
|
||||
pins = "gpio14";
|
||||
};
|
||||
|
||||
pinctrl_uart1_sdout: uart1_sdout-pins {
|
||||
function = "uart1_sdout";
|
||||
pins = "gpio15";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi: adsl_spi-pins {
|
||||
pinctrl_adsl_spi_miso: adsl_spi_miso-pins {
|
||||
function = "adsl_spi_miso";
|
||||
pins = "gpio16";
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi_mosi: adsl_spi_mosi-pins {
|
||||
function = "adsl_spi_mosi";
|
||||
pins = "gpio17";
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi_clk: adsl_spi_clk-pins {
|
||||
function = "adsl_spi_clk";
|
||||
pins = "gpio18";
|
||||
};
|
||||
|
||||
pinctrl_adsl_spi_cs: adsl_spi_cs-pins {
|
||||
function = "adsl_spi_cs";
|
||||
pins = "gpio19";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_ephy0_led: ephy0_led-pins {
|
||||
function = "ephy0_led";
|
||||
pins = "gpio20";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_led: ephy1_led-pins {
|
||||
function = "ephy1_led";
|
||||
pins = "gpio21";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_led: ephy2_led-pins {
|
||||
function = "ephy2_led";
|
||||
pins = "gpio22";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_led: ephy3_led-pins {
|
||||
function = "ephy3_led";
|
||||
pins = "gpio23";
|
||||
};
|
||||
|
||||
pinctrl_ext_irq0: ext_irq0-pins {
|
||||
function = "ext_irq0";
|
||||
pins = "gpio24";
|
||||
};
|
||||
|
||||
pinctrl_ext_irq1: ext_irq1-pins {
|
||||
function = "ext_irq1";
|
||||
pins = "gpio25";
|
||||
};
|
||||
|
||||
pinctrl_ext_irq2: ext_irq2-pins {
|
||||
function = "ext_irq2";
|
||||
pins = "gpio26";
|
||||
};
|
||||
|
||||
pinctrl_ext_irq3: ext_irq3-pins {
|
||||
function = "ext_irq3";
|
||||
pins = "gpio27";
|
||||
};
|
||||
|
||||
pinctrl_nand: nand-pins {
|
||||
function = "nand";
|
||||
group = "nand_grp";
|
||||
};
|
||||
};
|
||||
};
|
246
bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml
Normal file
246
bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml
Normal file
@@ -0,0 +1,246 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,bcm6368-gpio-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM6368 GPIO System Controller
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
- Jonas Gorski <jonas.gorski@gmail.com>
|
||||
|
||||
description:
|
||||
Broadcom BCM6368 SoC GPIO system controller which provides a register map
|
||||
for controlling the GPIO and pins of the SoC.
|
||||
|
||||
properties:
|
||||
"#address-cells": true
|
||||
|
||||
"#size-cells": true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,bcm6368-gpio-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
ranges:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm6345-gpio.yaml"
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
|
||||
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6368-pinctrl.yaml"
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/pinctrl/brcm,bcm6368-pinctrl.yaml.
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- compatible
|
||||
- ranges
|
||||
- reg
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@10000080 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "brcm,bcm6368-gpio-sysctl", "syscon", "simple-mfd";
|
||||
reg = <0x10000080 0x80>;
|
||||
ranges = <0 0x10000080 0x80>;
|
||||
|
||||
gpio@0 {
|
||||
compatible = "brcm,bcm6368-gpio";
|
||||
reg-names = "dirout", "dat";
|
||||
reg = <0x0 0x8>, <0x8 0x8>;
|
||||
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pinctrl 0 0 38>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@18 {
|
||||
compatible = "brcm,bcm6368-pinctrl";
|
||||
reg = <0x18 0x4>, <0x38 0x4>;
|
||||
|
||||
pinctrl_analog_afe_0: analog_afe_0-pins {
|
||||
function = "analog_afe_0";
|
||||
pins = "gpio0";
|
||||
};
|
||||
|
||||
pinctrl_analog_afe_1: analog_afe_1-pins {
|
||||
function = "analog_afe_1";
|
||||
pins = "gpio1";
|
||||
};
|
||||
|
||||
pinctrl_sys_irq: sys_irq-pins {
|
||||
function = "sys_irq";
|
||||
pins = "gpio2";
|
||||
};
|
||||
|
||||
pinctrl_serial_led: serial_led-pins {
|
||||
pinctrl_serial_led_data: serial_led_data-pins {
|
||||
function = "serial_led_data";
|
||||
pins = "gpio3";
|
||||
};
|
||||
|
||||
pinctrl_serial_led_clk: serial_led_clk-pins {
|
||||
function = "serial_led_clk";
|
||||
pins = "gpio4";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_inet_led: inet_led-pins {
|
||||
function = "inet_led";
|
||||
pins = "gpio5";
|
||||
};
|
||||
|
||||
pinctrl_ephy0_led: ephy0_led-pins {
|
||||
function = "ephy0_led";
|
||||
pins = "gpio6";
|
||||
};
|
||||
|
||||
pinctrl_ephy1_led: ephy1_led-pins {
|
||||
function = "ephy1_led";
|
||||
pins = "gpio7";
|
||||
};
|
||||
|
||||
pinctrl_ephy2_led: ephy2_led-pins {
|
||||
function = "ephy2_led";
|
||||
pins = "gpio8";
|
||||
};
|
||||
|
||||
pinctrl_ephy3_led: ephy3_led-pins {
|
||||
function = "ephy3_led";
|
||||
pins = "gpio9";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_data: robosw_led_data-pins {
|
||||
function = "robosw_led_data";
|
||||
pins = "gpio10";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led_clk: robosw_led_clk-pins {
|
||||
function = "robosw_led_clk";
|
||||
pins = "gpio11";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led0: robosw_led0-pins {
|
||||
function = "robosw_led0";
|
||||
pins = "gpio12";
|
||||
};
|
||||
|
||||
pinctrl_robosw_led1: robosw_led1-pins {
|
||||
function = "robosw_led1";
|
||||
pins = "gpio13";
|
||||
};
|
||||
|
||||
pinctrl_usb_device_led: usb_device_led-pins {
|
||||
function = "usb_device_led";
|
||||
pins = "gpio14";
|
||||
};
|
||||
|
||||
pinctrl_pci: pci-pins {
|
||||
pinctrl_pci_req1: pci_req1-pins {
|
||||
function = "pci_req1";
|
||||
pins = "gpio16";
|
||||
};
|
||||
|
||||
pinctrl_pci_gnt1: pci_gnt1-pins {
|
||||
function = "pci_gnt1";
|
||||
pins = "gpio17";
|
||||
};
|
||||
|
||||
pinctrl_pci_intb: pci_intb-pins {
|
||||
function = "pci_intb";
|
||||
pins = "gpio18";
|
||||
};
|
||||
|
||||
pinctrl_pci_req0: pci_req0-pins {
|
||||
function = "pci_req0";
|
||||
pins = "gpio19";
|
||||
};
|
||||
|
||||
pinctrl_pci_gnt0: pci_gnt0-pins {
|
||||
function = "pci_gnt0";
|
||||
pins = "gpio20";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_pcmcia: pcmcia-pins {
|
||||
pinctrl_pcmcia_cd1: pcmcia_cd1-pins {
|
||||
function = "pcmcia_cd1";
|
||||
pins = "gpio22";
|
||||
};
|
||||
|
||||
pinctrl_pcmcia_cd2: pcmcia_cd2-pins {
|
||||
function = "pcmcia_cd2";
|
||||
pins = "gpio23";
|
||||
};
|
||||
|
||||
pinctrl_pcmcia_vs1: pcmcia_vs1-pins {
|
||||
function = "pcmcia_vs1";
|
||||
pins = "gpio24";
|
||||
};
|
||||
|
||||
pinctrl_pcmcia_vs2: pcmcia_vs2-pins {
|
||||
function = "pcmcia_vs2";
|
||||
pins = "gpio25";
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_ebi_cs2: ebi_cs2-pins {
|
||||
function = "ebi_cs2";
|
||||
pins = "gpio26";
|
||||
};
|
||||
|
||||
pinctrl_ebi_cs3: ebi_cs3-pins {
|
||||
function = "ebi_cs3";
|
||||
pins = "gpio27";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs2: spi_cs2-pins {
|
||||
function = "spi_cs2";
|
||||
pins = "gpio28";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs3: spi_cs3-pins {
|
||||
function = "spi_cs3";
|
||||
pins = "gpio29";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs4: spi_cs4-pins {
|
||||
function = "spi_cs4";
|
||||
pins = "gpio30";
|
||||
};
|
||||
|
||||
pinctrl_spi_cs5: spi_cs5-pins {
|
||||
function = "spi_cs5";
|
||||
pins = "gpio31";
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1-pins {
|
||||
function = "uart1";
|
||||
group = "uart1_grp";
|
||||
};
|
||||
};
|
||||
};
|
108
bindings/mfd/brcm,cru.yaml
Normal file
108
bindings/mfd/brcm,cru.yaml
Normal file
@@ -0,0 +1,108 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom CRU
|
||||
|
||||
maintainers:
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
description: |
|
||||
Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
|
||||
block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
|
||||
clocks, pinctrl, USB PHY and thermal.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- brcm,ns-cru
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
description: CRU registers
|
||||
|
||||
ranges: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
'^clock-controller@[a-f0-9]+$':
|
||||
$ref: ../clock/brcm,iproc-clocks.yaml
|
||||
|
||||
'^phy@[a-f0-9]+$':
|
||||
$ref: ../phy/bcm-ns-usb2-phy.yaml
|
||||
|
||||
'^pinctrl@[a-f0-9]+$':
|
||||
$ref: ../pinctrl/brcm,ns-pinmux.yaml
|
||||
|
||||
'^syscon@[a-f0-9]+$':
|
||||
$ref: syscon.yaml
|
||||
|
||||
'^thermal@[a-f0-9]+$':
|
||||
$ref: ../thermal/brcm,ns-thermal.yaml
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/bcm-nsp.h>
|
||||
cru-bus@1800c100 {
|
||||
compatible = "brcm,ns-cru", "simple-mfd";
|
||||
reg = <0x1800c100 0x1d0>;
|
||||
ranges;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
clock-controller@100 {
|
||||
#clock-cells = <1>;
|
||||
compatible = "brcm,nsp-lcpll0";
|
||||
reg = <0x100 0x14>;
|
||||
clocks = <&osc>;
|
||||
clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
|
||||
};
|
||||
|
||||
clock-controller@140 {
|
||||
#clock-cells = <1>;
|
||||
compatible = "brcm,nsp-genpll";
|
||||
reg = <0x140 0x24>;
|
||||
clocks = <&osc>;
|
||||
clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
|
||||
"iprocfast", "sata1", "sata2";
|
||||
};
|
||||
|
||||
phy@164 {
|
||||
compatible = "brcm,ns-usb2-phy";
|
||||
reg = <0x164 0x4>;
|
||||
brcm,syscon-clkset = <&clkset>;
|
||||
clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
|
||||
clock-names = "phy-ref-clk";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
clkset: syscon@180 {
|
||||
compatible = "brcm,cru-clkset", "syscon";
|
||||
reg = <0x180 0x4>;
|
||||
};
|
||||
|
||||
pinctrl@1c0 {
|
||||
compatible = "brcm,bcm4708-pinmux";
|
||||
reg = <0x1c0 0x24>;
|
||||
reg-names = "cru_gpio_control";
|
||||
};
|
||||
|
||||
thermal@2c0 {
|
||||
compatible = "brcm,ns-thermal";
|
||||
reg = <0x2c0 0x10>;
|
||||
#thermal-sensor-cells = <0>;
|
||||
};
|
||||
};
|
16
bindings/mfd/brcm,iproc-cdru.txt
Normal file
16
bindings/mfd/brcm,iproc-cdru.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Broadcom iProc Chip Device Resource Unit (CDRU)
|
||||
|
||||
Various Broadcom iProc SoCs have a set of registers that provide various
|
||||
chip specific device and resource configurations. This node allows access to
|
||||
these CDRU registers via syscon.
|
||||
|
||||
Required properties:
|
||||
- compatible: should contain:
|
||||
"brcm,sr-cdru", "syscon" for Stingray
|
||||
- reg: base address and range of the CDRU registers
|
||||
|
||||
Example:
|
||||
cdru: syscon@6641d000 {
|
||||
compatible = "brcm,sr-cdru", "syscon";
|
||||
reg = <0 0x6641d000 0 0x400>;
|
||||
};
|
18
bindings/mfd/brcm,iproc-mhb.txt
Normal file
18
bindings/mfd/brcm,iproc-mhb.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
Broadcom iProc Multi Host Bridge (MHB)
|
||||
|
||||
Certain Broadcom iProc SoCs have a multi host bridge (MHB) block that controls
|
||||
the connection and configuration of 1) internal PCIe serdes; 2) PCIe endpoint
|
||||
interface; 3) access to the Nitro (network processing) engine
|
||||
|
||||
This node allows access to these MHB registers via syscon.
|
||||
|
||||
Required properties:
|
||||
- compatible: should contain:
|
||||
"brcm,sr-mhb", "syscon" for Stingray
|
||||
- reg: base address and range of the MHB registers
|
||||
|
||||
Example:
|
||||
mhb: syscon@60401000 {
|
||||
compatible = "brcm,sr-mhb", "syscon";
|
||||
reg = <0 0x60401000 0 0x38c>;
|
||||
};
|
60
bindings/mfd/brcm,misc.yaml
Normal file
60
bindings/mfd/brcm,misc.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,misc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom's MISC block
|
||||
|
||||
maintainers:
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
description: |
|
||||
Broadcom's MISC is a hardware block used on some SoCs (e.g. bcm63xx and
|
||||
bcm4908). It's used to implement some simple functions like a watchdog, PCIe
|
||||
reset, UniMAC control and more.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,misc
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
description: MISC block registers
|
||||
|
||||
ranges: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
'^reset-controller@[a-f0-9]+$':
|
||||
$ref: ../reset/brcm,bcm4908-misc-pcie-reset.yaml
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- reg
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
|
||||
examples:
|
||||
- |
|
||||
misc@ff802600 {
|
||||
compatible = "brcm,misc", "simple-mfd";
|
||||
reg = <0xff802600 0xe4>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0xe4>;
|
||||
|
||||
reset-controller@44 {
|
||||
compatible = "brcm,bcm4908-misc-pcie-reset";
|
||||
reg = <0x44 0x4>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
61
bindings/mfd/brcm,twd.yaml
Normal file
61
bindings/mfd/brcm,twd.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/brcm,twd.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom's Timer-Watchdog (aka TWD)
|
||||
|
||||
maintainers:
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
description: |
|
||||
Broadcom has a Timer-Watchdog block used in multiple SoCs (e.g., BCM4908,
|
||||
BCM63xx, BCM7038). There are few variants available (they differ slightly in
|
||||
registers layout). This block consists of: timers, watchdog and optionally a
|
||||
software reset handler.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- brcm,bcm4908-twd
|
||||
- brcm,bcm7038-twd
|
||||
- const: simple-mfd
|
||||
- const: syscon
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
'^watchdog@[a-f0-9]+$':
|
||||
$ref: /schemas/watchdog/brcm,bcm7038-wdt.yaml
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
timer-mfd@ff800400 {
|
||||
compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
|
||||
reg = <0xff800400 0x4c>;
|
||||
ranges = <0x00000000 0xff800400 0x4c>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
watchdog@28 {
|
||||
compatible = "brcm,bcm7038-wdt";
|
||||
reg = <0x28 0x8>;
|
||||
};
|
||||
};
|
109
bindings/mfd/canaan,k210-sysctl.yaml
Normal file
109
bindings/mfd/canaan,k210-sysctl.yaml
Normal file
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/canaan,k210-sysctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Canaan Kendryte K210 System Controller
|
||||
|
||||
maintainers:
|
||||
- Damien Le Moal <damien.lemoal@wdc.com>
|
||||
|
||||
description:
|
||||
Canaan Inc. Kendryte K210 SoC system controller which provides a
|
||||
register map for controlling the clocks, reset signals and pin power
|
||||
domains of the SoC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: canaan,k210-sysctl
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description:
|
||||
System controller Advanced Power Bus (APB) interface clock source.
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clock-controller:
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../clock/canaan,k210-clk.yaml"
|
||||
description:
|
||||
Clock controller for the SoC clocks. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/clock/canaan,k210-clk.yaml.
|
||||
|
||||
reset-controller:
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../reset/canaan,k210-rst.yaml"
|
||||
description:
|
||||
Reset controller for the SoC. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml.
|
||||
|
||||
syscon-reboot:
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../power/reset/syscon-reboot.yaml"
|
||||
description:
|
||||
Reboot method for the SoC. This child node definition
|
||||
should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- reg
|
||||
- clock-controller
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/k210-clk.h>
|
||||
#include <dt-bindings/reset/k210-rst.h>
|
||||
|
||||
clocks {
|
||||
in0: oscllator {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
};
|
||||
};
|
||||
|
||||
sysctl: syscon@50440000 {
|
||||
compatible = "canaan,k210-sysctl",
|
||||
"syscon", "simple-mfd";
|
||||
reg = <0x50440000 0x100>;
|
||||
clocks = <&sysclk K210_CLK_APB1>;
|
||||
clock-names = "pclk";
|
||||
|
||||
sysclk: clock-controller {
|
||||
#clock-cells = <1>;
|
||||
compatible = "canaan,k210-clk";
|
||||
clocks = <&in0>;
|
||||
};
|
||||
|
||||
sysrst: reset-controller {
|
||||
compatible = "canaan,k210-rst";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
reboot: syscon-reboot {
|
||||
compatible = "syscon-reboot";
|
||||
regmap = <&sysctl>;
|
||||
offset = <48>;
|
||||
mask = <1>;
|
||||
value = <1>;
|
||||
};
|
||||
};
|
365
bindings/mfd/cirrus,lochnagar.yaml
Normal file
365
bindings/mfd/cirrus,lochnagar.yaml
Normal file
@@ -0,0 +1,365 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic Lochnagar Audio Development Board
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
Lochnagar is an evaluation and development board for Cirrus Logic
|
||||
Smart CODEC and Amp devices. It allows the connection of most Cirrus
|
||||
Logic devices on mini-cards, as well as allowing connection of
|
||||
various application processor systems to provide a full evaluation
|
||||
platform. Audio system topology, clocking and power can all be
|
||||
controlled through the Lochnagar, allowing the device under test
|
||||
to be used in a variety of possible use cases.
|
||||
|
||||
Also see these documents for generic binding information:
|
||||
[1] GPIO : ../gpio/gpio.txt
|
||||
|
||||
And these for relevant defines:
|
||||
[2] include/dt-bindings/pinctrl/lochnagar.h
|
||||
[3] include/dt-bindings/clock/lochnagar.h
|
||||
|
||||
And these documents for the required sub-node binding details:
|
||||
[4] Clock: ../clock/cirrus,lochnagar.yaml
|
||||
[5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml
|
||||
[6] Sound: ../sound/cirrus,lochnagar.yaml
|
||||
[7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2
|
||||
then:
|
||||
properties:
|
||||
lochnagar-hwmon:
|
||||
type: object
|
||||
$ref: /schemas/hwmon/cirrus,lochnagar.yaml#
|
||||
|
||||
lochnagar-sc:
|
||||
type: object
|
||||
$ref: /schemas/sound/cirrus,lochnagar.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar1
|
||||
- cirrus,lochnagar2
|
||||
|
||||
reg:
|
||||
const: 0x22
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
present-gpios:
|
||||
description: |
|
||||
Host present line, indicating the presence of a
|
||||
host system, see [1]. This can be omitted if the present line is
|
||||
tied in hardware.
|
||||
maxItems: 1
|
||||
|
||||
lochnagar-clk:
|
||||
type: object
|
||||
$ref: /schemas/clock/cirrus,lochnagar.yaml#
|
||||
|
||||
lochnagar-pmic32k:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 32768
|
||||
|
||||
lochnagar-clk12m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 12288000
|
||||
|
||||
lochnagar-clk11m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 11298600
|
||||
|
||||
lochnagar-clk24m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 24576000
|
||||
|
||||
lochnagar-clk22m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 22579200
|
||||
|
||||
lochnagar-clk8m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 8192000
|
||||
|
||||
lochnagar-usb24m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 24576000
|
||||
|
||||
lochnagar-usb12m:
|
||||
type: object
|
||||
$ref: /schemas/clock/fixed-clock.yaml#
|
||||
properties:
|
||||
clock-frequency:
|
||||
const: 12288000
|
||||
|
||||
pinctrl:
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/cirrus,lochnagar.yaml#
|
||||
|
||||
lochnagar-hwmon:
|
||||
type: object
|
||||
$ref: /schemas/hwmon/cirrus,lochnagar.yaml#
|
||||
|
||||
lochnagar-sc:
|
||||
type: object
|
||||
$ref: /schemas/sound/cirrus,lochnagar.yaml#
|
||||
|
||||
VDDCORE:
|
||||
description:
|
||||
Initialisation data for the VDDCORE regulator, which supplies the
|
||||
CODECs digital core if not being provided by an internal regulator.
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2-vddcore
|
||||
|
||||
SYSVDD-supply:
|
||||
description:
|
||||
Primary power supply for the Lochnagar.
|
||||
required:
|
||||
- compatible
|
||||
|
||||
MICVDD:
|
||||
description:
|
||||
Initialisation data for the MICVDD regulator, which supplies the
|
||||
CODECs MICVDD.
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2-micvdd
|
||||
|
||||
SYSVDD-supply:
|
||||
description:
|
||||
Primary power supply for the Lochnagar.
|
||||
required:
|
||||
- compatible
|
||||
|
||||
MIC1VDD:
|
||||
description:
|
||||
Initialisation data for the MIC1VDD supplies.
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2-mic1vdd
|
||||
|
||||
cirrus,micbias-input:
|
||||
description:
|
||||
A property selecting which of the CODEC minicard micbias outputs
|
||||
should be used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 4
|
||||
|
||||
MICBIAS1-supply:
|
||||
description:
|
||||
Regulator supplies for the MIC1VDD outputs, supplying the digital
|
||||
microphones, normally supplied from the attached CODEC.
|
||||
required:
|
||||
- compatible
|
||||
|
||||
MIC2VDD:
|
||||
description:
|
||||
Initialisation data for the MIC2VDD supplies.
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2-mic2vdd
|
||||
|
||||
cirrus,micbias-input:
|
||||
description:
|
||||
A property selecting which of the CODEC minicard micbias outputs
|
||||
should be used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 4
|
||||
|
||||
MICBIAS2-supply:
|
||||
description:
|
||||
Regulator supplies for the MIC2VDD outputs, supplying the digital
|
||||
microphones, normally supplied from the attached CODEC.
|
||||
required:
|
||||
- compatible
|
||||
|
||||
VDD1V8:
|
||||
description:
|
||||
Recommended fixed regulator for the VDD1V8 regulator, which supplies
|
||||
the CODECs analog and 1.8V digital supplies.
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- regulator-fixed
|
||||
|
||||
regulator-min-microvolt:
|
||||
const: 1800000
|
||||
|
||||
regulator-max-microvolt:
|
||||
const: 1800000
|
||||
|
||||
vin-supply:
|
||||
description:
|
||||
Should be set to same supply as SYSVDD
|
||||
required:
|
||||
- compatible
|
||||
- regulator-min-microvolt
|
||||
- regulator-max-microvolt
|
||||
- regulator-boot-on
|
||||
- regulator-always-on
|
||||
- vin-supply
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reset-gpios
|
||||
- lochnagar-clk
|
||||
- pinctrl
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/lochnagar.h>
|
||||
#include <dt-bindings/pinctrl/lochnagar.h>
|
||||
i2c@e0004000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xe0004000 0x1000>;
|
||||
|
||||
lochnagar: lochnagar@22 {
|
||||
compatible = "cirrus,lochnagar2";
|
||||
reg = <0x22>;
|
||||
|
||||
reset-gpios = <&gpio0 55 0>;
|
||||
present-gpios = <&gpio0 60 0>;
|
||||
|
||||
lochnagarclk: lochnagar-clk {
|
||||
compatible = "cirrus,lochnagar2-clk";
|
||||
|
||||
#clock-cells = <1>;
|
||||
clocks = <&clkaudio>, <&clkpmic>;
|
||||
clock-names = "ln-gf-mclk2", "ln-pmic-32k";
|
||||
|
||||
assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>,
|
||||
<&lochnagarclk LOCHNAGAR_CDC_MCLK2>;
|
||||
assigned-clock-parents = <&clkaudio>, <&clkpmic>;
|
||||
};
|
||||
|
||||
clkpmic: lochnagar-pmic32k {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
pinctrl {
|
||||
compatible = "cirrus,lochnagar-pinctrl";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinsettings>;
|
||||
|
||||
pinsettings: pin-settings {
|
||||
ap2aif-pins {
|
||||
input-enable;
|
||||
groups = "gf-aif1";
|
||||
function = "codec-aif3";
|
||||
};
|
||||
codec2aif-pins {
|
||||
output-enable;
|
||||
groups = "codec-aif3";
|
||||
function = "gf-aif1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
lochnagar-sc {
|
||||
compatible = "cirrus,lochnagar2-soundcard";
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
|
||||
lochnagar-hwmon {
|
||||
compatible = "cirrus,lochnagar2-hwmon";
|
||||
};
|
||||
|
||||
MIC1VDD {
|
||||
compatible = "cirrus,lochnagar2-mic1vdd";
|
||||
|
||||
cirrus,micbias-input = <3>;
|
||||
};
|
||||
|
||||
MICVDD {
|
||||
compatible = "cirrus,lochnagar2-micvdd";
|
||||
|
||||
SYSVDD-supply = <&wallvdd>;
|
||||
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
VDD1V8 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VDD1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
|
||||
vin-supply = <&wallvdd>;
|
||||
};
|
||||
};
|
||||
};
|
297
bindings/mfd/cirrus,madera.yaml
Normal file
297
bindings/mfd/cirrus,madera.yaml
Normal file
@@ -0,0 +1,297 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/cirrus,madera.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic Madera class audio CODECs Multi-Functional Device
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
These devices are audio SoCs with extensive digital capabilities and a range
|
||||
of analogue I/O.
|
||||
|
||||
See also the child driver bindings in:
|
||||
|
||||
bindings/pinctrl/cirrus,madera.yaml
|
||||
bindings/regulator/wlf,arizona.yaml
|
||||
bindings/sound/cirrus,madera.yaml
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/cirrus,madera.yaml#
|
||||
- $ref: /schemas/regulator/wlf,arizona.yaml#
|
||||
- $ref: /schemas/sound/cirrus,madera.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- cirrus,cs47l85
|
||||
- wlf,wm1840
|
||||
then:
|
||||
properties:
|
||||
SPKVDDL-supply:
|
||||
description:
|
||||
Left speaker driver power supply.
|
||||
|
||||
SPKVDDR-supply:
|
||||
description:
|
||||
Right speaker driver power supply.
|
||||
|
||||
required:
|
||||
- SPKVDDL-supply
|
||||
- SPKVDDR-supply
|
||||
else:
|
||||
required:
|
||||
- DCVDD-supply
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- cirrus,cs47l15
|
||||
- cirrus,cs47l35
|
||||
then:
|
||||
properties:
|
||||
SPKVDD-supply:
|
||||
description:
|
||||
Mono speaker driver power supply.
|
||||
|
||||
required:
|
||||
- SPKVDD-supply
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- cirrus,cs47l35
|
||||
- cirrus,cs47l85
|
||||
- cirrus,cs47l90
|
||||
- cirrus,cs47l91
|
||||
- wlf,wm1840
|
||||
then:
|
||||
properties:
|
||||
DBVDD2-supply:
|
||||
description:
|
||||
Databus power supply.
|
||||
|
||||
required:
|
||||
- DBVDD2-supply
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- cirrus,cs47l85
|
||||
- cirrus,cs47l90
|
||||
- cirrus,cs47l91
|
||||
- wlf,wm1840
|
||||
then:
|
||||
properties:
|
||||
DBVDD3-supply:
|
||||
description:
|
||||
Databus power supply.
|
||||
|
||||
DBVDD4-supply:
|
||||
description:
|
||||
Databus power supply.
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- cirrus,cs47l15
|
||||
then:
|
||||
required:
|
||||
- MICVDD-supply
|
||||
else:
|
||||
properties:
|
||||
CPVDD2-supply:
|
||||
description:
|
||||
Secondary charge pump power supply.
|
||||
|
||||
required:
|
||||
- CPVDD2-supply
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs47l15
|
||||
- cirrus,cs47l35
|
||||
- cirrus,cs47l85
|
||||
- cirrus,cs47l90
|
||||
- cirrus,cs47l91
|
||||
- cirrus,cs42l92
|
||||
- cirrus,cs47l92
|
||||
- cirrus,cs47l93
|
||||
- cirrus,wm1840
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
description:
|
||||
The first cell is the pin number. The second cell is reserved for
|
||||
future use and must be zero
|
||||
const: 2
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
description:
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
bindings/interrupt-controller/interrupts.txt
|
||||
const: 2
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
One entry specifying the GPIO controlling /RESET. As defined in
|
||||
bindings/gpio.txt. Although optional, it is strongly recommended
|
||||
to use a hardware reset.
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
description:
|
||||
Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3.
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
description: |
|
||||
May contain up to three strings:
|
||||
"mclk1" For the clock supplied on MCLK1, recommended to be a
|
||||
high quality audio reference clock.
|
||||
"mclk2" For the clock supplied on MCLK2, required to be an
|
||||
always on 32k clock.
|
||||
"mclk3" For the clock supplied on MCLK3.
|
||||
oneOf:
|
||||
- items:
|
||||
- const: mclk1
|
||||
- items:
|
||||
- const: mclk2
|
||||
- items:
|
||||
- const: mclk3
|
||||
- items:
|
||||
- const: mclk1
|
||||
- const: mclk2
|
||||
- items:
|
||||
- const: mclk1
|
||||
- const: mclk3
|
||||
- items:
|
||||
- const: mclk2
|
||||
- const: mclk3
|
||||
- items:
|
||||
- const: mclk1
|
||||
- const: mclk2
|
||||
- const: mclk3
|
||||
|
||||
AVDD-supply:
|
||||
description:
|
||||
Analogue power supply.
|
||||
|
||||
DBVDD1-supply:
|
||||
description:
|
||||
Databus power supply.
|
||||
|
||||
CPVDD1-supply:
|
||||
description:
|
||||
Charge pump power supply.
|
||||
|
||||
DCVDD-supply:
|
||||
description:
|
||||
Digital power supply, optional on CS47L85, WM1840 where it can
|
||||
be supplied internally.
|
||||
|
||||
MICVDD-supply:
|
||||
description:
|
||||
Microphone power supply, normally supplied internally except on
|
||||
cs47l24, wm1831 where it is mandatory.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- gpio-controller
|
||||
- '#gpio-cells'
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- interrupts
|
||||
- AVDD-supply
|
||||
- DBVDD1-supply
|
||||
- CPVDD1-supply
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/madera.h>
|
||||
i2c@e0004000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xe0004000 0x1000>;
|
||||
|
||||
cs47l85: codec@1a {
|
||||
compatible = "cirrus,cs47l85";
|
||||
reg = <0x1a>;
|
||||
|
||||
reset-gpios = <&gpio 0>;
|
||||
wlf,ldoena = <&gpio 1>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <4 1 0>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
AVDD-supply = <&vdd1v8>;
|
||||
DBVDD1-supply = <&vdd1v8>;
|
||||
DBVDD2-supply = <&vdd1v8>;
|
||||
DBVDD3-supply = <&vdd1v8>;
|
||||
DBVDD4-supply = <&vdd1v8>;
|
||||
CPVDD1-supply = <&vdd1v8>;
|
||||
CPVDD2-supply = <&vdd1v2>;
|
||||
SPKVDDL-supply = <&vdd5v>;
|
||||
SPKVDDR-supply = <&vdd5v>;
|
||||
|
||||
clocks = <&clks 0>, <&clks 1>, <&clks 2>;
|
||||
clock-names = "mclk1", "mclk2", "mclk3";
|
||||
|
||||
cirrus,dmic-ref = <0 0 MADERA_DMIC_REF_MICBIAS1>;
|
||||
cirrus,inmode = <
|
||||
MADERA_INMODE_SE MADERA_INMODE_SE
|
||||
MADERA_INMODE_SE MADERA_INMODE_SE
|
||||
MADERA_INMODE_DIFF MADERA_INMODE_DIFF
|
||||
>;
|
||||
cirrus,max-channels-clocked = <2 0 0>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinsettings>;
|
||||
|
||||
pinsettings: pin-settings {
|
||||
aif1-pins {
|
||||
groups = "aif1";
|
||||
function = "aif1";
|
||||
bias-bus-hold;
|
||||
};
|
||||
|
||||
aif2-pins {
|
||||
groups = "aif2";
|
||||
function = "aif2";
|
||||
bias-bus-hold;
|
||||
};
|
||||
|
||||
aif3-pins {
|
||||
groups = "aif3";
|
||||
function = "aif3";
|
||||
bias-bus-hold;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
67
bindings/mfd/da9052-i2c.txt
Normal file
67
bindings/mfd/da9052-i2c.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
* Dialog DA9052/53 Power Management Integrated Circuit (PMIC)
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da9052", "dlg,da9053-aa",
|
||||
"dlg,da9053-ab", or "dlg,da9053-bb"
|
||||
|
||||
Optional properties:
|
||||
- dlg,tsi-as-adc : Boolean, if set the X+, X-, Y+, Y- touchscreen
|
||||
input lines are used as general purpose analogue
|
||||
input.
|
||||
- tsiref-supply: Phandle to the regulator, which provides the reference
|
||||
voltage for the TSIREF pin. Must be provided when the
|
||||
touchscreen pins are used for ADC purposes.
|
||||
|
||||
Sub-nodes:
|
||||
- regulators : Contain the regulator nodes. The DA9052/53 regulators are
|
||||
bound using their names as listed below:
|
||||
|
||||
buck1 : regulator BUCK CORE
|
||||
buck2 : regulator BUCK PRO
|
||||
buck3 : regulator BUCK MEM
|
||||
buck4 : regulator BUCK PERI
|
||||
ldo1 : regulator LDO1
|
||||
ldo2 : regulator LDO2
|
||||
ldo3 : regulator LDO3
|
||||
ldo4 : regulator LDO4
|
||||
ldo5 : regulator LDO5
|
||||
ldo6 : regulator LDO6
|
||||
ldo7 : regulator LDO7
|
||||
ldo8 : regulator LDO8
|
||||
ldo9 : regulator LDO9
|
||||
ldo10 : regulator LDO10
|
||||
|
||||
The bindings details of individual regulator device can be found in:
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
Examples:
|
||||
|
||||
i2c@63fc8000 { /* I2C1 */
|
||||
|
||||
pmic: dialog@48 {
|
||||
compatible = "dlg,da9053-aa";
|
||||
reg = <0x48>;
|
||||
|
||||
regulators {
|
||||
buck1 {
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2075000>;
|
||||
};
|
||||
|
||||
buck2 {
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2075000>;
|
||||
};
|
||||
|
||||
buck3 {
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
|
||||
buck4 {
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
70
bindings/mfd/da9055.txt
Normal file
70
bindings/mfd/da9055.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
* Dialog DA9055 Power Management Integrated Circuit (PMIC)
|
||||
|
||||
DA9055 consists of a large and varied group of sub-devices (I2C Only):
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
da9055-gpio : : GPIOs
|
||||
da9055-regulator : : Regulators
|
||||
da9055-onkey : : On key
|
||||
da9055-rtc : : RTC
|
||||
da9055-hwmon : : ADC
|
||||
da9055-watchdog : : Watchdog
|
||||
|
||||
The CODEC device in DA9055 has a separate, configurable I2C address and so
|
||||
is instantiated separately from the PMIC.
|
||||
|
||||
For details on accompanying CODEC I2C device, see the following:
|
||||
Documentation/devicetree/bindings/sound/da9055.txt
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da9055-pmic"
|
||||
- reg: Specifies the I2C slave address (defaults to 0x5a but can be modified)
|
||||
- interrupts: IRQ line info for da9055 chip.
|
||||
- interrupt-controller: da9055 has internal IRQs (has own IRQ domain).
|
||||
- #interrupt-cells: Should be 1, is the local IRQ number for da9055.
|
||||
|
||||
Sub-nodes:
|
||||
- regulators : Contain the regulator nodes. The DA9055 regulators are
|
||||
bound using their names as listed below:
|
||||
|
||||
buck1 : regulator BUCK1
|
||||
buck2 : regulator BUCK2
|
||||
ldo1 : regulator LDO1
|
||||
ldo2 : regulator LDO2
|
||||
ldo3 : regulator LDO3
|
||||
ldo4 : regulator LDO4
|
||||
ldo5 : regulator LDO5
|
||||
ldo6 : regulator LDO6
|
||||
|
||||
The bindings details of individual regulator device can be found in:
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
pmic: da9055-pmic@5a {
|
||||
compatible = "dlg,da9055-pmic";
|
||||
reg = <0x5a>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
regulators {
|
||||
buck1: BUCK1 {
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <2075000>;
|
||||
};
|
||||
buck2: BUCK2 {
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
ldo1: LDO1 {
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
123
bindings/mfd/da9062.txt
Normal file
123
bindings/mfd/da9062.txt
Normal file
@@ -0,0 +1,123 @@
|
||||
* Dialog DA9062 Power Management Integrated Circuit (PMIC)
|
||||
|
||||
Product information for the DA9062 and DA9061 devices can be found here:
|
||||
- https://www.dialog-semiconductor.com/products/da9062
|
||||
- https://www.dialog-semiconductor.com/products/da9061
|
||||
|
||||
The DA9062 PMIC consists of:
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
da9062-regulator : : LDOs & BUCKs
|
||||
da9062-rtc : : Real-Time Clock
|
||||
da9062-onkey : : On Key
|
||||
da9062-watchdog : : Watchdog Timer
|
||||
da9062-thermal : : Thermal
|
||||
da9062-gpio : : GPIOs
|
||||
|
||||
The DA9061 PMIC consists of:
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
da9062-regulator : : LDOs & BUCKs
|
||||
da9062-onkey : : On Key
|
||||
da9062-watchdog : : Watchdog Timer
|
||||
da9062-thermal : : Thermal
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : Should be
|
||||
"dlg,da9062" for DA9062
|
||||
"dlg,da9061" for DA9061
|
||||
- reg : Specifies the I2C slave address (this defaults to 0x58 but it can be
|
||||
modified to match the chip's OTP settings).
|
||||
- interrupts : IRQ line information.
|
||||
- interrupt-controller
|
||||
|
||||
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
|
||||
further information on IRQ bindings.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- gpio-controller : Marks the device as a gpio controller.
|
||||
- #gpio-cells : Should be two. The first cell is the pin number and the
|
||||
second cell is used to specify the gpio polarity.
|
||||
|
||||
See Documentation/devicetree/bindings/gpio/gpio.txt for further information on
|
||||
GPIO bindings.
|
||||
|
||||
Sub-nodes:
|
||||
|
||||
- regulators : This node defines the settings for the LDOs and BUCKs.
|
||||
The DA9062 regulators are bound using their names listed below:
|
||||
|
||||
buck1 : BUCK_1
|
||||
buck2 : BUCK_2
|
||||
buck3 : BUCK_3
|
||||
buck4 : BUCK_4
|
||||
ldo1 : LDO_1
|
||||
ldo2 : LDO_2
|
||||
ldo3 : LDO_3
|
||||
ldo4 : LDO_4
|
||||
|
||||
The DA9061 regulators are bound using their names listed below:
|
||||
|
||||
buck1 : BUCK_1
|
||||
buck2 : BUCK_2
|
||||
buck3 : BUCK_3
|
||||
ldo1 : LDO_1
|
||||
ldo2 : LDO_2
|
||||
ldo3 : LDO_3
|
||||
ldo4 : LDO_4
|
||||
|
||||
The component follows the standard regulator framework and the bindings
|
||||
details of individual regulator device can be found in:
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
regulator-initial-mode may be specified for buck regulators using mode values
|
||||
from include/dt-bindings/regulator/dlg,da9063-regulator.h.
|
||||
|
||||
- rtc : This node defines settings required for the Real-Time Clock associated
|
||||
with the DA9062. There are currently no entries in this binding, however
|
||||
compatible = "dlg,da9062-rtc" should be added if a node is created.
|
||||
|
||||
- onkey : See ../input/da9062-onkey.txt
|
||||
|
||||
- watchdog: See ../watchdog/da9062-watchdog.txt
|
||||
|
||||
- thermal : See ../thermal/da9062-thermal.txt
|
||||
|
||||
Example:
|
||||
|
||||
pmic0: da9062@58 {
|
||||
compatible = "dlg,da9062";
|
||||
reg = <0x58>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
|
||||
rtc {
|
||||
compatible = "dlg,da9062-rtc";
|
||||
};
|
||||
|
||||
regulators {
|
||||
DA9062_BUCK1: buck1 {
|
||||
regulator-name = "BUCK1";
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1570000>;
|
||||
regulator-min-microamp = <500000>;
|
||||
regulator-max-microamp = <2000000>;
|
||||
regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
DA9062_LDO1: ldo1 {
|
||||
regulator-name = "LDO_1";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
60
bindings/mfd/da9150.txt
Normal file
60
bindings/mfd/da9150.txt
Normal file
@@ -0,0 +1,60 @@
|
||||
Dialog Semiconductor DA9150 Combined Charger/Fuel-Gauge MFD bindings
|
||||
|
||||
DA9150 consists of a group of sub-devices:
|
||||
|
||||
Device Description
|
||||
------ -----------
|
||||
da9150-gpadc : General Purpose ADC
|
||||
da9150-charger : Battery Charger
|
||||
da9150-fg : Battery Fuel-Gauge
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da9150"
|
||||
- reg: Specifies the I2C slave address
|
||||
- interrupts: IRQ line info for da9150 chip.
|
||||
- interrupt-controller: da9150 has internal IRQs (own IRQ domain).
|
||||
(See ../interrupt-controller/interrupts.txt for
|
||||
further information relating to interrupt properties)
|
||||
|
||||
Sub-devices:
|
||||
- da9150-gpadc: See ../iio/adc/da9150-gpadc.txt
|
||||
- da9150-charger: See ../power/da9150-charger.txt
|
||||
- da9150-fg: See ../power/da9150-fg.txt
|
||||
|
||||
Example:
|
||||
|
||||
charger_fg: da9150@58 {
|
||||
compatible = "dlg,da9150";
|
||||
reg = <0x58>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
|
||||
gpadc: da9150-gpadc {
|
||||
compatible = "dlg,da9150-gpadc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "dlg,da9150-charger";
|
||||
|
||||
io-channels = <&gpadc 0>,
|
||||
<&gpadc 2>,
|
||||
<&gpadc 8>,
|
||||
<&gpadc 5>;
|
||||
io-channel-names = "CHAN_IBUS",
|
||||
"CHAN_VBUS",
|
||||
"CHAN_TJUNC",
|
||||
"CHAN_VBAT";
|
||||
};
|
||||
|
||||
fuel-gauge {
|
||||
compatible = "dlg,da9150-fuel-gauge";
|
||||
|
||||
dlg,update-interval = <10000>;
|
||||
dlg,warn-soc-level = /bits/ 8 <15>;
|
||||
dlg,crit-soc-level = /bits/ 8 <5>
|
||||
};
|
||||
};
|
90
bindings/mfd/delta,tn48m-cpld.yaml
Normal file
90
bindings/mfd/delta,tn48m-cpld.yaml
Normal file
@@ -0,0 +1,90 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/delta,tn48m-cpld.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Delta Networks TN48M CPLD controller
|
||||
|
||||
maintainers:
|
||||
- Robert Marko <robert.marko@sartura.hr>
|
||||
|
||||
description: |
|
||||
Lattice CPLD onboard the TN48M switches is used for system
|
||||
management.
|
||||
|
||||
It provides information about the hardware model, revision,
|
||||
PSU status etc.
|
||||
|
||||
It is also being used as a GPIO expander and reset controller
|
||||
for the switch MAC-s and other peripherals.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: delta,tn48m-cpld
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C device address.
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
patternProperties:
|
||||
"^gpio(@[0-9a-f]+)?$":
|
||||
$ref: ../gpio/delta,tn48m-gpio.yaml
|
||||
|
||||
"^reset-controller?$":
|
||||
$ref: ../reset/delta,tn48m-reset.yaml
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpld@41 {
|
||||
compatible = "delta,tn48m-cpld";
|
||||
reg = <0x41>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gpio@31 {
|
||||
compatible = "delta,tn48m-gpo";
|
||||
reg = <0x31>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@3a {
|
||||
compatible = "delta,tn48m-gpi";
|
||||
reg = <0x3a>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@40 {
|
||||
compatible = "delta,tn48m-gpi";
|
||||
reg = <0x40>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
reset-controller {
|
||||
compatible = "delta,tn48m-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
133
bindings/mfd/dlg,da9063.yaml
Normal file
133
bindings/mfd/dlg,da9063.yaml
Normal file
@@ -0,0 +1,133 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Dialog DA9063/DA9063L Power Management Integrated Circuit (PMIC)
|
||||
|
||||
maintainers:
|
||||
- Steve Twiss <stwiss.opensource@diasemi.com>
|
||||
|
||||
description: |
|
||||
For device-tree bindings of other sub-modules refer to the binding documents
|
||||
under the respective sub-system directories.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- dlg,da9063
|
||||
- dlg,da9063l
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
dlg,use-sw-pm:
|
||||
type: boolean
|
||||
description:
|
||||
Disable the watchdog during suspend.
|
||||
Only use this option if you can't use the watchdog automatic suspend
|
||||
function during a suspend (see register CONTROL_B).
|
||||
|
||||
watchdog:
|
||||
type: object
|
||||
$ref: /schemas/watchdog/watchdog.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
const: dlg,da9063-watchdog
|
||||
|
||||
rtc:
|
||||
type: object
|
||||
$ref: /schemas/rtc/rtc.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
const: dlg,da9063-rtc
|
||||
|
||||
onkey:
|
||||
type: object
|
||||
$ref: /schemas/input/input.yaml#
|
||||
unevaluatedProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
const: dlg,da9063-onkey
|
||||
|
||||
dlg,disable-key-power:
|
||||
type: boolean
|
||||
description: |
|
||||
Disable power-down using a long key-press.
|
||||
If this entry does not exist then by default the key-press triggered
|
||||
power down is enabled and the OnKey will support both KEY_POWER and
|
||||
KEY_SLEEP.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
patternProperties:
|
||||
"^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$":
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic@58 {
|
||||
compatible = "dlg,da9063";
|
||||
reg = <0x58>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
|
||||
rtc {
|
||||
compatible = "dlg,da9063-rtc";
|
||||
};
|
||||
|
||||
watchdog {
|
||||
compatible = "dlg,da9063-watchdog";
|
||||
};
|
||||
|
||||
onkey {
|
||||
compatible = "dlg,da9063-onkey";
|
||||
dlg,disable-key-power;
|
||||
};
|
||||
|
||||
regulators {
|
||||
bcore1 {
|
||||
regulator-name = "BCORE1";
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1570000>;
|
||||
regulator-min-microamp = <500000>;
|
||||
regulator-max-microamp = <2000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
ldo11 {
|
||||
regulator-name = "LDO_11";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
55
bindings/mfd/ene-kb3930.yaml
Normal file
55
bindings/mfd/ene-kb3930.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/ene-kb3930.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ENE KB3930 Embedded Controller bindings
|
||||
|
||||
description: |
|
||||
This binding describes the ENE KB3930 Embedded Controller attached to an
|
||||
I2C bus.
|
||||
|
||||
maintainers:
|
||||
- Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- dell,wyse-ariel-ec # Dell Wyse Ariel board (3020)
|
||||
- const: ene,kb3930
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
off-gpios:
|
||||
description: GPIO used with the shutdown protocol on Ariel
|
||||
maxItems: 2
|
||||
|
||||
system-power-controller: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
embedded-controller@58 {
|
||||
compatible = "dell,wyse-ariel-ec", "ene,kb3930";
|
||||
reg = <0x58>;
|
||||
system-power-controller;
|
||||
|
||||
off-gpios = <&gpio 126 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio 127 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
65
bindings/mfd/ene-kb930.yaml
Normal file
65
bindings/mfd/ene-kb930.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/ene-kb930.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ENE KB930 Embedded Controller bindings
|
||||
|
||||
description: |
|
||||
This binding describes the ENE KB930 Embedded Controller attached to an
|
||||
I2C bus.
|
||||
|
||||
maintainers:
|
||||
- Dmitry Osipenko <digetx@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- acer,a500-iconia-ec # Acer A500 Iconia tablet device
|
||||
- const: ene,kb930
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
monitored-battery: true
|
||||
power-supplies: true
|
||||
system-power-controller: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
battery: battery-cell {
|
||||
compatible = "simple-battery";
|
||||
charge-full-design-microamp-hours = <3260000>;
|
||||
energy-full-design-microwatt-hours = <24000000>;
|
||||
operating-range-celsius = <0 40>;
|
||||
};
|
||||
|
||||
mains: ac-adapter {
|
||||
compatible = "gpio-charger";
|
||||
charger-type = "mains";
|
||||
gpios = <&gpio 125 0>;
|
||||
};
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
embedded-controller@58 {
|
||||
compatible = "acer,a500-iconia-ec", "ene,kb930";
|
||||
reg = <0x58>;
|
||||
|
||||
system-power-controller;
|
||||
|
||||
monitored-battery = <&battery>;
|
||||
power-supplies = <&mains>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
192
bindings/mfd/fsl,imx8qxp-csr.yaml
Normal file
192
bindings/mfd/fsl,imx8qxp-csr.yaml
Normal file
@@ -0,0 +1,192 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/fsl,imx8qxp-csr.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX8qm/qxp Control and Status Registers Module Bindings
|
||||
|
||||
maintainers:
|
||||
- Liu Ying <victor.liu@nxp.com>
|
||||
|
||||
description: |
|
||||
As a system controller, the Freescale i.MX8qm/qxp Control and Status
|
||||
Registers(CSR) module represents a set of miscellaneous registers of a
|
||||
specific subsystem. It may provide control and/or status report interfaces
|
||||
to a mix of standalone hardware devices within that subsystem. One typical
|
||||
use-case is for some other nodes to acquire a reference to the syscon node
|
||||
by phandle, and the other typical use-case is that the operating system
|
||||
should consider all subnodes of the CSR module as separate child devices.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^syscon@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- fsl,imx8qxp-mipi-lvds-csr
|
||||
- fsl,imx8qm-lvds-csr
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: ipg
|
||||
|
||||
patternProperties:
|
||||
"^(ldb|phy|pxl2dpi)$":
|
||||
type: object
|
||||
description: The possible child devices of the CSR module.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx8qxp-mipi-lvds-csr
|
||||
then:
|
||||
required:
|
||||
- pxl2dpi
|
||||
- ldb
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx8qm-lvds-csr
|
||||
then:
|
||||
required:
|
||||
- phy
|
||||
- ldb
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/imx8-lpcg.h>
|
||||
#include <dt-bindings/firmware/imx/rsrc.h>
|
||||
mipi_lvds_0_csr: syscon@56221000 {
|
||||
compatible = "fsl,imx8qxp-mipi-lvds-csr", "syscon", "simple-mfd";
|
||||
reg = <0x56221000 0x1000>;
|
||||
clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>;
|
||||
clock-names = "ipg";
|
||||
|
||||
mipi_lvds_0_pxl2dpi: pxl2dpi {
|
||||
compatible = "fsl,imx8qxp-pxl2dpi";
|
||||
fsl,sc-resource = <IMX_SC_R_MIPI_0>;
|
||||
power-domains = <&pd IMX_SC_R_MIPI_0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
|
||||
mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
|
||||
mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mipi_lvds_0_ldb: ldb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx8qxp-ldb";
|
||||
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
|
||||
<&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
|
||||
clock-names = "pixel", "bypass";
|
||||
power-domains = <&pd IMX_SC_R_LVDS_0>;
|
||||
|
||||
channel@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
phys = <&mipi_lvds_0_phy>;
|
||||
phy-names = "lvds_phy";
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
|
||||
remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
phys = <&mipi_lvds_0_phy>;
|
||||
phy-names = "lvds_phy";
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
|
||||
remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mipi_lvds_0_phy: phy@56228300 {
|
||||
compatible = "fsl,imx8qxp-mipi-dphy";
|
||||
reg = <0x56228300 0x100>;
|
||||
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>;
|
||||
clock-names = "phy_ref";
|
||||
#phy-cells = <0>;
|
||||
fsl,syscon = <&mipi_lvds_0_csr>;
|
||||
power-domains = <&pd IMX_SC_R_MIPI_0>;
|
||||
};
|
47
bindings/mfd/fsl-imx25-tsadc.txt
Normal file
47
bindings/mfd/fsl-imx25-tsadc.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
Freescale MX25 ADC/TSC MultiFunction Device (MFD)
|
||||
|
||||
This device combines two general purpose conversion queues one used for general
|
||||
ADC and the other used for touchscreens.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,imx25-tsadc".
|
||||
- reg: Start address and size of the memory area of
|
||||
the device
|
||||
- interrupts: Interrupt for this device
|
||||
(See: ../interrupt-controller/interrupts.txt)
|
||||
- clocks: An 'ipg' clock (See: ../clock/clock-bindings.txt)
|
||||
- interrupt-controller: This device is an interrupt controller. It
|
||||
controls the interrupts of both
|
||||
conversion queues.
|
||||
- #interrupt-cells: Should be '<1>'.
|
||||
- #address-cells: Should be '<1>'.
|
||||
- #size-cells: Should be '<1>'.
|
||||
|
||||
This device includes two conversion queues which can be added as subnodes.
|
||||
The first queue is for the touchscreen, the second for general purpose ADC.
|
||||
|
||||
Example:
|
||||
tscadc: tscadc@50030000 {
|
||||
compatible = "fsl,imx25-tsadc";
|
||||
reg = <0x50030000 0xc>;
|
||||
interrupts = <46>;
|
||||
clocks = <&clks 119>;
|
||||
clock-names = "ipg";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
tsc: tcq@50030400 {
|
||||
compatible = "fsl,imx25-tcq";
|
||||
reg = <0x50030400 0x60>;
|
||||
...
|
||||
};
|
||||
|
||||
adc: gcq@50030800 {
|
||||
compatible = "fsl,imx25-gcq";
|
||||
reg = <0x50030800 0x60>;
|
||||
...
|
||||
};
|
||||
};
|
203
bindings/mfd/gateworks-gsc.yaml
Normal file
203
bindings/mfd/gateworks-gsc.yaml
Normal file
@@ -0,0 +1,203 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Gateworks System Controller
|
||||
|
||||
description: |
|
||||
The Gateworks System Controller (GSC) is a device present across various
|
||||
Gateworks product families that provides a set of system related features
|
||||
such as the following (refer to the board hardware user manuals to see what
|
||||
features are present)
|
||||
- Watchdog Timer
|
||||
- GPIO
|
||||
- Pushbutton controller
|
||||
- Hardware monitor with ADC's for temperature and voltage rails and
|
||||
fan controller
|
||||
|
||||
maintainers:
|
||||
- Tim Harvey <tharvey@gateworks.com>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "gsc@[0-9a-f]{1,2}"
|
||||
compatible:
|
||||
const: gw,gsc
|
||||
|
||||
reg:
|
||||
description: I2C device address
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
adc:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: Optional hardware monitoring module
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: gw,gsc-adc
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: |
|
||||
Properties for a single ADC which can report cooked values
|
||||
(i.e. temperature sensor based on thermister), raw values
|
||||
(i.e. voltage rail with a pre-scaling resistor divider).
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: Register of the ADC
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
description: Name of the ADC input
|
||||
|
||||
gw,mode:
|
||||
description: |
|
||||
conversion mode:
|
||||
0 - temperature, in C*10
|
||||
1 - pre-scaled 24-bit voltage value
|
||||
2 - scaled voltage based on an optional resistor divider
|
||||
and optional offset
|
||||
3 - pre-scaled 16-bit voltage value
|
||||
4 - fan tach input to report RPM's
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3, 4]
|
||||
|
||||
gw,voltage-divider-ohms:
|
||||
description: Values of resistors for divider on raw ADC input
|
||||
maxItems: 2
|
||||
items:
|
||||
minimum: 1000
|
||||
maximum: 1000000
|
||||
|
||||
gw,voltage-offset-microvolt:
|
||||
description: |
|
||||
A positive voltage offset to apply to a raw ADC
|
||||
(i.e. to compensate for a diode drop).
|
||||
minimum: 0
|
||||
maximum: 1000000
|
||||
|
||||
required:
|
||||
- gw,mode
|
||||
- reg
|
||||
- label
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
patternProperties:
|
||||
"^fan-controller@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: Optional fan controller
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: gw,gsc-fan
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
description: The fan controller base address
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsc@20 {
|
||||
compatible = "gw,gsc";
|
||||
reg = <0x20>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc {
|
||||
compatible = "gw,gsc-adc";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 { /* A0: Board Temperature */
|
||||
reg = <0x00>;
|
||||
label = "temp";
|
||||
gw,mode = <0>;
|
||||
};
|
||||
|
||||
channel@2 { /* A1: Input Voltage (raw ADC) */
|
||||
reg = <0x02>;
|
||||
label = "vdd_vin";
|
||||
gw,mode = <1>;
|
||||
gw,voltage-divider-ohms = <22100 1000>;
|
||||
gw,voltage-offset-microvolt = <800000>;
|
||||
};
|
||||
|
||||
channel@b { /* A2: Battery voltage */
|
||||
reg = <0x0b>;
|
||||
label = "vdd_bat";
|
||||
gw,mode = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
fan-controller@2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "gw,gsc-fan";
|
||||
reg = <0x2c>;
|
||||
};
|
||||
};
|
||||
};
|
302
bindings/mfd/google,cros-ec.yaml
Normal file
302
bindings/mfd/google,cros-ec.yaml
Normal file
@@ -0,0 +1,302 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ChromeOS Embedded Controller
|
||||
|
||||
maintainers:
|
||||
- Benson Leung <bleung@chromium.org>
|
||||
- Guenter Roeck <groeck@chromium.org>
|
||||
|
||||
description:
|
||||
Google's ChromeOS EC is a microcontroller which talks to the AP and
|
||||
implements various functions such as keyboard and battery charging.
|
||||
The EC can be connected through various interfaces (I2C, SPI, and others)
|
||||
and the compatible string specifies which interface is being used.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- description:
|
||||
For implementations of the EC connected through I2C.
|
||||
const: google,cros-ec-i2c
|
||||
- description:
|
||||
For implementations of the EC connected through SPI.
|
||||
const: google,cros-ec-spi
|
||||
- description:
|
||||
For implementations of the FPMCU connected through SPI.
|
||||
items:
|
||||
- const: google,cros-ec-fp
|
||||
- const: google,cros-ec-spi
|
||||
- description:
|
||||
For implementations of the EC connected through RPMSG.
|
||||
const: google,cros-ec-rpmsg
|
||||
|
||||
controller-data: true
|
||||
|
||||
google,cros-ec-spi-pre-delay:
|
||||
description:
|
||||
This property specifies the delay in usecs between the
|
||||
assertion of the CS and the first clock pulse.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 0
|
||||
|
||||
google,cros-ec-spi-msg-delay:
|
||||
description:
|
||||
This property specifies the delay in usecs between messages.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 0
|
||||
|
||||
google,has-vbc-nvram:
|
||||
description:
|
||||
Some implementations of the EC include a small nvram space used to
|
||||
store verified boot context data. This boolean flag is used to specify
|
||||
whether this nvram is present or not.
|
||||
type: boolean
|
||||
|
||||
mediatek,rpmsg-name:
|
||||
description:
|
||||
Must be defined if the cros-ec is a rpmsg device for a Mediatek
|
||||
ARM Cortex M4 Co-processor. Contains the name of the rpmsg
|
||||
device. Used to match the subnode to the rpmsg device announced by
|
||||
the SCP.
|
||||
$ref: "/schemas/types.yaml#/definitions/string"
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
boot0-gpios:
|
||||
maxItems: 1
|
||||
description: Assert for bootloader mode.
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
wakeup-source:
|
||||
description: Button can wake-up the system.
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
typec:
|
||||
$ref: "/schemas/chrome/google,cros-ec-typec.yaml#"
|
||||
|
||||
ec-pwm:
|
||||
$ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
|
||||
deprecated: true
|
||||
|
||||
pwm:
|
||||
$ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
|
||||
|
||||
kbd-led-backlight:
|
||||
$ref: "/schemas/chrome/google,cros-kbd-led-backlight.yaml#"
|
||||
|
||||
keyboard-controller:
|
||||
$ref: "/schemas/input/google,cros-ec-keyb.yaml#"
|
||||
|
||||
proximity:
|
||||
$ref: "/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#"
|
||||
|
||||
codecs:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
'#address-cells':
|
||||
const: 2
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
"^ec-codec@[a-f0-9]+$":
|
||||
type: object
|
||||
$ref: "/schemas/sound/google,cros-ec-codec.yaml#"
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
cbas:
|
||||
type: object
|
||||
|
||||
description:
|
||||
This device is used to signal when a detachable base is attached
|
||||
to a Chrome OS tablet. This device cannot be detected at runtime.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: google,cros-cbas
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
"^i2c-tunnel[0-9]*$":
|
||||
type: object
|
||||
$ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#"
|
||||
|
||||
"^regulator@[0-9]+$":
|
||||
type: object
|
||||
$ref: "/schemas/regulator/google,cros-ec-regulator.yaml#"
|
||||
|
||||
"^extcon[0-9]*$":
|
||||
type: object
|
||||
$ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
const: google,cros-ec-spi
|
||||
then:
|
||||
properties:
|
||||
controller-data: false
|
||||
google,cros-ec-spi-pre-delay: false
|
||||
google,cros-ec-spi-msg-delay: false
|
||||
spi-max-frequency: false
|
||||
else:
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
const: google,cros-ec-rpmsg
|
||||
then:
|
||||
properties:
|
||||
mediatek,rpmsg-name: false
|
||||
|
||||
required:
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: google,cros-ec-fp
|
||||
then:
|
||||
properties:
|
||||
'#address-cells': false
|
||||
'#size-cells': false
|
||||
typec: false
|
||||
ec-pwm: false
|
||||
kbd-led-backlight: false
|
||||
keyboard-controller: false
|
||||
proximity: false
|
||||
codecs: false
|
||||
cbas: false
|
||||
|
||||
patternProperties:
|
||||
"^i2c-tunnel[0-9]*$": false
|
||||
"^regulator@[0-9]+$": false
|
||||
"^extcon[0-9]*$": false
|
||||
|
||||
# Using additionalProperties: false here and
|
||||
# listing true properties doesn't work
|
||||
|
||||
required:
|
||||
- reset-gpios
|
||||
- boot0-gpios
|
||||
- vdd-supply
|
||||
else:
|
||||
properties:
|
||||
reset-gpios: false
|
||||
boot0-gpios: false
|
||||
vdd-supply: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
# Example for I2C
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cros-ec@1e {
|
||||
compatible = "google,cros-ec-i2c";
|
||||
reg = <0x1e>;
|
||||
interrupts = <6 0>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
};
|
||||
};
|
||||
|
||||
# Example for SPI
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
spi0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
reg = <0x0>;
|
||||
google,cros-ec-spi-msg-delay = <30>;
|
||||
google,cros-ec-spi-pre-delay = <10>;
|
||||
interrupts = <99 0>;
|
||||
interrupt-parent = <&gpio7>;
|
||||
spi-max-frequency = <5000000>;
|
||||
|
||||
proximity {
|
||||
compatible = "google,cros-ec-mkbp-proximity";
|
||||
};
|
||||
|
||||
cbas {
|
||||
compatible = "google,cros-cbas";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Example for RPMSG
|
||||
- |
|
||||
scp0 {
|
||||
cros-ec {
|
||||
compatible = "google,cros-ec-rpmsg";
|
||||
};
|
||||
};
|
||||
|
||||
# Example for FPMCU
|
||||
- |
|
||||
spi0 {
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
ec@0 {
|
||||
compatible = "google,cros-ec-fp", "google,cros-ec-spi";
|
||||
reg = <0x0>;
|
||||
interrupt-parent = <&gpio_controller>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||
spi-max-frequency = <3000000>;
|
||||
reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>;
|
||||
boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>;
|
||||
vdd-supply = <&pp3300_fp_mcu>;
|
||||
};
|
||||
};
|
||||
...
|
40
bindings/mfd/hi6421.txt
Normal file
40
bindings/mfd/hi6421.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
* HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd.
|
||||
|
||||
Required parent device properties:
|
||||
- compatible : One of the following chip-specific strings:
|
||||
"hisilicon,hi6421-pmic";
|
||||
"hisilicon,hi6421v530-pmic";
|
||||
- reg : register range space of hi6421;
|
||||
|
||||
Supported Hi6421 sub-devices include:
|
||||
|
||||
Device IRQ Names Supply Names Description
|
||||
------ --------- ------------ -----------
|
||||
regulators : None : None : Regulators
|
||||
|
||||
Required child device properties:
|
||||
None.
|
||||
|
||||
Example:
|
||||
hi6421 {
|
||||
compatible = "hisilicon,hi6421-pmic";
|
||||
reg = <0xfcc00000 0x0180>; /* 0x60 << 2 */
|
||||
|
||||
regulators {
|
||||
// supply for MLC NAND/ eMMC
|
||||
hi6421_vout0_reg: hi6421_vout0 {
|
||||
regulator-name = "VOUT0";
|
||||
regulator-min-microvolt = <2850000>;
|
||||
regulator-max-microvolt = <2850000>;
|
||||
};
|
||||
|
||||
// supply for 26M Oscillator
|
||||
hi6421_vout1_reg: hi6421_vout1 {
|
||||
regulator-name = "VOUT1";
|
||||
regulator-min-microvolt = <1700000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
137
bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
Normal file
137
bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
Normal file
@@ -0,0 +1,137 @@
|
||||
# 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/mfd/hisilicon,hi6421-spmi-pmic.yaml
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "pmic@[0-9a-f]"
|
||||
|
||||
compatible:
|
||||
const: hisilicon,hi6421v600-spmi
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
'^ldo[0-9]+$':
|
||||
type: object
|
||||
|
||||
$ref: "/schemas/regulator/regulator.yaml#"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
pmic: pmic@0 {
|
||||
compatible = "hisilicon,hi6421v600-spmi";
|
||||
reg = <0 0>;
|
||||
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&gpio28>;
|
||||
interrupts = <0 0>;
|
||||
|
||||
regulators {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ldo3: ldo3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldo4: ldo4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <1725000>;
|
||||
regulator-max-microvolt = <1900000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldo9: ldo9 {
|
||||
regulator-name = "ldo9";
|
||||
regulator-min-microvolt = <1750000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldo15: ldo15 {
|
||||
regulator-name = "ldo15";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo16: ldo16 {
|
||||
regulator-name = "ldo16";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldo17: ldo17 {
|
||||
regulator-name = "ldo17";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo33: ldo33 {
|
||||
regulator-name = "ldo33";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldo34: ldo34 {
|
||||
regulator-name = "ldo34";
|
||||
regulator-min-microvolt = <2600000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
33
bindings/mfd/hisilicon,hi655x.txt
Normal file
33
bindings/mfd/hisilicon,hi655x.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
Hisilicon Hi655x Power Management Integrated Circuit (PMIC)
|
||||
|
||||
The hardware layout for access PMIC Hi655x from AP SoC Hi6220.
|
||||
Between PMIC Hi655x and Hi6220, the physical signal channel is SSI.
|
||||
We can use memory-mapped I/O to communicate.
|
||||
|
||||
+----------------+ +-------------+
|
||||
| | | |
|
||||
| Hi6220 | SSI bus | Hi655x |
|
||||
| |-------------| |
|
||||
| |(REGMAP_MMIO)| |
|
||||
+----------------+ +-------------+
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "hisilicon,hi655x-pmic".
|
||||
- reg: Base address of PMIC on Hi6220 SoC.
|
||||
- interrupt-controller: Hi655x has internal IRQs (has own IRQ domain).
|
||||
- pmic-gpios: The GPIO used by PMIC IRQ.
|
||||
- #clock-cells: From common clock binding; shall be set to 0
|
||||
|
||||
Optional properties:
|
||||
- clock-output-names: From common clock binding to override the
|
||||
default output clock name
|
||||
|
||||
Example:
|
||||
pmic: pmic@f8000000 {
|
||||
compatible = "hisilicon,hi655x-pmic";
|
||||
reg = <0x0 0xf8000000 0x0 0x1000>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
|
||||
#clock-cells = <0>;
|
||||
}
|
179
bindings/mfd/iqs62x.yaml
Normal file
179
bindings/mfd/iqs62x.yaml
Normal file
@@ -0,0 +1,179 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/iqs62x.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Azoteq IQS620A/621/622/624/625 Multi-Function Sensors
|
||||
|
||||
maintainers:
|
||||
- Jeff LaBundy <jeff@labundy.com>
|
||||
|
||||
description: |
|
||||
The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
|
||||
integrate multiple sensing technologies in a single package.
|
||||
|
||||
Link to datasheets: https://www.azoteq.com/
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- azoteq,iqs620a
|
||||
- azoteq,iqs621
|
||||
- azoteq,iqs622
|
||||
- azoteq,iqs624
|
||||
- azoteq,iqs625
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
firmware-name:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description:
|
||||
Specifies the name of the calibration and configuration file selected by
|
||||
the driver. If this property is omitted, the name is chosen based on the
|
||||
device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A).
|
||||
|
||||
keys:
|
||||
$ref: ../input/iqs62x-keys.yaml
|
||||
|
||||
pwm:
|
||||
$ref: ../pwm/iqs620a-pwm.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
/*
|
||||
* Dual capacitive buttons with proximity-activated function, unipolar lid
|
||||
* switch and panel-mounted LED.
|
||||
*/
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
iqs620a@44 {
|
||||
compatible = "azoteq,iqs620a";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
keys {
|
||||
compatible = "azoteq,iqs620a-keys";
|
||||
|
||||
linux,keycodes = <KEY_SELECT>,
|
||||
<KEY_MENU>,
|
||||
<KEY_OK>,
|
||||
<KEY_MENU>;
|
||||
|
||||
hall-switch-south {
|
||||
linux,code = <SW_LID>;
|
||||
azoteq,use-prox;
|
||||
};
|
||||
};
|
||||
|
||||
iqs620a_pwm: pwm {
|
||||
compatible = "azoteq,iqs620a-pwm";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pwmleds {
|
||||
compatible = "pwm-leds";
|
||||
|
||||
led-1 {
|
||||
pwms = <&iqs620a_pwm 0 1000000>;
|
||||
max-brightness = <255>;
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
/* Single inductive button with bipolar dock/tablet-mode switch. */
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
iqs620a@44 {
|
||||
compatible = "azoteq,iqs620a";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
firmware-name = "iqs620a_coil.bin";
|
||||
|
||||
keys {
|
||||
compatible = "azoteq,iqs620a-keys";
|
||||
|
||||
linux,keycodes = <0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<KEY_MUTE>;
|
||||
|
||||
hall-switch-north {
|
||||
linux,code = <SW_DOCK>;
|
||||
};
|
||||
|
||||
hall-switch-south {
|
||||
linux,code = <SW_TABLET_MODE>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
/* Dual capacitive buttons with volume knob. */
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
iqs624@44 {
|
||||
compatible = "azoteq,iqs624";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
keys {
|
||||
compatible = "azoteq,iqs624-keys";
|
||||
|
||||
linux,keycodes = <BTN_0>,
|
||||
<0>,
|
||||
<BTN_1>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>,
|
||||
<KEY_VOLUMEUP>,
|
||||
<KEY_VOLUMEDOWN>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
44
bindings/mfd/khadas,mcu.yaml
Normal file
44
bindings/mfd/khadas,mcu.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/khadas,mcu.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Khadas on-board Microcontroller
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||
|
||||
description: |
|
||||
Khadas embeds a microcontroller on their VIM and Edge boards adding some
|
||||
system feature as PWM Fan control (for VIM2 rev14 or VIM3), User memory
|
||||
storage, IR/Key resume control, system power LED control and more.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- khadas,mcu # MCU revision is discoverable
|
||||
|
||||
"#cooling-cells": # Only needed for boards having FAN control feature
|
||||
const: 2
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
khadas_mcu: system-controller@18 {
|
||||
compatible = "khadas,mcu";
|
||||
reg = <0x18>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
};
|
153
bindings/mfd/kontron,sl28cpld.yaml
Normal file
153
bindings/mfd/kontron,sl28cpld.yaml
Normal file
@@ -0,0 +1,153 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Kontron's sl28cpld board management controller
|
||||
|
||||
maintainers:
|
||||
- Michael Walle <michael@walle.cc>
|
||||
|
||||
description: |
|
||||
The board management controller may contain different IP blocks like
|
||||
watchdog, fan monitoring, PWM controller, interrupt controller and a
|
||||
GPIO controller.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: kontron,sl28cpld
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C device address.
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
patternProperties:
|
||||
"^gpio(@[0-9a-f]+)?$":
|
||||
$ref: ../gpio/kontron,sl28cpld-gpio.yaml
|
||||
|
||||
"^hwmon(@[0-9a-f]+)?$":
|
||||
$ref: ../hwmon/kontron,sl28cpld-hwmon.yaml
|
||||
|
||||
"^interrupt-controller(@[0-9a-f]+)?$":
|
||||
$ref: ../interrupt-controller/kontron,sl28cpld-intc.yaml
|
||||
|
||||
"^pwm(@[0-9a-f]+)?$":
|
||||
$ref: ../pwm/kontron,sl28cpld-pwm.yaml
|
||||
|
||||
"^watchdog(@[0-9a-f]+)?$":
|
||||
$ref: ../watchdog/kontron,sl28cpld-wdt.yaml
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sl28cpld@4a {
|
||||
compatible = "kontron,sl28cpld";
|
||||
reg = <0x4a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
watchdog@4 {
|
||||
compatible = "kontron,sl28cpld-wdt";
|
||||
reg = <0x4>;
|
||||
kontron,assert-wdt-timeout-pin;
|
||||
};
|
||||
|
||||
hwmon@b {
|
||||
compatible = "kontron,sl28cpld-fan";
|
||||
reg = <0xb>;
|
||||
};
|
||||
|
||||
pwm@c {
|
||||
compatible = "kontron,sl28cpld-pwm";
|
||||
reg = <0xc>;
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
|
||||
pwm@e {
|
||||
compatible = "kontron,sl28cpld-pwm";
|
||||
reg = <0xe>;
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@10 {
|
||||
compatible = "kontron,sl28cpld-gpio";
|
||||
reg = <0x10>;
|
||||
interrupts-extended = <&gpio2 6
|
||||
IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-line-names = "a", "b", "c";
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@15 {
|
||||
compatible = "kontron,sl28cpld-gpio";
|
||||
reg = <0x15>;
|
||||
interrupts-extended = <&gpio2 6
|
||||
IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@1a {
|
||||
compatible = "kontron,sl28cpld-gpo";
|
||||
reg = <0x1a>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
gpio@1b {
|
||||
compatible = "kontron,sl28cpld-gpi";
|
||||
reg = <0x1b>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
interrupt-controller@1c {
|
||||
compatible = "kontron,sl28cpld-intc";
|
||||
reg = <0x1c>;
|
||||
interrupts-extended = <&gpio2 6
|
||||
IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
33
bindings/mfd/lp3943.txt
Normal file
33
bindings/mfd/lp3943.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
TI/National Semiconductor LP3943 MFD driver
|
||||
|
||||
Required properties:
|
||||
- compatible: "ti,lp3943"
|
||||
- reg: I2C slave address. From 0x60 to 0x67.
|
||||
|
||||
LP3943 consists of two sub-devices, lp3943-gpio and lp3943-pwm.
|
||||
|
||||
For the LP3943 GPIO properties please refer to:
|
||||
Documentation/devicetree/bindings/gpio/gpio-lp3943.txt
|
||||
|
||||
For the LP3943 PWM properties please refer to:
|
||||
Documentation/devicetree/bindings/pwm/pwm-lp3943.txt
|
||||
|
||||
Example:
|
||||
|
||||
lp3943@60 {
|
||||
compatible = "ti,lp3943";
|
||||
reg = <0x60>;
|
||||
|
||||
gpioex: gpio {
|
||||
compatible = "ti,lp3943-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
pwm3943: pwm {
|
||||
compatible = "ti,lp3943-pwm";
|
||||
#pwm-cells = <2>;
|
||||
ti,pwm0 = <8 9 10>;
|
||||
ti,pwm1 = <15>;
|
||||
};
|
||||
};
|
67
bindings/mfd/lp873x.txt
Normal file
67
bindings/mfd/lp873x.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
TI LP873X PMIC MFD driver
|
||||
|
||||
Required properties:
|
||||
- compatible: "ti,lp8732", "ti,lp8733"
|
||||
- reg: I2C slave address.
|
||||
- gpio-controller: Marks the device node as a GPIO Controller.
|
||||
- #gpio-cells: Should be two. The first cell is the pin number and
|
||||
the second cell is used to specify flags.
|
||||
See ../gpio/gpio.txt for more information.
|
||||
- xxx-in-supply: Phandle to parent supply node of each regulator
|
||||
populated under regulators node. xxx can be
|
||||
buck0, buck1, ldo0 or ldo1.
|
||||
- regulators: List of child nodes that specify the regulator
|
||||
initialization data.
|
||||
Example:
|
||||
|
||||
pmic: lp8733@60 {
|
||||
compatible = "ti,lp8733";
|
||||
reg = <0x60>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
buck0-in-supply = <&vsys_3v3>;
|
||||
buck1-in-supply = <&vsys_3v3>;
|
||||
ldo0-in-supply = <&vsys_3v3>;
|
||||
ldo1-in-supply = <&vsys_3v3>;
|
||||
|
||||
regulators {
|
||||
lp8733_buck0: buck0 {
|
||||
regulator-name = "lp8733-buck0";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-min-microamp = <1500000>;
|
||||
regulator-max-microamp = <4000000>;
|
||||
regulator-ramp-delay = <10000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
lp8733_buck1: buck1 {
|
||||
regulator-name = "lp8733-buck1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-min-microamp = <1500000>;
|
||||
regulator-max-microamp = <4000000>;
|
||||
regulator-ramp-delay = <10000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
lp8733_ldo0: ldo0 {
|
||||
regulator-name = "lp8733-ldo0";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
lp8733_ldo1: ldo1 {
|
||||
regulator-name = "lp8733-ldo1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
162
bindings/mfd/max77620.txt
Normal file
162
bindings/mfd/max77620.txt
Normal file
@@ -0,0 +1,162 @@
|
||||
MAX77620 Power management IC from Maxim Semiconductor.
|
||||
|
||||
Required properties:
|
||||
-------------------
|
||||
- compatible: Must be one of
|
||||
"maxim,max77620"
|
||||
"maxim,max20024"
|
||||
"maxim,max77663"
|
||||
- reg: I2C device address.
|
||||
|
||||
Optional properties:
|
||||
-------------------
|
||||
- interrupts: The interrupt on the parent the controller is
|
||||
connected to.
|
||||
- interrupt-controller: Marks the device node as an interrupt controller.
|
||||
- #interrupt-cells: is <2> and their usage is compliant to the 2 cells
|
||||
variant of <../interrupt-controller/interrupts.txt>
|
||||
IRQ numbers for different interrupt source of MAX77620
|
||||
are defined at dt-bindings/mfd/max77620.h.
|
||||
|
||||
- system-power-controller: Indicates that this PMIC is controlling the
|
||||
system power, see [1] for more details.
|
||||
|
||||
[1] Documentation/devicetree/bindings/power/power-controller.txt
|
||||
|
||||
Optional subnodes and their properties:
|
||||
=======================================
|
||||
|
||||
Flexible power sequence configurations:
|
||||
--------------------------------------
|
||||
The Flexible Power Sequencer (FPS) allows each regulator to power up under
|
||||
hardware or software control. Additionally, each regulator can power on
|
||||
independently or among a group of other regulators with an adjustable power-up
|
||||
and power-down delays (sequencing). GPIO1, GPIO2, and GPIO3 can be programmed
|
||||
to be part of a sequence allowing external regulators to be sequenced along
|
||||
with internal regulators. 32KHz clock can be programmed to be part of a
|
||||
sequence.
|
||||
|
||||
The flexible sequencing structure consists of two hardware enable inputs
|
||||
(EN0, EN1), and 3 master sequencing timers called FPS0, FPS1 and FPS2.
|
||||
Each master sequencing timer is programmable through its configuration
|
||||
register to have a hardware enable source (EN1 or EN2) or a software enable
|
||||
source (SW). When enabled/disabled, the master sequencing timer generates
|
||||
eight sequencing events on different time periods called slots. The time
|
||||
period between each event is programmable within the configuration register.
|
||||
Each regulator, GPIO1, GPIO2, GPIO3, and 32KHz clock has a flexible power
|
||||
sequence slave register which allows its enable source to be specified as
|
||||
a flexible power sequencer timer or a software bit. When a FPS source of
|
||||
regulators, GPIOs and clocks specifies the enable source to be a flexible
|
||||
power sequencer, the power up and power down delays can be specified in
|
||||
the regulators, GPIOs and clocks flexible power sequencer configuration
|
||||
registers.
|
||||
|
||||
When FPS event cleared (set to LOW), regulators, GPIOs and 32KHz
|
||||
clock are set into following state at the sequencing event that
|
||||
corresponds to its flexible sequencer configuration register.
|
||||
Sleep state: In this state, regulators, GPIOs
|
||||
and 32KHz clock get disabled at
|
||||
the sequencing event.
|
||||
Global Low Power Mode (GLPM): In this state, regulators are set in
|
||||
low power mode at the sequencing event.
|
||||
|
||||
The configuration parameters of FPS is provided through sub-node "fps"
|
||||
and their child for FPS specific. The child node name for FPS are "fps0",
|
||||
"fps1", and "fps2" for FPS0, FPS1 and FPS2 respectively.
|
||||
|
||||
The FPS configurations like FPS source, power up and power down slots for
|
||||
regulators, GPIOs and 32kHz clocks are provided in their respective
|
||||
configuration nodes which is explained in respective sub-system DT
|
||||
binding document.
|
||||
|
||||
There is need for different FPS configuration parameters based on system
|
||||
state like when system state changed from active to suspend or active to
|
||||
power off (shutdown).
|
||||
|
||||
Optional properties:
|
||||
-------------------
|
||||
-maxim,fps-event-source: u32, FPS event source like external
|
||||
hardware input to PMIC i.e. EN0, EN1 or
|
||||
software (SW).
|
||||
The macros are defined on
|
||||
dt-bindings/mfd/max77620.h
|
||||
for different control source.
|
||||
- MAX77620_FPS_EVENT_SRC_EN0
|
||||
for hardware input pin EN0.
|
||||
- MAX77620_FPS_EVENT_SRC_EN1
|
||||
for hardware input pin EN1.
|
||||
- MAX77620_FPS_EVENT_SRC_SW
|
||||
for software control.
|
||||
|
||||
-maxim,shutdown-fps-time-period-us: u32, FPS time period in microseconds
|
||||
when system enters in to shutdown
|
||||
state.
|
||||
|
||||
-maxim,suspend-fps-time-period-us: u32, FPS time period in microseconds
|
||||
when system enters in to suspend state.
|
||||
|
||||
-maxim,device-state-on-disabled-event: u32, describe the PMIC state when FPS
|
||||
event cleared (set to LOW) whether it
|
||||
should go to sleep state or low-power
|
||||
state. Following are valid values:
|
||||
- MAX77620_FPS_INACTIVE_STATE_SLEEP
|
||||
to set the PMIC state to sleep.
|
||||
- MAX77620_FPS_INACTIVE_STATE_LOW_POWER
|
||||
to set the PMIC state to low
|
||||
power.
|
||||
Absence of this property or other value
|
||||
will not change device state when FPS
|
||||
event get cleared.
|
||||
|
||||
Here supported time periods by device in microseconds are as follows:
|
||||
MAX77620 supports 40, 80, 160, 320, 640, 1280, 2560 and 5120 microseconds.
|
||||
MAX20024 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds.
|
||||
MAX77663 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds.
|
||||
|
||||
-maxim,power-ok-control: configure map power ok bit
|
||||
1: Enables POK(Power OK) to control nRST_IO and GPIO1
|
||||
POK function.
|
||||
0: Disables POK control.
|
||||
if property missing, do not configure MPOK bit.
|
||||
If POK mapping is enabled for GPIO1/nRST_IO then,
|
||||
GPIO1/nRST_IO pins are HIGH only if all rails
|
||||
that have POK control enabled are HIGH.
|
||||
If any of the rails goes down(which are enabled for POK
|
||||
control) then, GPIO1/nRST_IO goes LOW.
|
||||
this property is valid for max20024 only.
|
||||
|
||||
For DT binding details of different sub modules like GPIO, pincontrol,
|
||||
regulator, power, please refer respective device-tree binding document
|
||||
under their respective sub-system directories.
|
||||
|
||||
Example:
|
||||
--------
|
||||
#include <dt-bindings/mfd/max77620.h>
|
||||
|
||||
max77620@3c {
|
||||
compatible = "maxim,max77620";
|
||||
reg = <0x3c>;
|
||||
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <0 86 IRQ_TYPE_NONE>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
fps {
|
||||
fps0 {
|
||||
maxim,shutdown-fps-time-period-us = <1280>;
|
||||
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
|
||||
};
|
||||
|
||||
fps1 {
|
||||
maxim,shutdown-fps-time-period-us = <1280>;
|
||||
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
|
||||
};
|
||||
|
||||
fps2 {
|
||||
maxim,shutdown-fps-time-period-us = <1280>;
|
||||
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_SW>;
|
||||
};
|
||||
};
|
||||
};
|
151
bindings/mfd/max77650.yaml
Normal file
151
bindings/mfd/max77650.yaml
Normal file
@@ -0,0 +1,151 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/max77650.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MAX77650 ultra low-power PMIC from Maxim Integrated.
|
||||
|
||||
maintainers:
|
||||
- Bartosz Golaszewski <bgolaszewski@baylibre.com>
|
||||
|
||||
description: |
|
||||
MAX77650 is an ultra-low power PMIC providing battery charging and power
|
||||
supply for low-power IoT and wearable applications.
|
||||
|
||||
The GPIO-controller module is represented as part of the top-level PMIC
|
||||
node. The device exposes a single GPIO line.
|
||||
|
||||
For device-tree bindings of other sub-modules (regulator, power supply,
|
||||
LEDs and onkey) refer to the binding documents under the respective
|
||||
sub-system directories.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77650
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C device address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the IRQ number, the second cell is the trigger type.
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the pin number and the second cell is used to specify
|
||||
the gpio active state.
|
||||
|
||||
gpio-line-names:
|
||||
maxItems: 1
|
||||
description:
|
||||
Single string containing the name of the GPIO line.
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/max77650-regulator.yaml
|
||||
|
||||
charger:
|
||||
$ref: ../power/supply/max77650-charger.yaml
|
||||
|
||||
leds:
|
||||
$ref: ../leds/leds-max77650.yaml
|
||||
|
||||
onkey:
|
||||
$ref: ../input/max77650-onkey.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
- gpio-controller
|
||||
- "#gpio-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@48 {
|
||||
compatible = "maxim,max77650";
|
||||
reg = <0x48>;
|
||||
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&gpio2>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-line-names = "max77650-charger";
|
||||
|
||||
regulators {
|
||||
compatible = "maxim,max77650-regulator";
|
||||
|
||||
max77650_ldo: regulator-ldo {
|
||||
regulator-compatible = "ldo";
|
||||
regulator-name = "max77650-ldo";
|
||||
regulator-min-microvolt = <1350000>;
|
||||
regulator-max-microvolt = <2937500>;
|
||||
};
|
||||
|
||||
max77650_sbb0: regulator-sbb0 {
|
||||
regulator-compatible = "sbb0";
|
||||
regulator-name = "max77650-sbb0";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1587500>;
|
||||
};
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "maxim,max77650-charger";
|
||||
input-voltage-min-microvolt = <4200000>;
|
||||
input-current-limit-microamp = <285000>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "maxim,max77650-led";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
label = "blue:usr0";
|
||||
};
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
label = "red:usr1";
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led@2 {
|
||||
reg = <2>;
|
||||
label = "green:usr2";
|
||||
};
|
||||
};
|
||||
|
||||
onkey {
|
||||
compatible = "maxim,max77650-onkey";
|
||||
linux,code = <KEY_END>;
|
||||
maxim,onkey-slide;
|
||||
};
|
||||
};
|
||||
};
|
64
bindings/mfd/max8925.txt
Normal file
64
bindings/mfd/max8925.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
* Maxim max8925 Power Management IC
|
||||
|
||||
Required parent device properties:
|
||||
- compatible : "maxim,max8925"
|
||||
- reg : the I2C slave address for the max8925 chip
|
||||
- interrupts : IRQ line for the max8925 chip
|
||||
- interrupt-controller: describes the max8925 as an interrupt
|
||||
controller (has its own domain)
|
||||
- #interrupt-cells : should be 1.
|
||||
- The cell is the max8925 local IRQ number
|
||||
|
||||
Optional parent device properties:
|
||||
- maxim,tsc-irq: there are 2 IRQ lines for max8925, one is indicated in
|
||||
interrupts property, the other is indicated here.
|
||||
|
||||
max8925 consists of a large and varied group of sub-devices:
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
max8925-onkey : : On key
|
||||
max8925-rtc : : RTC
|
||||
max8925-regulator : : Regulators
|
||||
max8925-backlight : : Backlight
|
||||
max8925-touch : : Touchscreen
|
||||
max8925-power : : Charger
|
||||
|
||||
Example:
|
||||
|
||||
pmic: max8925@3c {
|
||||
compatible = "maxim,max8925";
|
||||
reg = <0x3c>;
|
||||
interrupts = <1>;
|
||||
interrupt-parent = <&intcmux4>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
maxim,tsc-irq = <0>;
|
||||
|
||||
regulators {
|
||||
SDV1 {
|
||||
regulator-min-microvolt = <637500>;
|
||||
regulator-max-microvolt = <1425000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <3900000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
};
|
||||
backlight {
|
||||
maxim,max8925-dual-string = <0>;
|
||||
};
|
||||
charger {
|
||||
batt-detect = <0>;
|
||||
topoff-threshold = <1>;
|
||||
fast-charge = <7>;
|
||||
no-temp-support = <0>;
|
||||
no-insert-detect = <0>;
|
||||
};
|
||||
};
|
125
bindings/mfd/max8998.txt
Normal file
125
bindings/mfd/max8998.txt
Normal file
@@ -0,0 +1,125 @@
|
||||
* Maxim MAX8998, National/TI LP3974 multi-function device
|
||||
|
||||
The Maxim MAX8998 is a multi-function device which includes voltage/current
|
||||
regulators, real time clock, battery charging controller and several
|
||||
other sub-blocks. It is interfaced using an I2C interface. Each sub-block
|
||||
is addressed by the host system using different i2c slave address.
|
||||
|
||||
PMIC sub-block
|
||||
--------------
|
||||
|
||||
The PMIC sub-block contains a number of voltage and current regulators,
|
||||
with controllable parameters and dynamic voltage scaling capability.
|
||||
In addition, it includes a real time clock and battery charging controller
|
||||
as well. It is accessible at I2C address 0x66.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following:
|
||||
- "maxim,max8998" for Maxim MAX8998
|
||||
- "national,lp3974" or "ti,lp3974" for National/TI LP3974.
|
||||
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
|
||||
|
||||
Optional properties:
|
||||
- interrupts: Interrupt specifiers for two interrupt sources.
|
||||
- First interrupt specifier is for main interrupt.
|
||||
- Second interrupt specifier is for power-on/-off interrupt.
|
||||
- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used
|
||||
for buck 1 dvs. The format of the gpio specifier depends on the gpio
|
||||
controller.
|
||||
- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used
|
||||
for buck 2 dvs. The format of the gpio specifier depends on the gpio
|
||||
controller.
|
||||
- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 4 options selectable by the dvs gpios. The value of this
|
||||
property should be 0, 1, 2 or 3. If not specified or out of range,
|
||||
a default value of 0 is taken.
|
||||
- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 2 options selectable by the dvs gpios. The value of this
|
||||
property should be 0 or 1. If not specified or out of range, a default
|
||||
value of 0 is taken.
|
||||
- max8998,pmic-buck-voltage-lock: If present, disallows changing of
|
||||
preprogrammed buck dvfs voltages.
|
||||
|
||||
Additional properties required if max8998,pmic-buck1-dvs-gpios is defined:
|
||||
- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts
|
||||
for buck1 regulator that can be selected using dvs gpio.
|
||||
|
||||
Additional properties required if max8998,pmic-buck2-dvs-gpio is defined:
|
||||
- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts
|
||||
for buck2 regulator that can be selected using dvs gpio.
|
||||
|
||||
Regulators: All the regulators of MAX8998 to be instantiated shall be
|
||||
listed in a child node named 'regulators'. Each regulator is represented
|
||||
by a child node of the 'regulators' node.
|
||||
|
||||
regulator-name {
|
||||
/* standard regulator bindings here */
|
||||
};
|
||||
|
||||
Following regulators of the MAX8998 PMIC block are supported. Note that
|
||||
the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK
|
||||
number as described in MAX8998 datasheet.
|
||||
|
||||
- LDOn
|
||||
- valid values for n are 2 to 17
|
||||
- Example: LDO2, LDO10, LDO17
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 4.
|
||||
- Example: BUCK1, BUCK2, BUCK3, BUCK4
|
||||
|
||||
- ENVICHG: Battery Charging Current Monitor Output. This is a fixed
|
||||
voltage type regulator
|
||||
|
||||
- ESAFEOUT1: (ldo19)
|
||||
- ESAFEOUT2: (ld020)
|
||||
|
||||
- CHARGER: main battery charger current control
|
||||
|
||||
Standard regulator bindings are used inside regulator subnodes. Check
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
for more details.
|
||||
|
||||
Example:
|
||||
|
||||
pmic@66 {
|
||||
compatible = "maxim,max8998-pmic";
|
||||
reg = <0x66>;
|
||||
interrupt-parent = <&wakeup_eint>;
|
||||
interrupts = <4 0>, <3 0>;
|
||||
|
||||
/* Buck 1 DVS settings */
|
||||
max8998,pmic-buck1-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
|
||||
<&gpx0 1 1 0 0>; /* SET2 */
|
||||
max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
|
||||
<1000000>, <950000>;
|
||||
|
||||
/* Buck 2 DVS settings */
|
||||
max8998,pmic-buck2-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */
|
||||
max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>;
|
||||
|
||||
/* Regulators to instantiate */
|
||||
regulators {
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "VDD_ARM_1.2V";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
charger_reg: CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <90000>;
|
||||
regulator-max-microamp = <800000>;
|
||||
};
|
||||
};
|
||||
};
|
196
bindings/mfd/maxim,max14577.yaml
Normal file
196
bindings/mfd/maxim,max14577.yaml
Normal file
@@ -0,0 +1,196 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max14577.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX14577/MAX77836 MicroUSB and Companion Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for Maxim MAX14577/MAX77836 MicroUSB
|
||||
Integrated Circuit (MUIC).
|
||||
|
||||
The Maxim MAX14577 is a MicroUSB and Companion Power Management IC which
|
||||
includes voltage safeout regulators, charger and MicroUSB management IC.
|
||||
|
||||
The Maxim MAX77836 is a MicroUSB and Companion Power Management IC which
|
||||
includes voltage safeout and LDO regulators, charger, fuel-gauge and MicroUSB
|
||||
management IC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- maxim,max14577
|
||||
- maxim,max77836
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
charger:
|
||||
$ref: /schemas/power/supply/maxim,max14577.yaml
|
||||
|
||||
extcon:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- maxim,max14577-muic
|
||||
- maxim,max77836-muic
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
regulators:
|
||||
$ref: /schemas/regulator/maxim,max14577.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- reg
|
||||
- charger
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: maxim,max14577
|
||||
then:
|
||||
properties:
|
||||
charger:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max14577-charger
|
||||
extcon:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max14577-muic
|
||||
regulator:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max14577-regulator
|
||||
else:
|
||||
properties:
|
||||
charger:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77836-charger
|
||||
extcon:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77836-muic
|
||||
regulator:
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77836-regulator
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@25 {
|
||||
compatible = "maxim,max14577";
|
||||
reg = <0x25>;
|
||||
interrupt-parent = <&gpx1>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
extcon {
|
||||
compatible = "maxim,max14577-muic";
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "maxim,max14577-regulator";
|
||||
|
||||
SAFEOUT {
|
||||
regulator-name = "SAFEOUT";
|
||||
};
|
||||
|
||||
CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <90000>;
|
||||
regulator-max-microamp = <950000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "maxim,max14577-charger";
|
||||
|
||||
maxim,constant-uvolt = <4350000>;
|
||||
maxim,fast-charge-uamp = <450000>;
|
||||
maxim,eoc-uamp = <50000>;
|
||||
maxim,ovp-uvolt = <6500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@25 {
|
||||
compatible = "maxim,max77836";
|
||||
interrupt-parent = <&gpx1>;
|
||||
interrupts = <5 IRQ_TYPE_NONE>;
|
||||
reg = <0x25>;
|
||||
wakeup-source;
|
||||
|
||||
extcon {
|
||||
compatible = "maxim,max77836-muic";
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "maxim,max77836-regulator";
|
||||
|
||||
SAFEOUT {
|
||||
regulator-name = "SAFEOUT";
|
||||
};
|
||||
|
||||
CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <45000>;
|
||||
regulator-max-microamp = <475000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-name = "MOT_2.7V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <2700000>;
|
||||
};
|
||||
|
||||
LDO2 {
|
||||
regulator-name = "UNUSED_LDO2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3950000>;
|
||||
};
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "maxim,max77836-charger";
|
||||
|
||||
maxim,constant-uvolt = <4350000>;
|
||||
maxim,fast-charge-uamp = <225000>;
|
||||
maxim,eoc-uamp = <7500>;
|
||||
maxim,ovp-uvolt = <6500000>;
|
||||
};
|
||||
};
|
||||
};
|
132
bindings/mfd/maxim,max77686.yaml
Normal file
132
bindings/mfd/maxim,max77686.yaml
Normal file
@@ -0,0 +1,132 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max77686.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX77686 Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Chanwoo Choi <cw00.choi@samsung.com>
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for Maxim MAX77686 Power Management
|
||||
Integrated Circuit (PMIC).
|
||||
|
||||
The Maxim MAX77686 is a Power Management IC which includes voltage and
|
||||
current regulators, RTC and clock outputs.
|
||||
|
||||
The MAX77686 provides three 32.768khz clock outputs that can be controlled
|
||||
(gated/ungated) over I2C. The clock IDs are defined as preprocessor macros
|
||||
in dt-bindings/clock/maxim,max77686.h.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77686
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
voltage-regulators:
|
||||
$ref: ../regulator/maxim,max77686.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#clock-cells'
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
max77686: pmic@9 {
|
||||
compatible = "maxim,max77686";
|
||||
reg = <0x09>;
|
||||
|
||||
interrupt-parent = <&gpx0>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-0 = <&max77686_irq>;
|
||||
pinctrl-names = "default";
|
||||
wakeup-source;
|
||||
#clock-cells = <1>;
|
||||
|
||||
voltage-regulators {
|
||||
LDO1 {
|
||||
regulator-name = "VALIVE_1.0V_AP";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO2 {
|
||||
regulator-name = "VM1M2_1.2V_AP";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
LDO22 {
|
||||
regulator-name = "VMEM_VDD_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
BUCK1 {
|
||||
regulator-name = "VDD_MIF";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
BUCK2 {
|
||||
regulator-name = "VDD_ARM";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
BUCK9 {
|
||||
regulator-name = "CAM_ISP_CORE_1.2V";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
143
bindings/mfd/maxim,max77693.yaml
Normal file
143
bindings/mfd/maxim,max77693.yaml
Normal file
@@ -0,0 +1,143 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max77693.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX77693 MicroUSB and Companion Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Chanwoo Choi <cw00.choi@samsung.com>
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for Maxim MAX77693 MicroUSB
|
||||
Integrated Circuit (MUIC).
|
||||
|
||||
The Maxim MAX77693 is a MicroUSB and Companion Power Management IC which
|
||||
includes voltage current regulators, charger, LED/flash, haptic motor driver
|
||||
and MicroUSB management IC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77693
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
charger:
|
||||
$ref: /schemas/power/supply/maxim,max77693.yaml
|
||||
|
||||
led:
|
||||
$ref: /schemas/leds/maxim,max77693.yaml
|
||||
|
||||
max77693-muic:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77693-muic
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
motor-driver:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77693-haptic
|
||||
|
||||
haptic-supply:
|
||||
description: Power supply to the haptic motor
|
||||
|
||||
pwms:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- haptic-supply
|
||||
- pwms
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/maxim,max77693.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@66 {
|
||||
compatible = "maxim,max77693";
|
||||
reg = <0x66>;
|
||||
interrupt-parent = <&gpx1>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
regulators {
|
||||
ESAFEOUT1 {
|
||||
regulator-name = "ESAFEOUT1";
|
||||
};
|
||||
|
||||
ESAFEOUT2 {
|
||||
regulator-name = "ESAFEOUT2";
|
||||
};
|
||||
|
||||
CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <60000>;
|
||||
regulator-max-microamp = <2580000>;
|
||||
};
|
||||
};
|
||||
|
||||
motor-driver {
|
||||
compatible = "maxim,max77693-haptic";
|
||||
haptic-supply = <&ldo26_reg>;
|
||||
pwms = <&pwm 0 38022 0>;
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "maxim,max77693-charger";
|
||||
|
||||
maxim,constant-microvolt = <4350000>;
|
||||
maxim,min-system-microvolt = <3600000>;
|
||||
maxim,thermal-regulation-celsius = <100>;
|
||||
maxim,battery-overcurrent-microamp = <3500000>;
|
||||
maxim,charge-input-threshold-microvolt = <4300000>;
|
||||
};
|
||||
|
||||
led {
|
||||
compatible = "maxim,max77693-led";
|
||||
maxim,boost-mode = <LEDS_BOOST_FIXED>;
|
||||
maxim,boost-mvout = <5000>;
|
||||
maxim,mvsys-min = <2400>;
|
||||
|
||||
flash-led {
|
||||
label = "max77693-flash";
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
led-sources = <0>, <1>;
|
||||
led-max-microamp = <500000>;
|
||||
flash-max-microamp = <1250000>;
|
||||
flash-max-timeout-us = <1000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
68
bindings/mfd/maxim,max77714.yaml
Normal file
68
bindings/mfd/maxim,max77714.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max77714.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MAX77714 PMIC with GPIO, RTC and watchdog from Maxim Integrated.
|
||||
|
||||
maintainers:
|
||||
- Luca Ceresoli <luca.ceresoli@bootlin.com>
|
||||
|
||||
description: |
|
||||
MAX77714 is a Power Management IC with 4 buck regulators, 9
|
||||
low-dropout regulators, 8 GPIOs, RTC and watchdog.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77714
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the IRQ number, the second cell is the trigger type.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
'^(buck[0-3]|ldo[0-8])$':
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@1c {
|
||||
compatible = "maxim,max77714";
|
||||
reg = <0x1c>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
194
bindings/mfd/maxim,max77802.yaml
Normal file
194
bindings/mfd/maxim,max77802.yaml
Normal file
@@ -0,0 +1,194 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max77802.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX77802 Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Javier Martinez Canillas <javier@dowhile0.org>
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for Maxim MAX77802 Power Management
|
||||
Integrated Circuit (PMIC).
|
||||
|
||||
The Maxim MAX77802 is a Power Management IC which includes voltage and
|
||||
current regulators (10 high efficiency Buck regulators and 32 Low-DropOut
|
||||
(LDO)), RTC and clock outputs.
|
||||
|
||||
The MAX77802 provides two 32.768khz clock outputs that can be controlled
|
||||
(gated/ungated) over I2C. The clock IDs are defined as preprocessor macros
|
||||
in dt-bindings/clock/maxim,max77802.h.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77802
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
regulators:
|
||||
$ref: /schemas/regulator/maxim,max77802.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
inb1-supply:
|
||||
description: Power supply for buck1
|
||||
inb2-supply:
|
||||
description: Power supply for buck2
|
||||
inb3-supply:
|
||||
description: Power supply for buck3
|
||||
inb4-supply:
|
||||
description: Power supply for buck4
|
||||
inb5-supply:
|
||||
description: Power supply for buck5
|
||||
inb6-supply:
|
||||
description: Power supply for buck6
|
||||
inb7-supply:
|
||||
description: Power supply for buck7
|
||||
inb8-supply:
|
||||
description: Power supply for buck8
|
||||
inb9-supply:
|
||||
description: Power supply for buck9
|
||||
inb10-supply:
|
||||
description: Power supply for buck10
|
||||
|
||||
inl1-supply:
|
||||
description: Power supply for LDO8, LDO15
|
||||
inl2-supply:
|
||||
description: Power supply for LDO17, LDO27, LDO30, LDO35
|
||||
inl3-supply:
|
||||
description: Power supply for LDO3, LDO5, LDO7, LDO7
|
||||
inl4-supply:
|
||||
description: Power supply for LDO10, LDO11, LDO13, LDO14
|
||||
inl5-supply:
|
||||
description: Power supply for LDO9, LDO19
|
||||
inl6-supply:
|
||||
description: Power supply for LDO4, LDO21, LDO24, LDO33
|
||||
inl7-supply:
|
||||
description: Power supply for LDO18, LDO20, LDO28, LDO29
|
||||
inl9-supply:
|
||||
description: Power supply for LDO12, LDO23, LDO25, LDO26, LDO32, LDO34
|
||||
inl10-supply:
|
||||
description: Power supply for LDO1, LDO2
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#clock-cells'
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/regulator/maxim,max77802.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@9 {
|
||||
compatible = "maxim,max77802";
|
||||
interrupt-parent = <&gpx3>;
|
||||
interrupts = <1 IRQ_TYPE_NONE>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
|
||||
<&pmic_dvs_1>, <&pmic_dvs_2>, <&pmic_dvs_3>;
|
||||
wakeup-source;
|
||||
reg = <0x9>;
|
||||
#clock-cells = <1>;
|
||||
|
||||
inb1-supply = <&tps65090_dcdc2>;
|
||||
inb2-supply = <&tps65090_dcdc1>;
|
||||
inb3-supply = <&tps65090_dcdc2>;
|
||||
inb4-supply = <&tps65090_dcdc2>;
|
||||
inb5-supply = <&tps65090_dcdc1>;
|
||||
inb6-supply = <&tps65090_dcdc2>;
|
||||
inb7-supply = <&tps65090_dcdc1>;
|
||||
inb8-supply = <&tps65090_dcdc1>;
|
||||
inb9-supply = <&tps65090_dcdc1>;
|
||||
inb10-supply = <&tps65090_dcdc1>;
|
||||
|
||||
inl1-supply = <&buck5_reg>;
|
||||
inl2-supply = <&buck7_reg>;
|
||||
inl3-supply = <&buck9_reg>;
|
||||
inl4-supply = <&buck9_reg>;
|
||||
inl5-supply = <&buck9_reg>;
|
||||
inl6-supply = <&tps65090_dcdc2>;
|
||||
inl7-supply = <&buck9_reg>;
|
||||
inl9-supply = <&tps65090_dcdc2>;
|
||||
inl10-supply = <&buck7_reg>;
|
||||
|
||||
regulators {
|
||||
BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-coupled-with = <&buck3_reg>;
|
||||
regulator-coupled-max-spread = <300000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
BUCK10 {
|
||||
regulator-name = "vdd_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-name = "vdd_1v0";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
regulator-initial-mode = <MAX77802_OPMODE_NORMAL>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-mode = <MAX77802_OPMODE_LP>;
|
||||
};
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
LDO35 {
|
||||
regulator-name = "ldo_35";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
145
bindings/mfd/maxim,max77843.yaml
Normal file
145
bindings/mfd/maxim,max77843.yaml
Normal file
@@ -0,0 +1,145 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max77843.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX77843 MicroUSB and Companion Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for Maxim MAX77843 MicroUSB
|
||||
Integrated Circuit (MUIC).
|
||||
|
||||
The Maxim MAX77843 is a MicroUSB and Companion Power Management IC which
|
||||
includes voltage current regulators, charger, fuel-gauge, haptic motor driver
|
||||
and MicroUSB management IC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77843
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
extcon:
|
||||
$ref: /schemas/extcon/maxim,max77843.yaml
|
||||
|
||||
motor-driver:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77843-haptic
|
||||
|
||||
haptic-supply:
|
||||
description: Power supply to the haptic motor
|
||||
|
||||
pwms:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- haptic-supply
|
||||
- pwms
|
||||
|
||||
regulators:
|
||||
$ref: /schemas/regulator/maxim,max77843.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@66 {
|
||||
compatible = "maxim,max77843";
|
||||
interrupt-parent = <&gpa1>;
|
||||
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
|
||||
reg = <0x66>;
|
||||
|
||||
extcon {
|
||||
compatible = "maxim,max77843-muic";
|
||||
|
||||
connector {
|
||||
compatible = "samsung,usb-connector-11pin",
|
||||
"usb-b-connector";
|
||||
label = "micro-USB";
|
||||
type = "micro";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
/*
|
||||
* TODO: The DTS this is based on does not have
|
||||
* port@0 which is a required property. The ports
|
||||
* look incomplete and need fixing.
|
||||
* Add a disabled port just to satisfy dtschema.
|
||||
*/
|
||||
reg = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
endpoint {
|
||||
remote-endpoint = <&mhl_to_musb_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
port {
|
||||
endpoint {
|
||||
remote-endpoint = <&usb_to_muic>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "maxim,max77843-regulator";
|
||||
|
||||
SAFEOUT1 {
|
||||
regulator-name = "SAFEOUT1";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <4950000>;
|
||||
};
|
||||
|
||||
SAFEOUT2 {
|
||||
regulator-name = "SAFEOUT2";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <4950000>;
|
||||
};
|
||||
|
||||
CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <100000>;
|
||||
regulator-max-microamp = <3150000>;
|
||||
};
|
||||
};
|
||||
|
||||
motor-driver {
|
||||
compatible = "maxim,max77843-haptic";
|
||||
haptic-supply = <&ldo38_reg>;
|
||||
pwms = <&pwm 0 33670 0>;
|
||||
};
|
||||
};
|
||||
};
|
156
bindings/mfd/mc13xxx.txt
Normal file
156
bindings/mfd/mc13xxx.txt
Normal file
@@ -0,0 +1,156 @@
|
||||
* Freescale MC13783/MC13892 Power Management Integrated Circuit (PMIC)
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,mc13783" or "fsl,mc13892"
|
||||
|
||||
Optional properties:
|
||||
- fsl,mc13xxx-uses-adc : Indicate the ADC is being used
|
||||
- fsl,mc13xxx-uses-codec : Indicate the Audio Codec is being used
|
||||
- fsl,mc13xxx-uses-rtc : Indicate the RTC is being used
|
||||
- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
|
||||
|
||||
Sub-nodes:
|
||||
- codec: Contain the Audio Codec node.
|
||||
- adc-port: Contain PMIC SSI port number used for ADC.
|
||||
- dac-port: Contain PMIC SSI port number used for DAC.
|
||||
- leds : Contain the led nodes and initial register values in property
|
||||
"led-control". Number of register depends of used IC, for MC13783 is 6,
|
||||
for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
|
||||
these registers.
|
||||
- #address-cells: Must be 1.
|
||||
- #size-cells: Must be 0.
|
||||
Each led node should contain "reg", which used as LED ID (described below).
|
||||
Optional properties "label" and "linux,default-trigger" is described in
|
||||
Documentation/devicetree/bindings/leds/common.txt.
|
||||
- regulators : Contain the regulator nodes. The regulators are bound using
|
||||
their names as listed below with their registers and bits for enabling.
|
||||
|
||||
MC13783 LED IDs:
|
||||
0 : Main display
|
||||
1 : AUX display
|
||||
2 : Keypad
|
||||
3 : Red 1
|
||||
4 : Green 1
|
||||
5 : Blue 1
|
||||
6 : Red 2
|
||||
7 : Green 2
|
||||
8 : Blue 2
|
||||
9 : Red 3
|
||||
10 : Green 3
|
||||
11 : Blue 3
|
||||
|
||||
MC13892 LED IDs:
|
||||
0 : Main display
|
||||
1 : AUX display
|
||||
2 : Keypad
|
||||
3 : Red
|
||||
4 : Green
|
||||
5 : Blue
|
||||
|
||||
MC34708 LED IDs:
|
||||
0 : Charger Red
|
||||
1 : Charger Green
|
||||
|
||||
MC13783 regulators:
|
||||
sw1a : regulator SW1A (register 24, bit 0)
|
||||
sw1b : regulator SW1B (register 25, bit 0)
|
||||
sw2a : regulator SW2A (register 26, bit 0)
|
||||
sw2b : regulator SW2B (register 27, bit 0)
|
||||
sw3 : regulator SW3 (register 29, bit 20)
|
||||
vaudio : regulator VAUDIO (register 32, bit 0)
|
||||
viohi : regulator VIOHI (register 32, bit 3)
|
||||
violo : regulator VIOLO (register 32, bit 6)
|
||||
vdig : regulator VDIG (register 32, bit 9)
|
||||
vgen : regulator VGEN (register 32, bit 12)
|
||||
vrfdig : regulator VRFDIG (register 32, bit 15)
|
||||
vrfref : regulator VRFREF (register 32, bit 18)
|
||||
vrfcp : regulator VRFCP (register 32, bit 21)
|
||||
vsim : regulator VSIM (register 33, bit 0)
|
||||
vesim : regulator VESIM (register 33, bit 3)
|
||||
vcam : regulator VCAM (register 33, bit 6)
|
||||
vrfbg : regulator VRFBG (register 33, bit 9)
|
||||
vvib : regulator VVIB (register 33, bit 11)
|
||||
vrf1 : regulator VRF1 (register 33, bit 12)
|
||||
vrf2 : regulator VRF2 (register 33, bit 15)
|
||||
vmmc1 : regulator VMMC1 (register 33, bit 18)
|
||||
vmmc2 : regulator VMMC2 (register 33, bit 21)
|
||||
gpo1 : regulator GPO1 (register 34, bit 6)
|
||||
gpo2 : regulator GPO2 (register 34, bit 8)
|
||||
gpo3 : regulator GPO3 (register 34, bit 10)
|
||||
gpo4 : regulator GPO4 (register 34, bit 12)
|
||||
pwgt1spi : regulator PWGT1SPI (register 34, bit 15)
|
||||
pwgt2spi : regulator PWGT2SPI (register 34, bit 16)
|
||||
|
||||
MC13892 regulators:
|
||||
vcoincell : regulator VCOINCELL (register 13, bit 23)
|
||||
sw1 : regulator SW1 (register 24, bit 0)
|
||||
sw2 : regulator SW2 (register 25, bit 0)
|
||||
sw3 : regulator SW3 (register 26, bit 0)
|
||||
sw4 : regulator SW4 (register 27, bit 0)
|
||||
swbst : regulator SWBST (register 29, bit 20)
|
||||
vgen1 : regulator VGEN1 (register 32, bit 0)
|
||||
viohi : regulator VIOHI (register 32, bit 3)
|
||||
vdig : regulator VDIG (register 32, bit 9)
|
||||
vgen2 : regulator VGEN2 (register 32, bit 12)
|
||||
vpll : regulator VPLL (register 32, bit 15)
|
||||
vusb2 : regulator VUSB2 (register 32, bit 18)
|
||||
vgen3 : regulator VGEN3 (register 33, bit 0)
|
||||
vcam : regulator VCAM (register 33, bit 6)
|
||||
vvideo : regulator VVIDEO (register 33, bit 12)
|
||||
vaudio : regulator VAUDIO (register 33, bit 15)
|
||||
vsd : regulator VSD (register 33, bit 18)
|
||||
gpo1 : regulator GPO1 (register 34, bit 6)
|
||||
gpo2 : regulator GPO2 (register 34, bit 8)
|
||||
gpo3 : regulator GPO3 (register 34, bit 10)
|
||||
gpo4 : regulator GPO4 (register 34, bit 12)
|
||||
pwgt1spi : regulator PWGT1SPI (register 34, bit 15)
|
||||
pwgt2spi : regulator PWGT2SPI (register 34, bit 16)
|
||||
vusb : regulator VUSB (register 50, bit 3)
|
||||
|
||||
The bindings details of individual regulator device can be found in:
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
Examples:
|
||||
|
||||
ecspi@70010000 { /* ECSPI1 */
|
||||
cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
|
||||
<&gpio4 25 0>; /* GPIO4_25 */
|
||||
|
||||
pmic: mc13892@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,mc13892";
|
||||
spi-max-frequency = <6000000>;
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <8>;
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
led-control = <0x000 0x000 0x0e0 0x000>;
|
||||
|
||||
sysled@3 {
|
||||
reg = <3>;
|
||||
label = "system:red:live";
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
sw1_reg: mc13892__sw1 {
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1375000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw2_reg: mc13892__sw2 {
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1850000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
256
bindings/mfd/mediatek,mt6360.yaml
Normal file
256
bindings/mfd/mediatek,mt6360.yaml
Normal file
@@ -0,0 +1,256 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/mediatek,mt6360.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MT6360 PMIC from MediaTek Integrated
|
||||
|
||||
maintainers:
|
||||
- Gene Chen <gene_chen@richtek.com>
|
||||
|
||||
description: |
|
||||
MT6360 is a PMIC device with the following sub modules.
|
||||
It is interfaced to host controller using I2C interface.
|
||||
|
||||
This document describes the binding for PMIC device and its sub module.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt6360
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-names:
|
||||
const: IRQB
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 1
|
||||
description:
|
||||
The first cell is the IRQ number.
|
||||
|
||||
regulators:
|
||||
$ref: /schemas/regulator/mt6360-regulator.yaml#
|
||||
|
||||
charger:
|
||||
$ref: /schemas/power/supply/mt6360_charger.yaml#
|
||||
|
||||
tcpc:
|
||||
$ref: /schemas/usb/mediatek,mt6360-tcpc.yaml#
|
||||
|
||||
led-controller:
|
||||
$ref: /schemas/leds/leds-mt6360.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
|
||||
additionalProperties:
|
||||
type: object
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/usb/pd.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@34 {
|
||||
compatible = "mediatek,mt6360";
|
||||
reg = <0x34>;
|
||||
wakeup-source;
|
||||
interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "IRQB";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
mt6360_charger: charger {
|
||||
compatible = "mediatek,mt6360-chg";
|
||||
richtek,vinovp-microvolt = <14500000>;
|
||||
|
||||
otg_vbus_regulator: usb-otg-vbus-regulator {
|
||||
regulator-compatible = "usb-otg-vbus";
|
||||
regulator-name = "usb-otg-vbus";
|
||||
regulator-min-microvolt = <4425000>;
|
||||
regulator-max-microvolt = <5825000>;
|
||||
};
|
||||
};
|
||||
|
||||
led-controller {
|
||||
compatible = "mediatek,mt6360-led";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
multi-led@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_RGB>;
|
||||
led-max-microamp = <24000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
};
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
led@2 {
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
};
|
||||
};
|
||||
led@3 {
|
||||
reg = <3>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
led-max-microamp = <150000>;
|
||||
};
|
||||
led@4 {
|
||||
reg = <4>;
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
function-enumerator = <1>;
|
||||
led-max-microamp = <200000>;
|
||||
flash-max-microamp = <500000>;
|
||||
flash-max-timeout-us = <1024000>;
|
||||
};
|
||||
led@5 {
|
||||
reg = <5>;
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
function-enumerator = <2>;
|
||||
led-max-microamp = <200000>;
|
||||
flash-max-microamp = <500000>;
|
||||
flash-max-timeout-us = <1024000>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "mediatek,mt6360-regulator";
|
||||
LDO_VIN3-supply = <&BUCK2>;
|
||||
buck1 {
|
||||
regulator-compatible = "BUCK1";
|
||||
regulator-name = "mt6360,buck1";
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP
|
||||
MT6360_OPMODE_ULP>;
|
||||
};
|
||||
BUCK2: buck2 {
|
||||
regulator-compatible = "BUCK2";
|
||||
regulator-name = "mt6360,buck2";
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP
|
||||
MT6360_OPMODE_ULP>;
|
||||
};
|
||||
ldo6 {
|
||||
regulator-compatible = "LDO6";
|
||||
regulator-name = "mt6360,ldo6";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2100000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
ldo7 {
|
||||
regulator-compatible = "LDO7";
|
||||
regulator-name = "mt6360,ldo7";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2100000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
ldo1 {
|
||||
regulator-compatible = "LDO1";
|
||||
regulator-name = "mt6360,ldo1";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
ldo2 {
|
||||
regulator-compatible = "LDO2";
|
||||
regulator-name = "mt6360,ldo2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
ldo3 {
|
||||
regulator-compatible = "LDO3";
|
||||
regulator-name = "mt6360,ldo3";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
ldo5 {
|
||||
regulator-compatible = "LDO5";
|
||||
regulator-name = "mt6360,ldo5";
|
||||
regulator-min-microvolt = <2700000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||
MT6360_OPMODE_LP>;
|
||||
};
|
||||
};
|
||||
|
||||
tcpc {
|
||||
compatible = "mediatek,mt6360-tcpc";
|
||||
interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "PD_IRQB";
|
||||
|
||||
connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C";
|
||||
data-role = "dual";
|
||||
power-role = "dual";
|
||||
try-power-role = "sink";
|
||||
source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||
sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||
op-sink-microwatt = <10000000>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
endpoint {
|
||||
remote-endpoint = <&usb_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
endpoint {
|
||||
remote-endpoint = <&usb_ss>;
|
||||
};
|
||||
};
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
endpoint {
|
||||
remote-endpoint = <&dp_aux>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
280
bindings/mfd/mediatek,mt6370.yaml
Normal file
280
bindings/mfd/mediatek,mt6370.yaml
Normal file
@@ -0,0 +1,280 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/mediatek,mt6370.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MT6370 SubPMIC
|
||||
|
||||
maintainers:
|
||||
- ChiYuan Huang <cy_huang@richtek.com>
|
||||
|
||||
description: |
|
||||
MT6370 is a highly-integrated smart power management IC, which includes a
|
||||
single cell Li-Ion/Li-Polymer switching battery charger, a USB Type-C &
|
||||
Power Delivery (PD) controller, dual flash LED current sources, a RGB LED
|
||||
driver, a backlight WLED driver, a display bias driver and a general LDO for
|
||||
portable devices.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt6370
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 1
|
||||
|
||||
adc:
|
||||
type: object
|
||||
description: |
|
||||
Provides 9 channels for system monitoring, including VBUSDIV5 (lower
|
||||
accuracy, higher measure range), VBUSDIV2 (higher accuracy, lower
|
||||
measure range), VBAT, VSYS, CHG_VDDP, TS_BAT, IBUS, IBAT, and TEMP_JC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt6370-adc
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#io-channel-cells"
|
||||
|
||||
backlight:
|
||||
type: object
|
||||
$ref: /schemas/leds/backlight/mediatek,mt6370-backlight.yaml#
|
||||
|
||||
charger:
|
||||
type: object
|
||||
$ref: /schemas/power/supply/mediatek,mt6370-charger.yaml#
|
||||
|
||||
tcpc:
|
||||
type: object
|
||||
$ref: /schemas/usb/mediatek,mt6370-tcpc.yaml#
|
||||
|
||||
indicator:
|
||||
type: object
|
||||
$ref: /schemas/leds/mediatek,mt6370-indicator.yaml#
|
||||
|
||||
flashlight:
|
||||
type: object
|
||||
$ref: /schemas/leds/mediatek,mt6370-flashlight.yaml#
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
description: |
|
||||
List all supported regulators, which support the control for DisplayBias
|
||||
voltages and one general purpose LDO which commonly used to drive the
|
||||
vibrator.
|
||||
|
||||
patternProperties:
|
||||
"^(dsvbst|vibldo)$":
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
|
||||
"^(dsvpos|dsvneg)$":
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
enable-gpios:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
- regulators
|
||||
- adc
|
||||
- backlight
|
||||
- indicator
|
||||
- tcpc
|
||||
- charger
|
||||
- flashlight
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/iio/adc/mediatek,mt6370_adc.h>
|
||||
#include <dt-bindings/usb/pd.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@34 {
|
||||
compatible = "mediatek,mt6370";
|
||||
reg = <0x34>;
|
||||
wakeup-source;
|
||||
interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
mt6370_adc: adc {
|
||||
compatible = "mediatek,mt6370-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "mediatek,mt6370-backlight";
|
||||
mediatek,bled-channel-use = /bits/ 8 <15>;
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "mediatek,mt6370-charger";
|
||||
interrupts = <68>, <48>, <6>;
|
||||
interrupt-names = "uvp_d_evt", "attach_i", "mivr";
|
||||
io-channels = <&mt6370_adc MT6370_CHAN_IBUS>;
|
||||
|
||||
mt6370_otg_vbus: usb-otg-vbus-regulator {
|
||||
regulator-name = "mt6370-usb-otg-vbus";
|
||||
regulator-min-microvolt = <4350000>;
|
||||
regulator-max-microvolt = <5800000>;
|
||||
regulator-min-microamp = <500000>;
|
||||
regulator-max-microamp = <3000000>;
|
||||
};
|
||||
};
|
||||
|
||||
indicator {
|
||||
compatible = "mediatek,mt6370-indicator";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
multi-led@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_RGB>;
|
||||
led-max-microamp = <24000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
};
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
led@2 {
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
};
|
||||
};
|
||||
led@3 {
|
||||
reg = <3>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
led-max-microamp = <6000>;
|
||||
};
|
||||
};
|
||||
|
||||
flashlight {
|
||||
compatible = "mediatek,mt6370-flashlight";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
led-sources = <0>;
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
function-enumerator = <1>;
|
||||
led-max-microamp = <200000>;
|
||||
flash-max-microamp = <500000>;
|
||||
flash-max-timeout-us = <1248000>;
|
||||
};
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
led-sources = <1>;
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
function-enumerator = <2>;
|
||||
led-max-microamp = <200000>;
|
||||
flash-max-microamp = <500000>;
|
||||
flash-max-timeout-us = <1248000>;
|
||||
};
|
||||
};
|
||||
|
||||
tcpc {
|
||||
compatible = "mediatek,mt6370-tcpc";
|
||||
interrupts-extended = <&gpio26 4 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C";
|
||||
vbus-supply = <&mt6370_otg_vbus>;
|
||||
data-role = "dual";
|
||||
power-role = "dual";
|
||||
try-power-role = "sink";
|
||||
source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||
sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||
op-sink-microwatt = <10000000>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
endpoint {
|
||||
remote-endpoint = <&usb_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
endpoint {
|
||||
remote-endpoint = <&usb_ss>;
|
||||
};
|
||||
};
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
endpoint {
|
||||
remote-endpoint = <&dp_aux>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
dsvbst {
|
||||
regulator-name = "mt6370-dsv-vbst";
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <6200000>;
|
||||
};
|
||||
dsvpos {
|
||||
regulator-name = "mt6370-dsv-vpos";
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <6000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
dsvneg {
|
||||
regulator-name = "mt6370-dsv-vneg";
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <6000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
vibldo {
|
||||
regulator-name = "mt6370-vib-ldo";
|
||||
regulator-min-microvolt = <1600000>;
|
||||
regulator-max-microvolt = <4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
68
bindings/mfd/mediatek,mt8195-scpsys.yaml
Normal file
68
bindings/mfd/mediatek,mt8195-scpsys.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/mediatek,mt8195-scpsys.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek System Control Processor System
|
||||
|
||||
maintainers:
|
||||
- MandyJH Liu <mandyjh.liu@mediatek.com>
|
||||
|
||||
description:
|
||||
MediaTek System Control Processor System (SCPSYS) has several
|
||||
power management tasks. The tasks include MTCMOS power
|
||||
domain control, thermal measurement, DVFS, etc.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- mediatek,mt8167-scpsys
|
||||
- mediatek,mt8173-scpsys
|
||||
- mediatek,mt8183-scpsys
|
||||
- mediatek,mt8186-scpsys
|
||||
- mediatek,mt8192-scpsys
|
||||
- mediatek,mt8195-scpsys
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
power-controller:
|
||||
$ref: /schemas/power/mediatek,power-controller.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8195-clk.h>
|
||||
#include <dt-bindings/power/mt8195-power.h>
|
||||
|
||||
syscon@10006000 {
|
||||
compatible = "mediatek,mt8195-scpsys", "syscon", "simple-mfd";
|
||||
reg = <0x10006000 0x100>;
|
||||
|
||||
spm: power-controller {
|
||||
compatible = "mediatek,mt8195-power-controller";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#power-domain-cells = <1>;
|
||||
|
||||
/* sample of power domain nodes */
|
||||
power-domain@MT8195_POWER_DOMAIN_PCIE_PHY {
|
||||
reg = <MT8195_POWER_DOMAIN_PCIE_PHY>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
|
||||
power-domain@MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY {
|
||||
reg = <MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
51
bindings/mfd/mfd.txt
Normal file
51
bindings/mfd/mfd.txt
Normal file
@@ -0,0 +1,51 @@
|
||||
Multi-Function Devices (MFD)
|
||||
|
||||
These devices comprise a nexus for heterogeneous hardware blocks containing
|
||||
more than one non-unique yet varying hardware functionality.
|
||||
|
||||
A typical MFD can be:
|
||||
|
||||
- A mixed signal ASIC on an external bus, sometimes a PMIC (Power Management
|
||||
Integrated Circuit) that is manufactured in a lower technology node (rough
|
||||
silicon) that handles analog drivers for things like audio amplifiers, LED
|
||||
drivers, level shifters, PHY (physical interfaces to things like USB or
|
||||
ethernet), regulators etc.
|
||||
|
||||
- A range of memory registers containing "miscellaneous system registers" also
|
||||
known as a system controller "syscon" or any other memory range containing a
|
||||
mix of unrelated hardware devices.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- compatible : "simple-mfd" - this signifies that the operating system should
|
||||
consider all subnodes of the MFD device as separate devices akin to how
|
||||
"simple-bus" indicates when to see subnodes as children for a simple
|
||||
memory-mapped bus. For more complex devices, when the nexus driver has to
|
||||
probe registers to figure out what child devices exist etc, this should not
|
||||
be used. In the latter case the child devices will be determined by the
|
||||
operating system.
|
||||
|
||||
- ranges: Describes the address mapping relationship to the parent. Should set
|
||||
the child's base address to 0, the physical address within parent's address
|
||||
space, and the length of the address map.
|
||||
|
||||
- #address-cells: Specifies the number of cells used to represent physical base
|
||||
addresses. Must be present if ranges is used.
|
||||
|
||||
- #size-cells: Specifies the number of cells used to represent the size of an
|
||||
address. Must be present if ranges is used.
|
||||
|
||||
Example:
|
||||
|
||||
foo@1000 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
reg = <0x01000 0x1000>;
|
||||
|
||||
led@8.0 {
|
||||
compatible = "register-bit-led";
|
||||
offset = <0x08>;
|
||||
mask = <0x01>;
|
||||
label = "myled";
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
72
bindings/mfd/motorola-cpcap.txt
Normal file
72
bindings/mfd/motorola-cpcap.txt
Normal file
@@ -0,0 +1,72 @@
|
||||
Motorola CPCAP PMIC device tree binding
|
||||
|
||||
Required properties:
|
||||
- compatible : One or both of "motorola,cpcap" or "ste,6556002"
|
||||
- reg : SPI chip select
|
||||
- interrupts : The interrupt line the device is connected to
|
||||
- interrupt-controller : Marks the device node as an interrupt controller
|
||||
- #interrupt-cells : The number of cells to describe an IRQ, should be 2
|
||||
- #address-cells : Child device offset number of cells, should be 1
|
||||
- #size-cells : Child device size number of cells, should be 0
|
||||
- spi-max-frequency : Typically set to 3000000
|
||||
- spi-cs-high : SPI chip select direction
|
||||
|
||||
Optional subnodes:
|
||||
|
||||
The sub-functions of CPCAP get their own node with their own compatible values,
|
||||
which are described in the following files:
|
||||
|
||||
- Documentation/devicetree/bindings/power/supply/cpcap-battery.yaml
|
||||
- Documentation/devicetree/bindings/power/supply/cpcap-charger.yaml
|
||||
- Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
|
||||
- Documentation/devicetree/bindings/phy/phy-cpcap-usb.txt
|
||||
- Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
|
||||
- Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
|
||||
- Documentation/devicetree/bindings/leds/leds-cpcap.txt
|
||||
- Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
|
||||
|
||||
The only exception is the audio codec. Instead of a compatible value its
|
||||
node must be named "audio-codec".
|
||||
|
||||
Required properties for the audio-codec subnode:
|
||||
|
||||
- #sound-dai-cells = <1>;
|
||||
|
||||
The audio-codec provides two DAIs. The first one is connected to the
|
||||
Stereo HiFi DAC and the second one is connected to the Voice DAC.
|
||||
|
||||
Example:
|
||||
|
||||
&mcspi1 {
|
||||
cpcap: pmic@0 {
|
||||
compatible = "motorola,cpcap", "ste,6556002";
|
||||
reg = <0>; /* cs0 */
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <3000000>;
|
||||
spi-cs-high;
|
||||
|
||||
audio-codec {
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
/* HiFi */
|
||||
port@0 {
|
||||
endpoint {
|
||||
remote-endpoint = <&cpu_dai1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Voice */
|
||||
port@1 {
|
||||
endpoint {
|
||||
remote-endpoint = <&cpu_dai2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
64
bindings/mfd/mps,mp2629.yaml
Normal file
64
bindings/mfd/mps,mp2629.yaml
Normal file
@@ -0,0 +1,64 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/mps,mp2629.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MP2629 Battery Charger PMIC from Monolithic Power System.
|
||||
|
||||
maintainers:
|
||||
- Saravanan Sekar <sravanhome@gmail.com>
|
||||
|
||||
description: |
|
||||
MP2629 is a PMIC providing battery charging and power supply for smartphones,
|
||||
wireless camera and portable devices. Chip is controlled over I2C.
|
||||
|
||||
The battery charge management device handles battery charger controller and
|
||||
ADC IIO device for battery, system voltage
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mps,mp2629
|
||||
- mps,mp2733
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the IRQ number, the second cell is the trigger type.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@4b {
|
||||
compatible = "mps,mp2629";
|
||||
reg = <0x4b>;
|
||||
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&gpio2>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
160
bindings/mfd/mscc,ocelot.yaml
Normal file
160
bindings/mfd/mscc,ocelot.yaml
Normal file
@@ -0,0 +1,160 @@
|
||||
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/mscc,ocelot.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Ocelot Externally-Controlled Ethernet Switch
|
||||
|
||||
maintainers:
|
||||
- Colin Foster <colin.foster@in-advantage.com>
|
||||
|
||||
description: |
|
||||
The Ocelot ethernet switch family contains chips that have an internal CPU
|
||||
(VSC7513, VSC7514) and chips that don't (VSC7511, VSC7512). All switches have
|
||||
the option to be controlled externally, which is the purpose of this driver.
|
||||
|
||||
The switch family is a multi-port networking switch that supports many
|
||||
interfaces. Additionally, the device can perform pin control, MDIO buses, and
|
||||
external GPIO expanders.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mscc,vsc7512
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/mscc,ocelot-pinctrl.yaml
|
||||
|
||||
"^gpio@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/microchip,sparx5-sgpio.yaml
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mscc,ocelot-sgpio
|
||||
|
||||
"^mdio@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/net/mscc,miim.yaml
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mscc,ocelot-miim
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
- spi-max-frequency
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
ocelot_clock: ocelot-clock {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
soc@0 {
|
||||
compatible = "mscc,vsc7512";
|
||||
spi-max-frequency = <2500000>;
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
mdio@7107009c {
|
||||
compatible = "mscc,ocelot-miim";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x7107009c 0x24>;
|
||||
|
||||
sw_phy0: ethernet-phy@0 {
|
||||
reg = <0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio@710700c0 {
|
||||
compatible = "mscc,ocelot-miim";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&miim1_pins>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x710700c0 0x24>;
|
||||
|
||||
sw_phy4: ethernet-phy@4 {
|
||||
reg = <0x4>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio: pinctrl@71070034 {
|
||||
compatible = "mscc,ocelot-pinctrl";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&gpio 0 0 22>;
|
||||
reg = <0x71070034 0x6c>;
|
||||
|
||||
sgpio_pins: sgpio-pins {
|
||||
pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
|
||||
function = "sg0";
|
||||
};
|
||||
|
||||
miim1_pins: miim1-pins {
|
||||
pins = "GPIO_14", "GPIO_15";
|
||||
function = "miim";
|
||||
};
|
||||
};
|
||||
|
||||
gpio@710700f8 {
|
||||
compatible = "mscc,ocelot-sgpio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
bus-frequency = <12500000>;
|
||||
clocks = <&ocelot_clock>;
|
||||
microchip,sgpio-port-ranges = <0 15>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sgpio_pins>;
|
||||
reg = <0x710700f8 0x100>;
|
||||
|
||||
sgpio_in0: gpio@0 {
|
||||
compatible = "microchip,sparx5-sgpio-bank";
|
||||
reg = <0>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <3>;
|
||||
ngpios = <64>;
|
||||
};
|
||||
|
||||
sgpio_out1: gpio@1 {
|
||||
compatible = "microchip,sparx5-sgpio-bank";
|
||||
reg = <1>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <3>;
|
||||
ngpios = <64>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
|
107
bindings/mfd/mt6397.txt
Normal file
107
bindings/mfd/mt6397.txt
Normal file
@@ -0,0 +1,107 @@
|
||||
MediaTek MT6397/MT6323 Multifunction Device Driver
|
||||
|
||||
MT6397/MT6323 is a multifunction device with the following sub modules:
|
||||
- Regulator
|
||||
- RTC
|
||||
- Audio codec
|
||||
- GPIO
|
||||
- Clock
|
||||
- LED
|
||||
- Keys
|
||||
- Power controller
|
||||
|
||||
It is interfaced to host controller using SPI interface by a proprietary hardware
|
||||
called PMIC wrapper or pwrap. MT6397/MT6323 MFD is a child device of pwrap.
|
||||
See the following for pwarp node definitions:
|
||||
../soc/mediatek/pwrap.txt
|
||||
|
||||
This document describes the binding for MFD device and its sub module.
|
||||
|
||||
Required properties:
|
||||
compatible:
|
||||
"mediatek,mt6323" for PMIC MT6323
|
||||
"mediatek,mt6331" for PMIC MT6331 and MT6332
|
||||
"mediatek,mt6358" for PMIC MT6358 and MT6366
|
||||
"mediatek,mt6359" for PMIC MT6359
|
||||
"mediatek,mt6397" for PMIC MT6397
|
||||
|
||||
Optional subnodes:
|
||||
|
||||
- rtc
|
||||
Required properties: Should be one of follows
|
||||
- compatible: "mediatek,mt6323-rtc"
|
||||
- compatible: "mediatek,mt6331-rtc"
|
||||
- compatible: "mediatek,mt6358-rtc"
|
||||
- compatible: "mediatek,mt6397-rtc"
|
||||
For details, see ../rtc/rtc-mt6397.txt
|
||||
- regulators
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6323-regulator"
|
||||
see ../regulator/mt6323-regulator.txt
|
||||
- compatible: "mediatek,mt6358-regulator"
|
||||
see ../regulator/mt6358-regulator.txt
|
||||
- compatible: "mediatek,mt6397-regulator"
|
||||
see ../regulator/mt6397-regulator.txt
|
||||
- codec
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6397-codec" or "mediatek,mt6358-sound"
|
||||
- clk
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6397-clk"
|
||||
- led
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6323-led"
|
||||
see ../leds/leds-mt6323.txt
|
||||
|
||||
- keys
|
||||
Required properties: Should be one of the following
|
||||
- compatible: "mediatek,mt6323-keys"
|
||||
- compatible: "mediatek,mt6331-keys"
|
||||
- compatible: "mediatek,mt6397-keys"
|
||||
see ../input/mtk-pmic-keys.txt
|
||||
|
||||
- power-controller
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6323-pwrc"
|
||||
For details, see ../power/reset/mt6323-poweroff.txt
|
||||
|
||||
- pin-controller
|
||||
Required properties:
|
||||
- compatible: "mediatek,mt6397-pinctrl"
|
||||
For details, see ../pinctrl/pinctrl-mt65xx.txt
|
||||
|
||||
Example:
|
||||
pwrap: pwrap@1000f000 {
|
||||
compatible = "mediatek,mt8135-pwrap";
|
||||
|
||||
...
|
||||
|
||||
pmic {
|
||||
compatible = "mediatek,mt6397";
|
||||
|
||||
codec: mt6397codec {
|
||||
compatible = "mediatek,mt6397-codec";
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "mediatek,mt6397-regulator";
|
||||
|
||||
mt6397_vpca15_reg: buck_vpca15 {
|
||||
regulator-compatible = "buck_vpca15";
|
||||
regulator-name = "vpca15";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vgp4_reg: ldo_vgp4 {
|
||||
regulator-compatible = "ldo_vgp4";
|
||||
regulator-name = "vgp4";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
45
bindings/mfd/mxs-lradc.txt
Normal file
45
bindings/mfd/mxs-lradc.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
* Freescale MXS LRADC device driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,imx23-lradc" for i.MX23 SoC and "fsl,imx28-lradc"
|
||||
for i.MX28 SoC
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain the LRADC interrupts
|
||||
|
||||
Optional properties:
|
||||
- fsl,lradc-touchscreen-wires: Number of wires used to connect the touchscreen
|
||||
to LRADC. Valid value is either 4 or 5. If this
|
||||
property is not present, then the touchscreen is
|
||||
disabled. 5 wires is valid for i.MX28 SoC only.
|
||||
- fsl,ave-ctrl: number of samples per direction to calculate an average value.
|
||||
Allowed value is 1 ... 32, default is 4
|
||||
- fsl,ave-delay: delay between consecutive samples. Allowed value is
|
||||
2 ... 2048. It is used if 'fsl,ave-ctrl' > 1, counts at
|
||||
2 kHz and its default is 2 (= 1 ms)
|
||||
- fsl,settling: delay between plate switch to next sample. Allowed value is
|
||||
1 ... 2047. It counts at 2 kHz and its default is
|
||||
10 (= 5 ms)
|
||||
|
||||
Example for i.MX23 SoC:
|
||||
|
||||
lradc@80050000 {
|
||||
compatible = "fsl,imx23-lradc";
|
||||
reg = <0x80050000 0x2000>;
|
||||
interrupts = <36 37 38 39 40 41 42 43 44>;
|
||||
fsl,lradc-touchscreen-wires = <4>;
|
||||
fsl,ave-ctrl = <4>;
|
||||
fsl,ave-delay = <2>;
|
||||
fsl,settling = <10>;
|
||||
};
|
||||
|
||||
Example for i.MX28 SoC:
|
||||
|
||||
lradc@80050000 {
|
||||
compatible = "fsl,imx28-lradc";
|
||||
reg = <0x80050000 0x2000>;
|
||||
interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;
|
||||
fsl,lradc-touchscreen-wires = <5>;
|
||||
fsl,ave-ctrl = <4>;
|
||||
fsl,ave-delay = <2>;
|
||||
fsl,settling = <10>;
|
||||
};
|
76
bindings/mfd/netronix,ntxec.yaml
Normal file
76
bindings/mfd/netronix,ntxec.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/netronix,ntxec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Netronix Embedded Controller
|
||||
|
||||
maintainers:
|
||||
- Jonathan Neuschäfer <j.neuschaefer@gmx.net>
|
||||
|
||||
description: |
|
||||
This EC is found in e-book readers of multiple brands (e.g. Kobo, Tolino), and
|
||||
is typically implemented as a TI MSP430 microcontroller.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: netronix,ntxec
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: The I2C address of the EC
|
||||
|
||||
system-power-controller:
|
||||
type: boolean
|
||||
description: See Documentation/devicetree/bindings/power/power-controller.txt
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
description:
|
||||
The EC can signal interrupts via a GPIO line
|
||||
|
||||
"#pwm-cells":
|
||||
const: 2
|
||||
description: |
|
||||
Number of cells in a PWM specifier.
|
||||
|
||||
The following PWM channels are supported:
|
||||
- 0: The PWM channel controlled by registers 0xa1-0xa7
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ec: embedded-controller@43 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ntxec>;
|
||||
|
||||
compatible = "netronix,ntxec";
|
||||
reg = <0x43>;
|
||||
system-power-controller;
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&ec 0 50000>;
|
||||
power-supply = <&backlight_regulator>;
|
||||
};
|
||||
|
||||
backlight_regulator: regulator-dummy {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "backlight";
|
||||
};
|
103
bindings/mfd/omap-usb-host.txt
Normal file
103
bindings/mfd/omap-usb-host.txt
Normal file
@@ -0,0 +1,103 @@
|
||||
OMAP HS USB Host
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be "ti,usbhs-host"
|
||||
- reg: should contain one register range i.e. start and length
|
||||
- ti,hwmods: must contain "usb_host_hs"
|
||||
|
||||
Optional properties:
|
||||
|
||||
- num-ports: number of USB ports. Usually this is automatically detected
|
||||
from the IP's revision register but can be overridden by specifying
|
||||
this property. A maximum of 3 ports are supported at the moment.
|
||||
|
||||
- portN-mode: String specifying the port mode for port N, where N can be
|
||||
from 1 to 3. If the port mode is not specified, that port is treated
|
||||
as unused. When specified, it must be one of the following.
|
||||
"ehci-phy",
|
||||
"ehci-tll",
|
||||
"ehci-hsic",
|
||||
"ohci-phy-6pin-datse0",
|
||||
"ohci-phy-6pin-dpdm",
|
||||
"ohci-phy-3pin-datse0",
|
||||
"ohci-phy-4pin-dpdm",
|
||||
"ohci-tll-6pin-datse0",
|
||||
"ohci-tll-6pin-dpdm",
|
||||
"ohci-tll-3pin-datse0",
|
||||
"ohci-tll-4pin-dpdm",
|
||||
"ohci-tll-2pin-datse0",
|
||||
"ohci-tll-2pin-dpdm",
|
||||
|
||||
- single-ulpi-bypass: Must be present if the controller contains a single
|
||||
ULPI bypass control bit. e.g. OMAP3 silicon <= ES2.1
|
||||
|
||||
- clocks: a list of phandles and clock-specifier pairs, one for each entry in
|
||||
clock-names.
|
||||
|
||||
- clock-names: should include:
|
||||
For OMAP3
|
||||
* "usbhost_120m_fck" - 120MHz Functional clock.
|
||||
|
||||
For OMAP4+
|
||||
* "refclk_60m_int" - 60MHz internal reference clock for UTMI clock mux
|
||||
* "refclk_60m_ext_p1" - 60MHz external ref. clock for Port 1's UTMI clock mux.
|
||||
* "refclk_60m_ext_p2" - 60MHz external ref. clock for Port 2's UTMI clock mux
|
||||
* "utmi_p1_gfclk" - Port 1 UTMI clock mux.
|
||||
* "utmi_p2_gfclk" - Port 2 UTMI clock mux.
|
||||
* "usb_host_hs_utmi_p1_clk" - Port 1 UTMI clock gate.
|
||||
* "usb_host_hs_utmi_p2_clk" - Port 2 UTMI clock gate.
|
||||
* "usb_host_hs_utmi_p3_clk" - Port 3 UTMI clock gate.
|
||||
* "usb_host_hs_hsic480m_p1_clk" - Port 1 480MHz HSIC clock gate.
|
||||
* "usb_host_hs_hsic480m_p2_clk" - Port 2 480MHz HSIC clock gate.
|
||||
* "usb_host_hs_hsic480m_p3_clk" - Port 3 480MHz HSIC clock gate.
|
||||
* "usb_host_hs_hsic60m_p1_clk" - Port 1 60MHz HSIC clock gate.
|
||||
* "usb_host_hs_hsic60m_p2_clk" - Port 2 60MHz HSIC clock gate.
|
||||
* "usb_host_hs_hsic60m_p3_clk" - Port 3 60MHz HSIC clock gate.
|
||||
|
||||
Required properties if child node exists:
|
||||
|
||||
- #address-cells: Must be 1
|
||||
- #size-cells: Must be 1
|
||||
- ranges: must be present
|
||||
|
||||
Properties for children:
|
||||
|
||||
The OMAP HS USB Host subsystem contains EHCI and OHCI controllers.
|
||||
See Documentation/devicetree/bindings/usb/ehci-omap.txt and
|
||||
Documentation/devicetree/bindings/usb/ohci-omap3.txt.
|
||||
|
||||
Example for OMAP4:
|
||||
|
||||
usbhshost: usbhshost@4a064000 {
|
||||
compatible = "ti,usbhs-host";
|
||||
reg = <0x4a064000 0x800>;
|
||||
ti,hwmods = "usb_host_hs";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
usbhsohci: ohci@4a064800 {
|
||||
compatible = "ti,ohci-omap3", "usb-ohci";
|
||||
reg = <0x4a064800 0x400>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 76 0x4>;
|
||||
};
|
||||
|
||||
usbhsehci: ehci@4a064c00 {
|
||||
compatible = "ti,ehci-omap", "usb-ehci";
|
||||
reg = <0x4a064c00 0x400>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 77 0x4>;
|
||||
};
|
||||
};
|
||||
|
||||
&usbhshost {
|
||||
port1-mode = "ehci-phy";
|
||||
port2-mode = "ehci-tll";
|
||||
port3-mode = "ehci-phy";
|
||||
};
|
||||
|
||||
&usbhsehci {
|
||||
phys = <&hsusb1_phy 0 &hsusb3_phy>;
|
||||
};
|
27
bindings/mfd/omap-usb-tll.txt
Normal file
27
bindings/mfd/omap-usb-tll.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
OMAP HS USB Host TLL (Transceiver-Less Interface)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "ti,usbhs-tll"
|
||||
- reg : should contain one register range i.e. start and length
|
||||
- interrupts : should contain the TLL module's interrupt
|
||||
- ti,hwmod : must contain "usb_tll_hs"
|
||||
|
||||
Optional properties:
|
||||
|
||||
- clocks: a list of phandles and clock-specifier pairs, one for each entry in
|
||||
clock-names.
|
||||
|
||||
- clock-names: should include:
|
||||
* "usb_tll_hs_usb_ch0_clk" - USB TLL channel 0 clock
|
||||
* "usb_tll_hs_usb_ch1_clk" - USB TLL channel 1 clock
|
||||
* "usb_tll_hs_usb_ch2_clk" - USB TLL channel 2 clock
|
||||
|
||||
Example:
|
||||
|
||||
usbhstll: usbhstll@4a062000 {
|
||||
compatible = "ti,usbhs-tll";
|
||||
reg = <0x4a062000 0x1000>;
|
||||
interrupts = <78>;
|
||||
ti,hwmods = "usb_tll_hs";
|
||||
};
|
52
bindings/mfd/palmas.txt
Normal file
52
bindings/mfd/palmas.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
* palmas device tree bindings
|
||||
|
||||
The TI palmas family current members :-
|
||||
twl6035 (palmas)
|
||||
twl6037 (palmas)
|
||||
tps65913 (palmas)
|
||||
tps65914 (palmas)
|
||||
tps659038
|
||||
tps65917
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be from the list
|
||||
ti,twl6035
|
||||
ti,twl6036
|
||||
ti,twl6037
|
||||
ti,tps65913
|
||||
ti,tps65914
|
||||
ti,tps80036
|
||||
ti,tps659038
|
||||
ti,tps65917
|
||||
and also the generic series names
|
||||
ti,palmas
|
||||
- interrupt-controller : palmas has its own internal IRQs
|
||||
- #interrupt-cells : should be set to 2 for IRQ number and flags
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
|
||||
Optional properties:
|
||||
ti,mux-padX : set the pad register X (1-2) to the correct muxing for the
|
||||
hardware, if not set will use muxing in OTP.
|
||||
|
||||
Example:
|
||||
|
||||
palmas {
|
||||
compatible = "ti,twl6035", "ti,palmas";
|
||||
reg = <0x48>
|
||||
interrupt-parent = <&intc>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
ti,mux-pad1 = <0>;
|
||||
ti,mux-pad2 = <0>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic {
|
||||
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
|
||||
....
|
||||
};
|
||||
}
|
128
bindings/mfd/qcom,pm8008.yaml
Normal file
128
bindings/mfd/qcom,pm8008.yaml
Normal file
@@ -0,0 +1,128 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/qcom,pm8008.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. PM8008 PMIC bindings
|
||||
|
||||
maintainers:
|
||||
- Guru Das Srinagesh <gurus@codeaurora.org>
|
||||
|
||||
description: |
|
||||
Qualcomm Technologies, Inc. PM8008 is a dedicated camera PMIC that integrates
|
||||
all the necessary power management, housekeeping, and interface support
|
||||
functions into a single IC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,pm8008
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
description: Parent interrupt.
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
description: |
|
||||
The first cell is the IRQ number, the second cell is the IRQ trigger
|
||||
flag. All interrupts are listed in include/dt-bindings/mfd/qcom-pm8008.h.
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
type: object
|
||||
|
||||
description: |
|
||||
The GPIO peripheral. This node may be specified twice, one for each GPIO.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: qcom,pm8008-gpio
|
||||
- const: qcom,spmi-gpio
|
||||
|
||||
reg:
|
||||
description: Peripheral address of one of the two GPIO peripherals.
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
gpio-ranges:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- gpio-controller
|
||||
- interrupt-controller
|
||||
- "#gpio-cells"
|
||||
- gpio-ranges
|
||||
- "#interrupt-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- "#interrupt-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/mfd/qcom-pm8008.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
qupv3_se13_i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pm8008i@8 {
|
||||
compatible = "qcom,pm8008";
|
||||
reg = <0x8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
interrupt-parent = <&tlmm>;
|
||||
interrupts = <32 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
pm8008_gpios: gpio@c000 {
|
||||
compatible = "qcom,pm8008-gpio", "qcom,spmi-gpio";
|
||||
reg = <0xc000>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pm8008_gpios 0 0 2>;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
297
bindings/mfd/qcom,spmi-pmic.yaml
Normal file
297
bindings/mfd/qcom,spmi-pmic.yaml
Normal file
@@ -0,0 +1,297 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/qcom,spmi-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SPMI PMICs multi-function device
|
||||
|
||||
description: |
|
||||
Some Qualcomm PMICs used with the Snapdragon series SoCs are interfaced
|
||||
to the chip via the SPMI (System Power Management Interface) bus.
|
||||
Support for multiple independent functions are implemented by splitting the
|
||||
16-bit SPMI peripheral address space into 256 smaller fixed-size regions, 256 bytes
|
||||
each. A function can consume one or more of these fixed-size register regions.
|
||||
|
||||
The Qualcomm SPMI series includes the PM8941, PM8841, PMA8084, PM8998 and other
|
||||
PMICs. These PMICs use a "QPNP" scheme through SPMI interface.
|
||||
QPNP is effectively a partitioning scheme for dividing the SPMI extended
|
||||
register space up into logical pieces, and set of fixed register
|
||||
locations/definitions within these regions, with some of these regions
|
||||
specifically used for interrupt handling.
|
||||
|
||||
maintainers:
|
||||
- Stephen Boyd <sboyd@kernel.org>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
oneOf:
|
||||
- pattern: '^pmic@.*$'
|
||||
- pattern: '^pm(a|s)?[0-9]*@.*$'
|
||||
deprecated: true
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,pm6125
|
||||
- qcom,pm6150
|
||||
- qcom,pm6150l
|
||||
- qcom,pm6350
|
||||
- qcom,pm660
|
||||
- qcom,pm660l
|
||||
- qcom,pm7250b
|
||||
- qcom,pm7325
|
||||
- qcom,pm8004
|
||||
- qcom,pm8005
|
||||
- qcom,pm8009
|
||||
- qcom,pm8019
|
||||
- qcom,pm8028
|
||||
- qcom,pm8110
|
||||
- qcom,pm8150
|
||||
- qcom,pm8150b
|
||||
- qcom,pm8150c
|
||||
- qcom,pm8150l
|
||||
- qcom,pm8226
|
||||
- qcom,pm8350
|
||||
- qcom,pm8350b
|
||||
- qcom,pm8350c
|
||||
- qcom,pm8841
|
||||
- qcom,pm8909
|
||||
- qcom,pm8916
|
||||
- qcom,pm8941
|
||||
- qcom,pm8950
|
||||
- qcom,pm8953
|
||||
- qcom,pm8994
|
||||
- qcom,pm8998
|
||||
- qcom,pma8084
|
||||
- qcom,pmd9635
|
||||
- qcom,pmi8950
|
||||
- qcom,pmi8962
|
||||
- qcom,pmi8994
|
||||
- qcom,pmi8998
|
||||
- qcom,pmk8002
|
||||
- qcom,pmk8350
|
||||
- qcom,pmm8155au
|
||||
- qcom,pmp8074
|
||||
- qcom,pmr735a
|
||||
- qcom,pmr735b
|
||||
- qcom,pms405
|
||||
- qcom,pmx55
|
||||
- qcom,pmx65
|
||||
- qcom,smb2351
|
||||
- const: qcom,spmi-pmic
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
labibb:
|
||||
type: object
|
||||
$ref: /schemas/regulator/qcom-labibb-regulator.yaml#
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
$ref: /schemas/regulator/qcom,spmi-regulator.yaml#
|
||||
|
||||
patternProperties:
|
||||
"^adc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/iio/adc/qcom,spmi-vadc.yaml#
|
||||
|
||||
"^adc-tm@[0-9a-f]+$":
|
||||
type: object
|
||||
# ref depends on compatible, see allOf below
|
||||
|
||||
"^audio-codec@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: true # FIXME qcom,pm8916-wcd-analog-codec binding not converted yet
|
||||
|
||||
"extcon@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/extcon/qcom,pm8941-misc.yaml#
|
||||
|
||||
"gpio(s)?@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/qcom,pmic-gpio.yaml#
|
||||
|
||||
"pon@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/power/reset/qcom,pon.yaml#
|
||||
|
||||
"pwm@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/leds/leds-qcom-lpg.yaml#
|
||||
|
||||
"^rtc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/rtc/qcom-pm8xxx-rtc.yaml#
|
||||
|
||||
"^temp-alarm@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/thermal/qcom,spmi-temp-alarm.yaml#
|
||||
|
||||
"^vibrator@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: true # FIXME qcom,pm8916-vib binding not converted yet
|
||||
|
||||
"^mpps@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/qcom,pmic-mpp.yaml#
|
||||
|
||||
"(.*)?(wled|leds)@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/leds/backlight/qcom-wled.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,pm8998
|
||||
then:
|
||||
patternProperties:
|
||||
"^adc-tm@[0-9a-f]+$":
|
||||
$ref: /schemas/thermal/qcom-spmi-adc-tm-hc.yaml#
|
||||
else:
|
||||
patternProperties:
|
||||
"^adc-tm@[0-9a-f]+$":
|
||||
$ref: /schemas/thermal/qcom-spmi-adc-tm5.yaml#
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
spmi@c440000 {
|
||||
compatible = "qcom,spmi-pmic-arb";
|
||||
reg = <0x0c440000 0x1100>,
|
||||
<0x0c600000 0x2000000>,
|
||||
<0x0e600000 0x100000>,
|
||||
<0x0e700000 0xa0000>,
|
||||
<0x0c40a000 0x26000>;
|
||||
reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
|
||||
interrupt-names = "periph_irq";
|
||||
interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
|
||||
qcom,ee = <0>;
|
||||
qcom,channel = <0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <4>;
|
||||
|
||||
pmi8998_lsid0: pmic@2 {
|
||||
compatible = "qcom,pmi8998", "qcom,spmi-pmic";
|
||||
reg = <0x2 SPMI_USID>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmi8998_gpio: gpios@c000 {
|
||||
compatible = "qcom,pmi8998-gpio", "qcom,spmi-gpio";
|
||||
reg = <0xc000>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pmi8998_gpio 0 0 14>;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/iio/qcom,spmi-vadc.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
pmic@0 {
|
||||
compatible = "qcom,pm6150", "qcom,spmi-pmic";
|
||||
reg = <0x0 SPMI_USID>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pon@800 {
|
||||
compatible = "qcom,pm8998-pon";
|
||||
reg = <0x800>;
|
||||
mode-bootloader = <0x2>;
|
||||
mode-recovery = <0x1>;
|
||||
|
||||
pwrkey {
|
||||
compatible = "qcom,pm8941-pwrkey";
|
||||
interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
|
||||
debounce = <15625>;
|
||||
bias-pull-up;
|
||||
linux,code = <KEY_POWER>;
|
||||
};
|
||||
};
|
||||
|
||||
temp-alarm@2400 {
|
||||
compatible = "qcom,spmi-temp-alarm";
|
||||
reg = <0x2400>;
|
||||
interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
io-channels = <&pm6150_adc ADC5_DIE_TEMP>;
|
||||
io-channel-names = "thermal";
|
||||
#thermal-sensor-cells = <0>;
|
||||
};
|
||||
|
||||
pm6150_adc: adc@3100 {
|
||||
compatible = "qcom,spmi-adc5";
|
||||
reg = <0x3100>;
|
||||
interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
adc-chan@6 {
|
||||
reg = <ADC5_DIE_TEMP>;
|
||||
label = "die_temp";
|
||||
};
|
||||
|
||||
adc-chan@4f {
|
||||
reg = <ADC5_AMUX_THM3_100K_PU>;
|
||||
qcom,ratiometric;
|
||||
qcom,hw-settle-time = <200>;
|
||||
};
|
||||
};
|
||||
|
||||
adc-tm@3500 {
|
||||
compatible = "qcom,spmi-adc-tm5";
|
||||
reg = <0x3500>;
|
||||
interrupts = <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
#thermal-sensor-cells = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
charger-thermistor@0 {
|
||||
reg = <0>;
|
||||
io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
|
||||
qcom,ratiometric;
|
||||
qcom,hw-settle-time-us = <200>;
|
||||
};
|
||||
};
|
||||
|
||||
pm6150_gpio: gpios@c000 {
|
||||
compatible = "qcom,pm6150-gpio", "qcom,spmi-gpio";
|
||||
reg = <0xc000>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pm6150_gpio 0 0 10>;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
54
bindings/mfd/qcom,tcsr.yaml
Normal file
54
bindings/mfd/qcom,tcsr.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/qcom,tcsr.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Top Control and Status Register
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
|
||||
description:
|
||||
Qualcomm devices have a set of registers that provide various control and
|
||||
status functions for their peripherals.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,msm8998-tcsr
|
||||
- qcom,qcs404-tcsr
|
||||
- qcom,sc7180-tcsr
|
||||
- qcom,sc7280-tcsr
|
||||
- qcom,sdm630-tcsr
|
||||
- qcom,sdm845-tcsr
|
||||
- qcom,sm8150-tcsr
|
||||
- qcom,tcsr-apq8064
|
||||
- qcom,tcsr-apq8084
|
||||
- qcom,tcsr-ipq6018
|
||||
- qcom,tcsr-ipq8064
|
||||
- qcom,tcsr-mdm9615
|
||||
- qcom,tcsr-msm8660
|
||||
- qcom,tcsr-msm8916
|
||||
- qcom,tcsr-msm8953
|
||||
- qcom,tcsr-msm8960
|
||||
- qcom,tcsr-msm8974
|
||||
- qcom,tcsr-msm8996
|
||||
- const: syscon
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
syscon@1a400000 {
|
||||
compatible = "qcom,tcsr-msm8960", "syscon";
|
||||
reg = <0x1a400000 0x100>;
|
||||
};
|
55
bindings/mfd/qcom-pm8xxx.yaml
Normal file
55
bindings/mfd/qcom-pm8xxx.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/qcom-pm8xxx.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm PM8xxx PMIC multi-function devices
|
||||
|
||||
maintainers:
|
||||
- Satya Priya <quic_c_skakit@quicinc.com>
|
||||
|
||||
description: |
|
||||
The PM8xxx family of Power Management ICs are used to provide regulated
|
||||
voltages and other various functionality to Qualcomm SoCs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,pm8018
|
||||
- qcom,pm8058
|
||||
- qcom,pm8821
|
||||
- qcom,pm8921
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
patternProperties:
|
||||
"rtc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: "../rtc/qcom-pm8xxx-rtc.yaml"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
- interrupts
|
||||
- '#interrupt-cells'
|
||||
- interrupt-controller
|
||||
|
||||
additionalProperties: false
|
||||
...
|
283
bindings/mfd/qcom-rpm.txt
Normal file
283
bindings/mfd/qcom-rpm.txt
Normal file
@@ -0,0 +1,283 @@
|
||||
Qualcomm Resource Power Manager (RPM)
|
||||
|
||||
This driver is used to interface with the Resource Power Manager (RPM) found in
|
||||
various Qualcomm platforms. The RPM allows each component in the system to vote
|
||||
for state of the system resources, such as clocks, regulators and bus
|
||||
frequencies.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be one of:
|
||||
"qcom,rpm-apq8064"
|
||||
"qcom,rpm-msm8660"
|
||||
"qcom,rpm-msm8960"
|
||||
"qcom,rpm-ipq8064"
|
||||
"qcom,rpm-mdm9615"
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: base address and size of the RPM's message ram
|
||||
|
||||
- interrupts:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: three entries specifying the RPM's:
|
||||
1. acknowledgement interrupt
|
||||
2. error interrupt
|
||||
3. wakeup interrupt
|
||||
|
||||
- interrupt-names:
|
||||
Usage: required
|
||||
Value type: <string-array>
|
||||
Definition: must be the three strings "ack", "err" and "wakeup", in order
|
||||
|
||||
- qcom,ipc:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
|
||||
Definition: three entries specifying the outgoing ipc bit used for
|
||||
signaling the RPM:
|
||||
- phandle to a syscon node representing the apcs registers
|
||||
- u32 representing offset to the register within the syscon
|
||||
- u32 representing the ipc bit within the register
|
||||
|
||||
|
||||
= SUBNODES
|
||||
|
||||
The RPM exposes resources to its subnodes. The below bindings specify the set
|
||||
of valid subnodes that can operate on these resources.
|
||||
|
||||
== Regulators
|
||||
|
||||
Regulator nodes are identified by their compatible:
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be one of:
|
||||
"qcom,rpm-pm8058-regulators"
|
||||
"qcom,rpm-pm8901-regulators"
|
||||
"qcom,rpm-pm8921-regulators"
|
||||
"qcom,rpm-pm8018-regulators"
|
||||
"qcom,rpm-smb208-regulators"
|
||||
|
||||
- vdd_l0_l1_lvs-supply:
|
||||
- vdd_l2_l11_l12-supply:
|
||||
- vdd_l3_l4_l5-supply:
|
||||
- vdd_l6_l7-supply:
|
||||
- vdd_l8-supply:
|
||||
- vdd_l9-supply:
|
||||
- vdd_l10-supply:
|
||||
- vdd_l13_l16-supply:
|
||||
- vdd_l14_l15-supply:
|
||||
- vdd_l17_l18-supply:
|
||||
- vdd_l19_l20-supply:
|
||||
- vdd_l21-supply:
|
||||
- vdd_l22-supply:
|
||||
- vdd_l23_l24_l25-supply:
|
||||
- vdd_ncp-supply:
|
||||
- vdd_s0-supply:
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s3-supply:
|
||||
- vdd_s4-supply:
|
||||
Usage: optional (pm8058 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- lvs0_in-supply:
|
||||
- lvs1_in-supply:
|
||||
- lvs2_in-supply:
|
||||
- lvs3_in-supply:
|
||||
- mvs_in-supply:
|
||||
- vdd_l0-supply:
|
||||
- vdd_l1-supply:
|
||||
- vdd_l2-supply:
|
||||
- vdd_l3-supply:
|
||||
- vdd_l4-supply:
|
||||
- vdd_l5-supply:
|
||||
- vdd_l6-supply:
|
||||
- vdd_s0-supply:
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s3-supply:
|
||||
- vdd_s4-supply:
|
||||
Usage: optional (pm8901 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- vdd_l1_l2_l12_l18-supply:
|
||||
- vdd_l3_l15_l17-supply:
|
||||
- vdd_l4_l14-supply:
|
||||
- vdd_l5_l8_l16-supply:
|
||||
- vdd_l6_l7-supply:
|
||||
- vdd_l9_l11-supply:
|
||||
- vdd_l10_l22-supply:
|
||||
- vdd_l21_l23_l29-supply:
|
||||
- vdd_l24-supply:
|
||||
- vdd_l25-supply:
|
||||
- vdd_l26-supply:
|
||||
- vdd_l27-supply:
|
||||
- vdd_l28-supply:
|
||||
- vdd_ncp-supply:
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s4-supply:
|
||||
- vdd_s5-supply:
|
||||
- vdd_s6-supply:
|
||||
- vdd_s7-supply:
|
||||
- vdd_s8-supply:
|
||||
- vin_5vs-supply:
|
||||
- vin_lvs1_3_6-supply:
|
||||
- vin_lvs2-supply:
|
||||
- vin_lvs4_5_7-supply:
|
||||
Usage: optional (pm8921 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- vin_lvs1-supply:
|
||||
- vdd_l7-supply:
|
||||
- vdd_l8-supply:
|
||||
- vdd_l9_l10_l11_l12-supply:
|
||||
Usage: optional (pm8018 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
The regulator node houses sub-nodes for each regulator within the device. Each
|
||||
sub-node is identified using the node's name, with valid values listed for each
|
||||
of the pmics below.
|
||||
|
||||
pm8058:
|
||||
l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15,
|
||||
l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4,
|
||||
lvs0, lvs1, ncp
|
||||
|
||||
pm8901:
|
||||
l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
|
||||
mvs
|
||||
|
||||
pm8921:
|
||||
s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
|
||||
l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
|
||||
l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
|
||||
ncp
|
||||
|
||||
pm8018:
|
||||
s1, s2, s3, s4, s5, , l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
|
||||
l12, l14, lvs1
|
||||
|
||||
smb208:
|
||||
s1a, s1b, s2a, s2b
|
||||
|
||||
The content of each sub-node is defined by the standard binding for regulators -
|
||||
see regulator.txt - with additional custom properties described below:
|
||||
|
||||
=== Switch-mode Power Supply regulator custom properties
|
||||
|
||||
- bias-pull-down:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: enable pull down of the regulator when inactive
|
||||
|
||||
- qcom,switch-mode-frequency:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Frequency (Hz) of the switch-mode power supply;
|
||||
must be one of:
|
||||
19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
|
||||
2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
|
||||
1480000, 1370000, 1280000, 1200000
|
||||
|
||||
- qcom,force-mode:
|
||||
Usage: optional (default if no other qcom,force-mode is specified)
|
||||
Value type: <u32>
|
||||
Definition: indicates that the regulator should be forced to a
|
||||
particular mode, valid values are:
|
||||
QCOM_RPM_FORCE_MODE_NONE - do not force any mode
|
||||
QCOM_RPM_FORCE_MODE_LPM - force into low power mode
|
||||
QCOM_RPM_FORCE_MODE_HPM - force into high power mode
|
||||
QCOM_RPM_FORCE_MODE_AUTO - allow regulator to automatically
|
||||
select its own mode based on
|
||||
realtime current draw, only for:
|
||||
pm8921 smps and ftsmps
|
||||
|
||||
- qcom,power-mode-hysteretic:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: select that the power supply should operate in hysteretic
|
||||
mode, instead of the default pwm mode
|
||||
|
||||
=== Low-dropout regulator custom properties
|
||||
|
||||
- bias-pull-down:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: enable pull down of the regulator when inactive
|
||||
|
||||
- qcom,force-mode:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: indicates that the regulator should not be forced to any
|
||||
particular mode, valid values are:
|
||||
QCOM_RPM_FORCE_MODE_NONE - do not force any mode
|
||||
QCOM_RPM_FORCE_MODE_LPM - force into low power mode
|
||||
QCOM_RPM_FORCE_MODE_HPM - force into high power mode
|
||||
QCOM_RPM_FORCE_MODE_BYPASS - set regulator to use bypass
|
||||
mode, i.e. to act as a switch
|
||||
and not regulate, only for:
|
||||
pm8921 pldo, nldo and nldo1200
|
||||
|
||||
=== Negative Charge Pump custom properties
|
||||
|
||||
- qcom,switch-mode-frequency:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Frequency (Hz) of the switch mode power supply;
|
||||
must be one of:
|
||||
19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
|
||||
2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
|
||||
1480000, 1370000, 1280000, 1200000
|
||||
|
||||
= EXAMPLE
|
||||
|
||||
#include <dt-bindings/mfd/qcom-rpm.h>
|
||||
|
||||
rpm@108000 {
|
||||
compatible = "qcom,rpm-msm8960";
|
||||
reg = <0x108000 0x1000>;
|
||||
qcom,ipc = <&apcs 0x8 2>;
|
||||
|
||||
interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
|
||||
interrupt-names = "ack", "err", "wakeup";
|
||||
|
||||
regulators {
|
||||
compatible = "qcom,rpm-pm8921-regulators";
|
||||
vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
|
||||
|
||||
s1 {
|
||||
regulator-min-microvolt = <1225000>;
|
||||
regulator-max-microvolt = <1225000>;
|
||||
|
||||
bias-pull-down;
|
||||
|
||||
qcom,switch-mode-frequency = <3200000>;
|
||||
};
|
||||
|
||||
pm8921_s4: s4 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
|
||||
qcom,switch-mode-frequency = <1600000>;
|
||||
bias-pull-down;
|
||||
|
||||
qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
17
bindings/mfd/qriox.txt
Normal file
17
bindings/mfd/qriox.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
KEYMILE qrio Board Control CPLD
|
||||
|
||||
The qrio is a multifunction device that controls the KEYMILE boards based on
|
||||
the kmp204x design.
|
||||
It is consists of a reset controller, watchdog timer, LEDs, and 2 IRQ capable
|
||||
GPIO blocks.
|
||||
|
||||
Required properties:
|
||||
- compatible: "keymile,qriox"
|
||||
- reg: access on the parent local bus (chip select, offset in chip select, size)
|
||||
|
||||
Example:
|
||||
|
||||
board-control@1,0 {
|
||||
compatible = "keymile,qriox";
|
||||
reg = <1 0 0x80>;
|
||||
};
|
24
bindings/mfd/retu.txt
Normal file
24
bindings/mfd/retu.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
* Device tree bindings for Nokia Retu and Tahvo multi-function device
|
||||
|
||||
Retu and Tahvo are a multi-function devices found on Nokia Internet
|
||||
Tablets (770, N800 and N810). The Retu chip provides watchdog timer
|
||||
and power button control functionalities while Tahvo chip provides
|
||||
USB transceiver functionality.
|
||||
|
||||
Required properties:
|
||||
- compatible: "nokia,retu" or "nokia,tahvo"
|
||||
- reg: Specifies the CBUS slave address of the ASIC chip
|
||||
- interrupts: The interrupt line the device is connected to
|
||||
|
||||
Example:
|
||||
|
||||
cbus0 {
|
||||
compatible = "i2c-cbus-gpio";
|
||||
...
|
||||
retu: retu@1 {
|
||||
compatible = "nokia,retu";
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupts = <12 IRQ_TYPE_EDGE_RISING>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
90
bindings/mfd/richtek,rt4831.yaml
Normal file
90
bindings/mfd/richtek,rt4831.yaml
Normal file
@@ -0,0 +1,90 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/richtek,rt4831.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Richtek RT4831 DSV and Backlight Integrated IC
|
||||
|
||||
maintainers:
|
||||
- ChiYuan Huang <cy_huang@richtek.com>
|
||||
|
||||
description: |
|
||||
RT4831 is a multifunctional device that can provide power to the LCD display
|
||||
and LCD backlight.
|
||||
|
||||
For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
|
||||
It's sufficient to meet the current LCD power requirement.
|
||||
|
||||
For the LCD backlight, it can provide four channel WLED driving capability.
|
||||
Each channel driving current is up to 30mA
|
||||
|
||||
Datasheet is available at
|
||||
https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: richtek,rt4831
|
||||
|
||||
reg:
|
||||
description: I2C device address.
|
||||
maxItems: 1
|
||||
|
||||
enable-gpios:
|
||||
description: |
|
||||
GPIO to enable/disable the chip. It is optional.
|
||||
Some usage directly tied this pin to follow VIO 1.8V power on sequence.
|
||||
maxItems: 1
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/richtek,rt4831-regulator.yaml
|
||||
|
||||
backlight:
|
||||
$ref: ../leds/backlight/richtek,rt4831-backlight.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/leds/rt4831-backlight.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rt4831@11 {
|
||||
compatible = "richtek,rt4831";
|
||||
reg = <0x11>;
|
||||
|
||||
regulators {
|
||||
DSVLCM {
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <7150000>;
|
||||
regulator-allow-bypass;
|
||||
};
|
||||
DSVP {
|
||||
regulator-name = "rt4831-dsvp";
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <6500000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
DSVN {
|
||||
regulator-name = "rt4831-dsvn";
|
||||
regulator-min-microvolt = <4000000>;
|
||||
regulator-max-microvolt = <6500000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "richtek,rt4831-backlight";
|
||||
default-brightness = <1024>;
|
||||
max-brightness = <2048>;
|
||||
richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
|
||||
richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
|
||||
};
|
||||
};
|
||||
};
|
178
bindings/mfd/richtek,rt5120.yaml
Normal file
178
bindings/mfd/richtek,rt5120.yaml
Normal file
@@ -0,0 +1,178 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/richtek,rt5120.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Richtek RT5120 PMIC
|
||||
|
||||
maintainers:
|
||||
- ChiYuan Huang <cy_huang@richtek.com>
|
||||
|
||||
description: |
|
||||
The RT5120 provides four high-efficiency buck converters and one LDO voltage
|
||||
regulator. The device is targeted at providingthe processor voltage, memory,
|
||||
I/O, and peripheral rails in home entertainment devices. The I2C interface is
|
||||
used for dynamic voltage scaling of the processor voltage, power rails on/off
|
||||
sequence control, operation mode selection.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- richtek,rt5120
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 1
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
richtek,enable-undervolt-hiccup:
|
||||
type: boolean
|
||||
description: |
|
||||
If used, under voltage protection trigger hiccup behavior, else latchup as
|
||||
default
|
||||
|
||||
richtek,enable-overvolt-hiccup:
|
||||
type: boolean
|
||||
description:
|
||||
Like as 'enable-uv-hiccup', it configures over voltage protection to
|
||||
hiccup, else latchup as default
|
||||
|
||||
vin1-supply:
|
||||
description: phandle for buck1 input power source
|
||||
|
||||
vin2-supply:
|
||||
description: phandle for buck2 input power source
|
||||
|
||||
vin3-supply:
|
||||
description: phandle for buck3 input power source
|
||||
|
||||
vin4-supply:
|
||||
description: phandle for buck4 input power source
|
||||
|
||||
vinldo-supply:
|
||||
description: phandle for ldo input power source
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
|
||||
patternProperties:
|
||||
"^buck[1-4]$":
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
regulator-allowed-modes:
|
||||
description: |
|
||||
Used to specify the allowed buck converter operating mode
|
||||
mode mapping:
|
||||
0: auto mode
|
||||
1: force pwm mode
|
||||
items:
|
||||
enum: [0, 1]
|
||||
|
||||
"^(ldo|exten)$":
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
powerkey:
|
||||
type: object
|
||||
description:
|
||||
PON key that connected to RT5120 PMIC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- richtek,rt5120-pwrkey
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- '#interrupt-cells'
|
||||
- interrupt-controller
|
||||
- regulators
|
||||
- powerkey
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@62 {
|
||||
compatible = "richtek,rt5120";
|
||||
reg = <0x62>;
|
||||
interrupts-extended = <&gpio_intc 32 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
wakeup-source;
|
||||
|
||||
regulators {
|
||||
buck1 {
|
||||
regulator-name = "rt5120-buck1";
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1393750>;
|
||||
regulator-allowed-modes = <0 1>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck2 {
|
||||
regulator-name = "rt5120-buck2";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-allowed-modes = <0 1>;
|
||||
regulator-always-on;
|
||||
};
|
||||
buck3 {
|
||||
regulator-name = "rt5120-buck3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-allowed-modes = <0 1>;
|
||||
regulator-always-on;
|
||||
};
|
||||
buck4 {
|
||||
regulator-name = "rt5120-buck4";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-allowed-modes = <0 1>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo {
|
||||
regulator-name = "rt5120-ldo";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
exten {
|
||||
regulator-name = "rt5120-exten";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
powerkey {
|
||||
compatible = "richtek,rt5120-pwrkey";
|
||||
};
|
||||
};
|
||||
};
|
111
bindings/mfd/ricoh,rn5t618.yaml
Normal file
111
bindings/mfd/ricoh,rn5t618.yaml
Normal file
@@ -0,0 +1,111 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Ricoh RN5T567/RN5T618/RC5T619 PMIC
|
||||
|
||||
maintainers:
|
||||
- Andreas Kemnade <andreas@kemnade.info>
|
||||
|
||||
description: |
|
||||
Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which
|
||||
integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators,
|
||||
GPIOs, and a watchdog timer. It can be controlled through an I2C interface.
|
||||
The RN5T618/RC5T619 provides additionally a Li-ion battery charger,
|
||||
fuel gauge, and an ADC.
|
||||
The RC5T619 additionally includes USB charger detection and an RTC.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ricoh,rn5t567
|
||||
then:
|
||||
properties:
|
||||
regulators:
|
||||
patternProperties:
|
||||
"^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$":
|
||||
$ref: ../regulator/regulator.yaml
|
||||
additionalProperties: false
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ricoh,rn5t618
|
||||
then:
|
||||
properties:
|
||||
regulators:
|
||||
patternProperties:
|
||||
"^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$":
|
||||
$ref: ../regulator/regulator.yaml
|
||||
additionalProperties: false
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ricoh,rc5t619
|
||||
then:
|
||||
properties:
|
||||
regulators:
|
||||
patternProperties:
|
||||
"^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$":
|
||||
$ref: ../regulator/regulator.yaml
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ricoh,rn5t567
|
||||
- ricoh,rn5t618
|
||||
- ricoh,rc5t619
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
system-power-controller:
|
||||
type: boolean
|
||||
description: |
|
||||
See Documentation/devicetree/bindings/power/power-controller.txt
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@32 {
|
||||
compatible = "ricoh,rn5t618";
|
||||
reg = <0x32>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
|
||||
system-power-controller;
|
||||
|
||||
regulators {
|
||||
DCDC1 {
|
||||
regulator-min-microvolt = <1050000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
};
|
||||
|
||||
DCDC2 {
|
||||
regulator-min-microvolt = <1175000>;
|
||||
regulator-max-microvolt = <1175000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
219
bindings/mfd/rockchip,rk805.yaml
Normal file
219
bindings/mfd/rockchip,rk805.yaml
Normal file
@@ -0,0 +1,219 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rockchip,rk805.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RK805 Power Management Integrated Circuit
|
||||
|
||||
maintainers:
|
||||
- Chris Zhong <zyw@rock-chips.com>
|
||||
- Zhang Qing <zhangqing@rock-chips.com>
|
||||
|
||||
description: |
|
||||
Rockchip RK805 series PMIC. This device consists of an i2c controlled MFD
|
||||
that includes multiple switchable regulators.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk805
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
description:
|
||||
See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
From common clock binding to override the default output clock name.
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
Device can be used as a wakeup source.
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG1.
|
||||
|
||||
vcc2-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG2.
|
||||
|
||||
vcc3-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG3.
|
||||
|
||||
vcc4-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG4.
|
||||
|
||||
vcc5-supply:
|
||||
description:
|
||||
The input supply for LDO_REG1 and LDO_REG2.
|
||||
|
||||
vcc6-supply:
|
||||
description:
|
||||
The input supply for LDO_REG3.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
patternProperties:
|
||||
"^(DCDC_REG[1-4]|LDO_REG[1-3])$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
then:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
else:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@18 {
|
||||
compatible = "rockchip,rk805";
|
||||
reg = <0x18>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int_l>;
|
||||
rockchip,system-power-controller;
|
||||
wakeup-source;
|
||||
#clock-cells = <0>;
|
||||
|
||||
vcc1-supply = <&vcc_sys>;
|
||||
vcc2-supply = <&vcc_sys>;
|
||||
vcc3-supply = <&vcc_sys>;
|
||||
vcc4-supply = <&vcc_sys>;
|
||||
vcc5-supply = <&vcc_io>;
|
||||
vcc6-supply = <&vcc_io>;
|
||||
|
||||
regulators {
|
||||
vdd_logic: DCDC_REG1 {
|
||||
regulator-name = "vdd_logic";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_arm: DCDC_REG2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <950000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-name = "vcc_ddr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_io: DCDC_REG4 {
|
||||
regulator-name = "vcc_io";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_18: LDO_REG1 {
|
||||
regulator-name = "vdd_18";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc18_emmc: LDO_REG2 {
|
||||
regulator-name = "vcc_18emmc";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_11: LDO_REG3 {
|
||||
regulator-name = "vdd_11";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
257
bindings/mfd/rockchip,rk808.yaml
Normal file
257
bindings/mfd/rockchip,rk808.yaml
Normal file
@@ -0,0 +1,257 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rockchip,rk808.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RK808 Power Management Integrated Circuit
|
||||
|
||||
maintainers:
|
||||
- Chris Zhong <zyw@rock-chips.com>
|
||||
- Zhang Qing <zhangqing@rock-chips.com>
|
||||
|
||||
description: |
|
||||
Rockchip RK808 series PMIC. This device consists of an i2c controlled MFD
|
||||
that includes regulators, an RTC, and a power button.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk808
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
description:
|
||||
See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
|
||||
const: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
From common clock binding to override the default output clock name.
|
||||
maxItems: 2
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
Device can be used as a wakeup source.
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG1.
|
||||
|
||||
vcc2-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG2.
|
||||
|
||||
vcc3-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG3.
|
||||
|
||||
vcc4-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG4.
|
||||
|
||||
vcc6-supply:
|
||||
description:
|
||||
The input supply for LDO_REG1 and LDO_REG2.
|
||||
|
||||
vcc7-supply:
|
||||
description:
|
||||
The input supply for LDO_REG3 and LDO_REG7.
|
||||
|
||||
vcc8-supply:
|
||||
description:
|
||||
The input supply for SWITCH_REG1.
|
||||
|
||||
vcc9-supply:
|
||||
description:
|
||||
The input supply for LDO_REG4 and LDO_REG5.
|
||||
|
||||
vcc10-supply:
|
||||
description:
|
||||
The input supply for LDO_REG6.
|
||||
|
||||
vcc11-supply:
|
||||
description:
|
||||
The input supply for LDO_REG8.
|
||||
|
||||
vcc12-supply:
|
||||
description:
|
||||
The input supply for SWITCH_REG2.
|
||||
|
||||
vddio-supply:
|
||||
description:
|
||||
The input supply for digital IO.
|
||||
|
||||
dvs-gpios:
|
||||
description: |
|
||||
buck1/2 can be controlled by gpio dvs, this is GPIO specifiers for
|
||||
2 host gpio's used for dvs. The format of the gpio specifier
|
||||
depends in the gpio controller. If DVS GPIOs aren't present,
|
||||
voltage changes will happen very quickly with no slow ramp time.
|
||||
maxItems: 2
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
patternProperties:
|
||||
"^(DCDC_REG[1-4]|LDO_REG[1-8]|SWITCH_REG[1-2])$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rk808: pmic@1b {
|
||||
compatible = "rockchip,rk808";
|
||||
clock-output-names = "xin32k", "rk808-clkout2";
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
|
||||
dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio7 15 GPIO_ACTIVE_HIGH>;
|
||||
reg = <0x1b>;
|
||||
rockchip,system-power-controller;
|
||||
wakeup-source;
|
||||
#clock-cells = <1>;
|
||||
|
||||
vcc8-supply = <&vcc_18>;
|
||||
vcc9-supply = <&vcc_io>;
|
||||
vcc10-supply = <&vcc_io>;
|
||||
vcc12-supply = <&vcc_io>;
|
||||
vddio-supply = <&vccio_pmu>;
|
||||
|
||||
regulators {
|
||||
vdd_cpu: DCDC_REG1 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-name = "vdd_arm";
|
||||
};
|
||||
|
||||
vdd_gpu: DCDC_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1250000>;
|
||||
regulator-name = "vdd_gpu";
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc_ddr";
|
||||
};
|
||||
|
||||
vcc_io: DCDC_REG4 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc_io";
|
||||
};
|
||||
|
||||
vccio_pmu: LDO_REG1 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vccio_pmu";
|
||||
};
|
||||
|
||||
vcc_tp: LDO_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc_tp";
|
||||
};
|
||||
|
||||
vdd_10: LDO_REG3 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-name = "vdd_10";
|
||||
};
|
||||
|
||||
vcc18_lcd: LDO_REG4 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc18_lcd";
|
||||
};
|
||||
|
||||
vccio_sd: LDO_REG5 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vccio_sd";
|
||||
};
|
||||
|
||||
vdd10_lcd: LDO_REG6 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-name = "vdd10_lcd";
|
||||
};
|
||||
|
||||
vcc_18: LDO_REG7 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc_18";
|
||||
};
|
||||
|
||||
vcca_codec: LDO_REG8 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcca_codec";
|
||||
};
|
||||
|
||||
vcc_wl: SWITCH_REG1 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc_wl";
|
||||
};
|
||||
|
||||
vcc_lcd: SWITCH_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc_lcd";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
284
bindings/mfd/rockchip,rk809.yaml
Normal file
284
bindings/mfd/rockchip,rk809.yaml
Normal file
@@ -0,0 +1,284 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rockchip,rk809.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RK809 Power Management Integrated Circuit
|
||||
|
||||
maintainers:
|
||||
- Chris Zhong <zyw@rock-chips.com>
|
||||
- Zhang Qing <zhangqing@rock-chips.com>
|
||||
|
||||
description: |
|
||||
Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
|
||||
that includes regulators, an RTC, and power button.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk809
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
description: |
|
||||
See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
From common clock binding to override the default output clock name.
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
Device can be used as a wakeup source.
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG1.
|
||||
|
||||
vcc2-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG2.
|
||||
|
||||
vcc3-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG3.
|
||||
|
||||
vcc4-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG4.
|
||||
|
||||
vcc5-supply:
|
||||
description:
|
||||
The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
|
||||
|
||||
vcc6-supply:
|
||||
description:
|
||||
The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
|
||||
|
||||
vcc7-supply:
|
||||
description:
|
||||
The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
|
||||
|
||||
vcc8-supply:
|
||||
description:
|
||||
The input supply for SWITCH_REG1.
|
||||
|
||||
vcc9-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG5 and SWITCH_REG2.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
patternProperties:
|
||||
"^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
then:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
else:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rk808: pmic@1b {
|
||||
compatible = "rockchip,rk808";
|
||||
reg = <0x1b>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "xin32k", "rk808-clkout2";
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int_l_pin>;
|
||||
rockchip,system-power-controller;
|
||||
wakeup-source;
|
||||
|
||||
vcc1-supply = <&vcc_sysin>;
|
||||
vcc2-supply = <&vcc_sysin>;
|
||||
vcc3-supply = <&vcc_sysin>;
|
||||
vcc4-supply = <&vcc_sysin>;
|
||||
vcc6-supply = <&vcc_sysin>;
|
||||
vcc7-supply = <&vcc_sysin>;
|
||||
vcc8-supply = <&vcc3v3_sys>;
|
||||
vcc9-supply = <&vcc_sysin>;
|
||||
vcc10-supply = <&vcc_sysin>;
|
||||
vcc11-supply = <&vcc_sysin>;
|
||||
vcc12-supply = <&vcc3v3_sys>;
|
||||
|
||||
regulators {
|
||||
vdd_center: DCDC_REG1 {
|
||||
regulator-name = "vdd_center";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_cpu_l: DCDC_REG2 {
|
||||
regulator-name = "vdd_cpu_l";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-name = "vcc_ddr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_1v8: vcc_wl: DCDC_REG4 {
|
||||
regulator-name = "vcc_1v8";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc1v8_pmupll: LDO_REG3 {
|
||||
regulator-name = "vcc1v8_pmupll";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_sdio: LDO_REG4 {
|
||||
regulator-name = "vcc_sdio";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcca3v0_codec: LDO_REG5 {
|
||||
regulator-name = "vcca3v0_codec";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_1v5: LDO_REG6 {
|
||||
regulator-name = "vcc_1v5";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1500000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcca1v8_codec: LDO_REG7 {
|
||||
regulator-name = "vcca1v8_codec";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_3v0: LDO_REG8 {
|
||||
regulator-name = "vcc_3v0";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc3v3_s3: SWITCH_REG1 {
|
||||
regulator-name = "vcc3v3_s3";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc3v3_s0: SWITCH_REG2 {
|
||||
regulator-name = "vcc3v3_s0";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
382
bindings/mfd/rockchip,rk817.yaml
Normal file
382
bindings/mfd/rockchip,rk817.yaml
Normal file
@@ -0,0 +1,382 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RK817 Power Management Integrated Circuit
|
||||
|
||||
maintainers:
|
||||
- Chris Zhong <zyw@rock-chips.com>
|
||||
- Zhang Qing <zhangqing@rock-chips.com>
|
||||
|
||||
description: |
|
||||
Rockchip RK817 series PMIC. This device consists of an i2c controlled MFD
|
||||
that includes regulators, an RTC, a power button, an audio codec, and a
|
||||
battery charger manager.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk817
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
description:
|
||||
See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
From common clock binding to override the default output clock name.
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
Device can be used as a wakeup source.
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG1.
|
||||
|
||||
vcc2-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG2.
|
||||
|
||||
vcc3-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG3.
|
||||
|
||||
vcc4-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG4.
|
||||
|
||||
vcc5-supply:
|
||||
description:
|
||||
The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
|
||||
|
||||
vcc6-supply:
|
||||
description:
|
||||
The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
|
||||
|
||||
vcc7-supply:
|
||||
description:
|
||||
The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
|
||||
|
||||
vcc8-supply:
|
||||
description:
|
||||
The input supply for BOOST.
|
||||
|
||||
vcc9-supply:
|
||||
description:
|
||||
The input supply for OTG_SWITCH.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
patternProperties:
|
||||
"^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$":
|
||||
type: object
|
||||
unevaluatedProperties: false
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
clocks:
|
||||
description:
|
||||
The input clock for the audio codec.
|
||||
|
||||
clock-names:
|
||||
description:
|
||||
The clock name for the codec clock.
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
'#sound-dai-cells':
|
||||
description:
|
||||
Needed for the interpretation of sound dais.
|
||||
const: 0
|
||||
|
||||
codec:
|
||||
description: |
|
||||
The child node for the codec to hold additional properties. If no
|
||||
additional properties are required for the codec, this node can be
|
||||
omitted.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
rockchip,mic-in-differential:
|
||||
type: boolean
|
||||
description:
|
||||
Describes if the microphone uses differential mode.
|
||||
|
||||
charger:
|
||||
description: |
|
||||
The child node for the charger to hold additional properties. If a
|
||||
battery is not in use, this node can be omitted.
|
||||
type: object
|
||||
properties:
|
||||
monitored-battery:
|
||||
description: |
|
||||
A phandle to a monitored battery node that contains a valid
|
||||
value for:
|
||||
charge-full-design-microamp-hours,
|
||||
charge-term-current-microamp,
|
||||
constant-charge-current-max-microamp,
|
||||
constant-charge-voltage-max-microvolt,
|
||||
voltage-max-design-microvolt,
|
||||
voltage-min-design-microvolt,
|
||||
and a valid ocv-capacity table.
|
||||
|
||||
rockchip,resistor-sense-micro-ohms:
|
||||
description: |
|
||||
Value in microohms of the battery sense resistor. This value is
|
||||
used by the driver to set the correct divisor value to translate
|
||||
ADC readings into the proper units of measure.
|
||||
enum: [10000, 20000]
|
||||
|
||||
rockchip,sleep-enter-current-microamp:
|
||||
description: |
|
||||
Value in microamps of the sleep enter current for the charger.
|
||||
Value is used by the driver to calibrate the relax threshold.
|
||||
|
||||
rockchip,sleep-filter-current-microamp:
|
||||
description:
|
||||
Value in microamps of the sleep filter current for the charger.
|
||||
Value is used by the driver to derive the sleep sample current.
|
||||
|
||||
required:
|
||||
- monitored-battery
|
||||
- rockchip,resistor-sense-micro-ohms
|
||||
- rockchip,sleep-enter-current-microamp
|
||||
- rockchip,sleep-filter-current-microamp
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
then:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
else:
|
||||
properties:
|
||||
clock-output-names:
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/px30-cru.h>
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rk817: pmic@20 {
|
||||
compatible = "rockchip,rk817";
|
||||
reg = <0x20>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-output-names = "rk808-clkout1", "xin32k";
|
||||
clock-names = "mclk";
|
||||
clocks = <&cru SCLK_I2S1_OUT>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
|
||||
wakeup-source;
|
||||
#clock-cells = <1>;
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
vcc1-supply = <&vccsys>;
|
||||
vcc2-supply = <&vccsys>;
|
||||
vcc3-supply = <&vccsys>;
|
||||
vcc4-supply = <&vccsys>;
|
||||
vcc5-supply = <&vccsys>;
|
||||
vcc6-supply = <&vccsys>;
|
||||
vcc7-supply = <&vccsys>;
|
||||
|
||||
regulators {
|
||||
vdd_logic: DCDC_REG1 {
|
||||
regulator-name = "vdd_logic";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <950000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_arm: DCDC_REG2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <950000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-name = "vcc_ddr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_3v3: DCDC_REG4 {
|
||||
regulator-name = "vcc_3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_1v8: LDO_REG2 {
|
||||
regulator-name = "vcc_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_1v0: LDO_REG3 {
|
||||
regulator-name = "vdd_1v0";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc3v3_pmu: LDO_REG4 {
|
||||
regulator-name = "vcc3v3_pmu";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vccio_sd: LDO_REG5 {
|
||||
regulator-name = "vccio_sd";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_sd: LDO_REG6 {
|
||||
regulator-name = "vcc_sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_bl: LDO_REG7 {
|
||||
regulator-name = "vcc_bl";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_lcd: LDO_REG8 {
|
||||
regulator-name = "vcc_lcd";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <2800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_cam: LDO_REG9 {
|
||||
regulator-name = "vcc_cam";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <3000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rk817_charger: charger {
|
||||
monitored-battery = <&battery>;
|
||||
rockchip,resistor-sense-micro-ohms = <10000>;
|
||||
rockchip,sleep-enter-current-microamp = <300000>;
|
||||
rockchip,sleep-filter-current-microamp = <100000>;
|
||||
};
|
||||
|
||||
rk817_codec: codec {
|
||||
rockchip,mic-in-differential;
|
||||
};
|
||||
};
|
||||
};
|
282
bindings/mfd/rockchip,rk818.yaml
Normal file
282
bindings/mfd/rockchip,rk818.yaml
Normal file
@@ -0,0 +1,282 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rockchip,rk818.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RK818 Power Management Integrated Circuit
|
||||
|
||||
maintainers:
|
||||
- Chris Zhong <zyw@rock-chips.com>
|
||||
- Zhang Qing <zhangqing@rock-chips.com>
|
||||
|
||||
description: |
|
||||
Rockchip RK818 series PMIC. This device consists of an i2c controlled MFD
|
||||
that includes regulators, an RTC, and a power button.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk818
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
description: |
|
||||
See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
|
||||
const: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
From common clock binding to override the default output clock name.
|
||||
maxItems: 2
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
Device can be used as a wakeup source.
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG1.
|
||||
|
||||
vcc2-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG2.
|
||||
|
||||
vcc3-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG3.
|
||||
|
||||
vcc4-supply:
|
||||
description:
|
||||
The input supply for DCDC_REG4.
|
||||
|
||||
boost-supply:
|
||||
description:
|
||||
The input supply for DCDC_BOOST
|
||||
|
||||
vcc6-supply:
|
||||
description:
|
||||
The input supply for LDO_REG1 and LDO_REG2.
|
||||
|
||||
vcc7-supply:
|
||||
description:
|
||||
The input supply for LDO_REG3, LDO_REG5, and LDO_REG7.
|
||||
|
||||
vcc8-supply:
|
||||
description:
|
||||
The input supply for LDO_REG4, LDO_REG6, and LDO_REG8.
|
||||
|
||||
vcc9-supply:
|
||||
description:
|
||||
The input supply for LDO_REG9 and SWITCH_REG.
|
||||
|
||||
vddio-supply:
|
||||
description:
|
||||
The input supply for digital IO.
|
||||
|
||||
h_5v-supply:
|
||||
description:
|
||||
The input supply for HDMI_SWITCH.
|
||||
|
||||
usb-supply:
|
||||
description:
|
||||
The input supply for OTG_SWITCH.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
patternProperties:
|
||||
"^(DCDC_REG[1-4]|DCDC_BOOST|LDO_REG[1-9]|SWITCH_REG|HDMI_SWITCH|OTG_SWITCH)$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/px30-cru.h>
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rk818: pmic@1c {
|
||||
compatible = "rockchip,rk818";
|
||||
reg = <0x1c>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int>;
|
||||
rockchip,system-power-controller;
|
||||
wakeup-source;
|
||||
#clock-cells = <1>;
|
||||
|
||||
vcc1-supply = <&vdd_sys>;
|
||||
vcc2-supply = <&vdd_sys>;
|
||||
vcc3-supply = <&vdd_sys>;
|
||||
vcc4-supply = <&vdd_sys>;
|
||||
boost-supply = <&vdd_in_otg_out>;
|
||||
vcc6-supply = <&vdd_sys>;
|
||||
vcc7-supply = <&vdd_misc_1v8>;
|
||||
vcc8-supply = <&vdd_misc_1v8>;
|
||||
vcc9-supply = <&vdd_3v3_io>;
|
||||
vddio-supply = <&vdd_3v3_io>;
|
||||
|
||||
regulators {
|
||||
vdd_log: DCDC_REG1 {
|
||||
regulator-name = "vdd_log";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_gpu: DCDC_REG2 {
|
||||
regulator-name = "vdd_gpu";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1250000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-name = "vcc_ddr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_3v3_io: DCDC_REG4 {
|
||||
regulator-name = "vdd_3v3_io";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_sys: DCDC_BOOST {
|
||||
regulator-name = "vdd_sys";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <5000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_sd: SWITCH_REG {
|
||||
regulator-name = "vdd_sd";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_eth_2v5: LDO_REG2 {
|
||||
regulator-name = "vdd_eth_2v5";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <2500000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_1v0: LDO_REG3 {
|
||||
regulator-name = "vdd_1v0";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_1v8_lcd_ldo: LDO_REG4 {
|
||||
regulator-name = "vdd_1v8_lcd_ldo";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_1v0_lcd: LDO_REG6 {
|
||||
regulator-name = "vdd_1v0_lcd";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-state-mem {
|
||||
regulator-on-in-suspend;
|
||||
regulator-suspend-microvolt = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_1v8_ldo: LDO_REG7 {
|
||||
regulator-name = "vdd_1v8_ldo";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
regulator-suspend-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
|
||||
vdd_io_sd: LDO_REG9 {
|
||||
regulator-name = "vdd_io_sd";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
201
bindings/mfd/rohm,bd71815-pmic.yaml
Normal file
201
bindings/mfd/rohm,bd71815-pmic.yaml
Normal file
@@ -0,0 +1,201 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd71815-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD71815 Power Management Integrated Circuit bindings
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
|
||||
|
||||
description: |
|
||||
BD71815AGW is a single-chip power management ICs for battery-powered
|
||||
portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
|
||||
for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
|
||||
counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd71815
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
description: |
|
||||
The first cell is the pin number and the second cell is used to specify
|
||||
flags. See ../gpio/gpio.txt for more information.
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
const: bd71815-32k-out
|
||||
|
||||
rohm,clkout-open-drain:
|
||||
description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
rohm,charger-sense-resistor-ohms:
|
||||
minimum: 10000000
|
||||
maximum: 50000000
|
||||
description: |
|
||||
BD71827 and BD71828 have SAR ADC for measuring charging currents.
|
||||
External sense resistor (RSENSE in data sheet) should be used. If
|
||||
something other but 30MOhm resistor is used the resistance value
|
||||
should be given here in Ohms.
|
||||
default: 30000000
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/rohm,bd71815-regulator.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
gpio-reserved-ranges:
|
||||
description: |
|
||||
Usage of BD71828 GPIO pins can be changed via OTP. This property can be
|
||||
used to mark the pins which should not be configured for GPIO. Please see
|
||||
the ../gpio/gpio.txt for more information.
|
||||
|
||||
rohm,enable-hidden-gpo:
|
||||
description: |
|
||||
The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
|
||||
data-sheet as its location in the middle of GND pins makes it hard to
|
||||
use on PCB. If your board has managed to use this pin you can enable the
|
||||
second GPO by defining this property. Dont enable this if you are unsure
|
||||
about how the E5 pin is connected on your board.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- "#clock-cells"
|
||||
- regulators
|
||||
- gpio-controller
|
||||
- "#gpio-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71815";
|
||||
reg = <0x4b>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
clocks = <&osc 0>;
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "bd71815-32k-out";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
rohm,charger-sense-resistor-ohms = <10000000>;
|
||||
|
||||
regulators {
|
||||
buck1: buck1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <1150000>;
|
||||
rohm,dvs-suspend-voltage = <950000>;
|
||||
};
|
||||
buck2: buck2 {
|
||||
regulator-name = "buck2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <1150000>;
|
||||
rohm,dvs-suspend-voltage = <950000>;
|
||||
};
|
||||
buck3: buck3 {
|
||||
regulator-name = "buck3";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <2700000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
buck4: buck4 {
|
||||
regulator-name = "buck4";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1850000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
buck5: buck5 {
|
||||
regulator-name = "buck5";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo1: ldo1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo2: ldo2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo3: ldo3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo4: ldo4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo5: ldo5 {
|
||||
regulator-name = "ldo5";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo6: ldodvref {
|
||||
regulator-name = "ldodvref";
|
||||
regulator-always-on;
|
||||
};
|
||||
ldo7: ldolpsr {
|
||||
regulator-name = "ldolpsr";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
boost: wled {
|
||||
regulator-name = "wled";
|
||||
regulator-min-microamp = <10>;
|
||||
regulator-max-microamp = <25000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
204
bindings/mfd/rohm,bd71828-pmic.yaml
Normal file
204
bindings/mfd/rohm,bd71828-pmic.yaml
Normal file
@@ -0,0 +1,204 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd71828-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD71828 Power Management Integrated Circuit bindings
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
|
||||
|
||||
description: |
|
||||
BD71828GW is a single-chip power management IC for battery-powered portable
|
||||
devices. The IC integrates 7 buck converters, 7 LDOs, and a 1500 mA
|
||||
single-cell linear charger. Also included is a Coulomb counter, a real-time
|
||||
clock (RTC), and a 32.768 kHz clock gate.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd71828
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
description: |
|
||||
The first cell is the pin number and the second cell is used to specify
|
||||
flags. See ../gpio/gpio.txt for more information.
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
const: bd71828-32k-out
|
||||
|
||||
rohm,clkout-open-drain:
|
||||
description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
rohm,charger-sense-resistor-ohms:
|
||||
minimum: 10000000
|
||||
maximum: 50000000
|
||||
description: |
|
||||
BD71827 and BD71828 have SAR ADC for measuring charging currents.
|
||||
External sense resistor (RSENSE in data sheet) should be used. If some
|
||||
other but 30MOhm resistor is used the resistance value should be given
|
||||
here in Ohms.
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/rohm,bd71828-regulator.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
leds:
|
||||
$ref: ../leds/rohm,bd71828-leds.yaml
|
||||
|
||||
gpio-reserved-ranges:
|
||||
description: |
|
||||
Usage of BD71828 GPIO pins can be changed via OTP. This property can be
|
||||
used to mark the pins which should not be configured for GPIO. Please see
|
||||
the ../gpio/gpio.txt for more information.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- "#clock-cells"
|
||||
- regulators
|
||||
- gpio-controller
|
||||
- "#gpio-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71828";
|
||||
reg = <0x4b>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
clocks = <&osc 0>;
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "bd71828-32k-out";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-reserved-ranges = <0 1>, <2 1>;
|
||||
|
||||
rohm,charger-sense-resistor-ohms = <10000000>;
|
||||
|
||||
regulators {
|
||||
buck1: BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-ramp-delay = <2500>;
|
||||
};
|
||||
buck2: BUCK2 {
|
||||
regulator-name = "buck2";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-ramp-delay = <2500>;
|
||||
};
|
||||
buck3: BUCK3 {
|
||||
regulator-name = "buck3";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
};
|
||||
buck4: BUCK4 {
|
||||
regulator-name = "buck4";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
buck5: BUCK5 {
|
||||
regulator-name = "buck5";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
buck6: BUCK6 {
|
||||
regulator-name = "buck6";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-ramp-delay = <2500>;
|
||||
};
|
||||
buck7: BUCK7 {
|
||||
regulator-name = "buck7";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-ramp-delay = <2500>;
|
||||
};
|
||||
ldo1: LDO1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo2: LDO2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo3: LDO3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo4: LDO4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo5: LDO5 {
|
||||
regulator-name = "ldo5";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo6: LDO6 {
|
||||
regulator-name = "ldo6";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
ldo7_reg: LDO7 {
|
||||
regulator-name = "ldo7";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "rohm,bd71828-leds";
|
||||
|
||||
led-1 {
|
||||
rohm,led-compatible = "bd71828-grnled";
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
led-2 {
|
||||
rohm,led-compatible = "bd71828-ambled";
|
||||
function = LED_FUNCTION_CHARGING;
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
244
bindings/mfd/rohm,bd71837-pmic.yaml
Normal file
244
bindings/mfd/rohm,bd71837-pmic.yaml
Normal file
@@ -0,0 +1,244 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD71837 Power Management Integrated Circuit bindings
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
|
||||
|
||||
description: |
|
||||
BD71837MWV is programmable Power Management ICs for powering single-core,
|
||||
dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low
|
||||
BOM cost and compact solution footprint. BD71837MWV integrates 8 Buck
|
||||
regulators and 7 LDOs.
|
||||
Datasheet for BD71837 is available at
|
||||
https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd71837
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: osc
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
const: pmic_clk
|
||||
|
||||
# The BD718x7 supports two different HW states as reset target states. States
|
||||
# are called as SNVS and READY. At READY state all the PMIC power outputs go
|
||||
# down and OTP is reload. At the SNVS state all other logic and external
|
||||
# devices apart from the SNVS power domain are shut off. Please refer to NXP
|
||||
# i.MX8 documentation for further information regarding SNVS state. When a
|
||||
# reset is done via SNVS state the PMIC OTP data is not reload. This causes
|
||||
# power outputs that have been under SW control to stay down when reset has
|
||||
# switched power state to SNVS. If reset is done via READY state the power
|
||||
# outputs will be returned to HW control by OTP loading. Thus the reset
|
||||
# target state is set to READY by default. If SNVS state is used the boot
|
||||
# crucial regulators must have the regulator-always-on and regulator-boot-on
|
||||
# properties set in regulator node.
|
||||
|
||||
rohm,reset-snvs-powered:
|
||||
description: |
|
||||
Transfer PMIC to SNVS state at reset
|
||||
type: boolean
|
||||
|
||||
# Configure the "short press" and "long press" timers for the power button.
|
||||
# Values are rounded to what hardware supports
|
||||
# Short-press:
|
||||
# Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s
|
||||
# Long-press:
|
||||
# Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s
|
||||
# If these properties are not present the existing configuration (from
|
||||
# bootloader or OTP) is not touched.
|
||||
|
||||
rohm,short-press-ms:
|
||||
description:
|
||||
Short press duration in milliseconds
|
||||
enum:
|
||||
- 10
|
||||
- 500
|
||||
- 1000
|
||||
- 1500
|
||||
- 2000
|
||||
- 2500
|
||||
- 3000
|
||||
- 3500
|
||||
- 4000
|
||||
- 4500
|
||||
- 5000
|
||||
- 5500
|
||||
- 6000
|
||||
- 6500
|
||||
- 7000
|
||||
|
||||
rohm,long-press-ms:
|
||||
description:
|
||||
Long press duration in milliseconds
|
||||
enum:
|
||||
- 10
|
||||
- 1000
|
||||
- 2000
|
||||
- 3000
|
||||
- 4000
|
||||
- 5000
|
||||
- 6000
|
||||
- 7000
|
||||
- 8000
|
||||
- 9000
|
||||
- 10000
|
||||
- 11000
|
||||
- 12000
|
||||
- 13000
|
||||
- 14000
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/rohm,bd71837-regulator.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- "#clock-cells"
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc 0>;
|
||||
rohm,reset-snvs-powered;
|
||||
rohm,short-press-ms = <10>;
|
||||
rohm,long-press-ms = <2000>;
|
||||
|
||||
regulators {
|
||||
buck1: BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <900000>;
|
||||
rohm,dvs-idle-voltage = <850000>;
|
||||
rohm,dvs-suspend-voltage = <800000>;
|
||||
};
|
||||
buck2: BUCK2 {
|
||||
regulator-name = "buck2";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <1000000>;
|
||||
rohm,dvs-idle-voltage = <900000>;
|
||||
};
|
||||
buck3: BUCK3 {
|
||||
regulator-name = "buck3";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
rohm,dvs-run-voltage = <1000000>;
|
||||
};
|
||||
buck4: BUCK4 {
|
||||
regulator-name = "buck4";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
rohm,dvs-run-voltage = <1000000>;
|
||||
};
|
||||
buck5: BUCK5 {
|
||||
regulator-name = "buck5";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck6: BUCK6 {
|
||||
regulator-name = "buck6";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck7: BUCK7 {
|
||||
regulator-name = "buck7";
|
||||
regulator-min-microvolt = <1605000>;
|
||||
regulator-max-microvolt = <1995000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck8: BUCK8 {
|
||||
regulator-name = "buck8";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
};
|
||||
|
||||
ldo1: LDO1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
ldo2: LDO2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
ldo3: LDO3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo4: LDO4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
ldo5: LDO5 {
|
||||
regulator-name = "ldo5";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo6: LDO6 {
|
||||
regulator-name = "ldo6";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
ldo7_reg: LDO7 {
|
||||
regulator-name = "ldo7";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
229
bindings/mfd/rohm,bd71847-pmic.yaml
Normal file
229
bindings/mfd/rohm,bd71847-pmic.yaml
Normal file
@@ -0,0 +1,229 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd71847-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD71847 and BD71850 Power Management Integrated Circuit bindings
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
|
||||
|
||||
description: |
|
||||
BD71847AMWV and BD71850MWV are programmable Power Management ICs for powering
|
||||
single-core, dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is
|
||||
optimized for low BOM cost and compact solution footprint. BD71847MWV and
|
||||
BD71850MWV integrate 6 Buck regulators and 6 LDOs.
|
||||
Datasheets are available at
|
||||
https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71847amwv-product
|
||||
https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71850mwv-product
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rohm,bd71847
|
||||
- rohm,bd71850
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
# The BD71847 abd BD71850 support two different HW states as reset target
|
||||
# states. States are called as SNVS and READY. At READY state all the PMIC
|
||||
# power outputs go down and OTP is reload. At the SNVS state all other logic
|
||||
# and external devices apart from the SNVS power domain are shut off. Please
|
||||
# refer to NXP i.MX8 documentation for further information regarding SNVS
|
||||
# state. When a reset is done via SNVS state the PMIC OTP data is not reload.
|
||||
# This causes power outputs that have been under SW control to stay down when
|
||||
# reset has switched power state to SNVS. If reset is done via READY state the
|
||||
# power outputs will be returned to HW control by OTP loading. Thus the reset
|
||||
# target state is set to READY by default. If SNVS state is used the boot
|
||||
# crucial regulators must have the regulator-always-on and regulator-boot-on
|
||||
# properties set in regulator node.
|
||||
|
||||
rohm,reset-snvs-powered:
|
||||
description:
|
||||
Transfer PMIC to SNVS state at reset.
|
||||
type: boolean
|
||||
|
||||
# Configure the "short press" and "long press" timers for the power button.
|
||||
# Values are rounded to what hardware supports
|
||||
# Short-press:
|
||||
# Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s
|
||||
# Long-press:
|
||||
# Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s
|
||||
# If these properties are not present the existing # configuration (from
|
||||
# bootloader or OTP) is not touched.
|
||||
|
||||
rohm,short-press-ms:
|
||||
description:
|
||||
Short press duration in milliseconds
|
||||
enum:
|
||||
- 10
|
||||
- 500
|
||||
- 1000
|
||||
- 1500
|
||||
- 2000
|
||||
- 2500
|
||||
- 3000
|
||||
- 3500
|
||||
- 4000
|
||||
- 4500
|
||||
- 5000
|
||||
- 5500
|
||||
- 6000
|
||||
- 6500
|
||||
- 7000
|
||||
- 7500
|
||||
|
||||
rohm,long-press-ms:
|
||||
description:
|
||||
Long press duration in milliseconds
|
||||
enum:
|
||||
- 10
|
||||
- 1000
|
||||
- 2000
|
||||
- 3000
|
||||
- 4000
|
||||
- 5000
|
||||
- 6000
|
||||
- 7000
|
||||
- 8000
|
||||
- 9000
|
||||
- 10000
|
||||
- 11000
|
||||
- 12000
|
||||
- 13000
|
||||
- 14000
|
||||
- 15000
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/rohm,bd71847-regulator.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
dependencies:
|
||||
'#clock-cells': [clocks]
|
||||
clocks: ['#clock-cells']
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71847";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc 0>;
|
||||
rohm,reset-snvs-powered;
|
||||
rohm,short-press-ms = <10>;
|
||||
rohm,long-press-ms = <2000>;
|
||||
|
||||
regulators {
|
||||
buck1: BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <900000>;
|
||||
rohm,dvs-idle-voltage = <850000>;
|
||||
rohm,dvs-suspend-voltage = <800000>;
|
||||
};
|
||||
buck2: BUCK2 {
|
||||
regulator-name = "buck2";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
rohm,dvs-run-voltage = <1000000>;
|
||||
rohm,dvs-idle-voltage = <900000>;
|
||||
};
|
||||
buck3: BUCK3 {
|
||||
regulator-name = "buck3";
|
||||
regulator-min-microvolt = <550000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck4: BUCK4 {
|
||||
regulator-name = "buck4";
|
||||
regulator-min-microvolt = <2600000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck5: BUCK5 {
|
||||
regulator-name = "buck5";
|
||||
regulator-min-microvolt = <1605000>;
|
||||
regulator-max-microvolt = <1995000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
buck8: BUCK6 {
|
||||
regulator-name = "buck6";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
};
|
||||
|
||||
ldo1: LDO1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <1600000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
ldo2: LDO2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
ldo3: LDO3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo4: LDO4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
ldo5: LDO5 {
|
||||
regulator-name = "ldo5";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
ldo6: LDO6 {
|
||||
regulator-name = "ldo6";
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
127
bindings/mfd/rohm,bd9571mwv.yaml
Normal file
127
bindings/mfd/rohm,bd9571mwv.yaml
Normal file
@@ -0,0 +1,127 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd9571mwv.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD9571MWV/BD9574MWF Power Management Integrated Circuit (PMIC)
|
||||
|
||||
maintainers:
|
||||
- Marek Vasut <marek.vasut@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rohm,bd9571mwv
|
||||
- rohm,bd9574mwf
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
rohm,ddr-backup-power:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0x0
|
||||
maximum: 0xf
|
||||
description: |
|
||||
Value to use for DDR-Backup Power (default 0).
|
||||
This is a bitmask that specifies which DDR power rails need to be kept
|
||||
powered when backup mode is entered, for system suspend:
|
||||
- bit 0: DDR0
|
||||
- bit 1: DDR1
|
||||
- bit 2: DDR0C
|
||||
- bit 3: DDR1C
|
||||
These bits match the KEEPON_DDR* bits in the documentation for the "BKUP
|
||||
Mode Cnt" register.
|
||||
|
||||
rohm,rstbmode-level:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
The RSTB signal is configured for level mode, to accommodate a toggle
|
||||
power switch (the RSTBMODE pin is strapped low).
|
||||
|
||||
rohm,rstbmode-pulse:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
The RSTB signal is configured for pulse mode, to accommodate a momentary
|
||||
power switch (the RSTBMODE pin is strapped high).
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
description:
|
||||
List of child nodes that specify the regulator initialization data.
|
||||
Child nodes must be named after their hardware counterparts.
|
||||
|
||||
patternProperties:
|
||||
"^(vd09|vd18|vd25|vd33|dvfs)$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
|
||||
properties:
|
||||
regulator-name:
|
||||
pattern: "^(vd09|vd18|vd25|vd33|dvfs)$"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- gpio-controller
|
||||
- '#gpio-cells'
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- rohm,rstbmode-level
|
||||
- required:
|
||||
- rohm,rstbmode-pulse
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic: pmic@30 {
|
||||
compatible = "rohm,bd9571mwv";
|
||||
reg = <0x30>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
rohm,ddr-backup-power = <0xf>;
|
||||
rohm,rstbmode-pulse;
|
||||
|
||||
regulators {
|
||||
dvfs: dvfs {
|
||||
regulator-name = "dvfs";
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1030000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
123
bindings/mfd/rohm,bd9576-pmic.yaml
Normal file
123
bindings/mfd/rohm,bd9576-pmic.yaml
Normal file
@@ -0,0 +1,123 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/rohm,bd9576-pmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD9576MUF and BD9573MUF Power Management Integrated Circuit bindings
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
|
||||
|
||||
description: |
|
||||
BD9576MUF and BD9573MUF are power management ICs primarily intended for
|
||||
powering the R-Car series processors.
|
||||
The IC provides 6 power outputs with configurable sequencing and safety
|
||||
monitoring. A watchdog logic with slow ping/windowed modes is also included.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rohm,bd9576
|
||||
- rohm,bd9573
|
||||
|
||||
reg:
|
||||
description:
|
||||
I2C slave address.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
rohm,vout1-en-low:
|
||||
description:
|
||||
BD9576 and BD9573 VOUT1 regulator enable state can be individually
|
||||
controlled by a GPIO. This is dictated by state of vout1-en pin during
|
||||
the PMIC startup. If vout1-en is LOW during PMIC startup then the VOUT1
|
||||
enable sate is controlled via this pin. Set this property if vout1-en
|
||||
is wired to be down at PMIC start-up.
|
||||
type: boolean
|
||||
|
||||
rohm,vout1-en-gpios:
|
||||
description:
|
||||
GPIO specifier to specify the GPIO connected to vout1-en for vout1 ON/OFF
|
||||
state control.
|
||||
maxItems: 1
|
||||
|
||||
rohm,ddr-sel-low:
|
||||
description:
|
||||
The BD9576 and BD9573 output voltage for DDR can be selected by setting
|
||||
the ddr-sel pin low or high. Set this property if ddr-sel is grounded.
|
||||
type: boolean
|
||||
|
||||
rohm,watchdog-enable-gpios:
|
||||
description: The GPIO line used to enable the watchdog.
|
||||
maxItems: 1
|
||||
|
||||
rohm,watchdog-ping-gpios:
|
||||
description: The GPIO line used to ping the watchdog.
|
||||
maxItems: 1
|
||||
|
||||
rohm,hw-timeout-ms:
|
||||
maxItems: 2
|
||||
description:
|
||||
Watchog timeout in milliseconds. If single value is given it is
|
||||
the maximum timeout. Eg. if pinging watchdog is not done within this time
|
||||
limit the watchdog will be triggered. If two values are given watchdog
|
||||
is configured in "window mode". Then first value is limit for short-ping
|
||||
Eg. if watchdog is pinged sooner than that the watchdog will trigger.
|
||||
When two values is given the second value is the maximum timeout.
|
||||
# (HW) minimum for short timeout is 2ms, maximum 220 ms.
|
||||
# (HW) minimum for max timeout is 4ms, maximum 4416 ms.
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/rohm,bd9576-regulator.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@30 {
|
||||
compatible = "rohm,bd9576";
|
||||
reg = <0x30>;
|
||||
rohm,vout1-en-low;
|
||||
rohm,vout1-en-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
|
||||
rohm,ddr-sel-low;
|
||||
rohm,watchdog-enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
|
||||
rohm,watchdog-ping-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
|
||||
rohm,hw-timeout-ms = <150>, <2300>;
|
||||
|
||||
regulators {
|
||||
boost1: regulator-vd50 {
|
||||
regulator-name = "VD50";
|
||||
};
|
||||
buck1: regulator-vd18 {
|
||||
regulator-name = "VD18";
|
||||
};
|
||||
buck2: regulator-vdddr {
|
||||
regulator-name = "VDDDR";
|
||||
};
|
||||
buck3: regulator-vd10 {
|
||||
regulator-name = "VD10";
|
||||
};
|
||||
ldo: regulator-voutl1 {
|
||||
regulator-name = "VOUTL1";
|
||||
};
|
||||
sw: regulator-vouts1 {
|
||||
regulator-name = "VOUTS1";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
117
bindings/mfd/samsung,exynos5433-lpass.yaml
Normal file
117
bindings/mfd/samsung,exynos5433-lpass.yaml
Normal file
@@ -0,0 +1,117 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/samsung,exynos5433-lpass.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Samsung Exynos SoC Low Power Audio Subsystem (LPASS)
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
- Sylwester Nawrocki <s.nawrocki@samsung.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: samsung,exynos5433-lpass
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: sfr0_ctrl
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
reg:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
"^dma-controller@[0-9a-f]+$":
|
||||
$ref: /schemas/dma/arm,pl330.yaml
|
||||
|
||||
"^i2s@[0-9a-f]+$":
|
||||
$ref: /schemas/sound/samsung-i2s.yaml
|
||||
|
||||
"^serial@[0-9a-f]+$":
|
||||
$ref: /schemas/serial/samsung_uart.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#address-cells'
|
||||
- clocks
|
||||
- clock-names
|
||||
- ranges
|
||||
- reg
|
||||
- '#size-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/exynos5433.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
audio-subsystem@11400000 {
|
||||
compatible = "samsung,exynos5433-lpass";
|
||||
reg = <0x11400000 0x100>, <0x11500000 0x08>;
|
||||
clocks = <&cmu_aud CLK_PCLK_SFR0_CTRL>;
|
||||
clock-names = "sfr0_ctrl";
|
||||
power-domains = <&pd_aud>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
dma-controller@11420000 {
|
||||
compatible = "arm,pl330", "arm,primecell";
|
||||
reg = <0x11420000 0x1000>;
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cmu_aud CLK_ACLK_DMAC>;
|
||||
clock-names = "apb_pclk";
|
||||
#dma-cells = <1>;
|
||||
dma-channels = <8>;
|
||||
dma-requests = <32>;
|
||||
power-domains = <&pd_aud>;
|
||||
};
|
||||
|
||||
i2s@11440000 {
|
||||
compatible = "samsung,exynos7-i2s";
|
||||
reg = <0x11440000 0x100>;
|
||||
dmas = <&adma 0>, <&adma 2>;
|
||||
dma-names = "tx", "rx";
|
||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&cmu_aud CLK_PCLK_AUD_I2S>,
|
||||
<&cmu_aud CLK_SCLK_AUD_I2S>,
|
||||
<&cmu_aud CLK_SCLK_I2S_BCLK>;
|
||||
clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
|
||||
#clock-cells = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s0_bus>;
|
||||
power-domains = <&pd_aud>;
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
|
||||
serial@11460000 {
|
||||
compatible = "samsung,exynos5433-uart";
|
||||
reg = <0x11460000 0x100>;
|
||||
interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cmu_aud CLK_PCLK_AUD_UART>,
|
||||
<&cmu_aud CLK_SCLK_AUD_UART>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart_aud_bus>;
|
||||
power-domains = <&pd_aud>;
|
||||
};
|
||||
};
|
91
bindings/mfd/samsung,s2mpa01.yaml
Normal file
91
bindings/mfd/samsung,s2mpa01.yaml
Normal file
@@ -0,0 +1,91 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/samsung,s2mpa01.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Samsung S2MPA01 Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |
|
||||
This is a part of device tree bindings for S2M and S5M family of Power
|
||||
Management IC (PMIC).
|
||||
|
||||
The Samsung S2MPA01 is a Power Management IC which includes voltage
|
||||
and current regulators, RTC, clock outputs and other sub-blocks.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: samsung,s2mpa01-pmic
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
regulators:
|
||||
$ref: ../regulator/samsung,s2mpa01.yaml
|
||||
description:
|
||||
List of child nodes that specify the regulators.
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@66 {
|
||||
compatible = "samsung,s2mpa01-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ALIVE";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDDQ_MMC2";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
// ...
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
|
||||
// ...
|
||||
};
|
||||
};
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user