[tps65185] a first draft for the devicetree binding scheme of the
tps65185 pmic
This commit is contained in:
parent
a7dc651a5e
commit
7283f58dd4
1 changed files with 228 additions and 0 deletions
228
Documentation/devicetree/bindings/regulator/tps65185.yaml
Normal file
228
Documentation/devicetree/bindings/regulator/tps65185.yaml
Normal file
|
@ -0,0 +1,228 @@
|
|||
# make dt_binding_check DT_SCHEMA_FILES=tps65185.yaml
|
||||
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/regulator/tps65185.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: TPS65185x PMIC for E-Paper displays
|
||||
|
||||
maintainers:
|
||||
- ??? <???@???.??>
|
||||
|
||||
description: |
|
||||
The TPS65185x is a power management IC (PMIC) for EPD displays, providing
|
||||
positive and negative driving rails for EPD displays, as well as a
|
||||
bias voltage (VCOM) line and a separate 3.3 V output. The IC is controlled
|
||||
via I2C.
|
||||
|
||||
allOf:
|
||||
- $ref: "regulator.yaml#"
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,tps65185
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#io-channel-cells':
|
||||
const: 1
|
||||
|
||||
powerup-gpios:
|
||||
description: GPIO to control the vdrive supply
|
||||
maxItems: 1
|
||||
|
||||
pwr_good-gpios:
|
||||
description: GPIO indicating vdrive supply state
|
||||
maxItems: 1
|
||||
|
||||
vcom_ctrl-gpios:
|
||||
description: GPIO to control VCOM voltage output
|
||||
maxItems: 1
|
||||
|
||||
vin-supply:
|
||||
description: Input supply phandle for vin input
|
||||
|
||||
vin3p3-supply:
|
||||
description: Input supply phandle for 3.3 Volt input
|
||||
|
||||
wakeup-gpios:
|
||||
description: GPIO to wake up the device from sleep
|
||||
maxItems: 1
|
||||
|
||||
ti,up-sequence:
|
||||
description: Controls the activation order of the four rails
|
||||
grouped in the vdrive regulator (VDDH, VPOS, VEE, and VNEG)
|
||||
via the UPSEQ0 register.
|
||||
TODO how to document the four numbers and the possible 4 values?
|
||||
nr 1 VNEG 0 -> strobe1, 1 -> strobe2, 2 -> strobe3, 3 -> strobe 4
|
||||
nr 2 VEE 0 -> strobe1, 1 -> strobe2, 2 -> strobe3, 3 -> strobe 4
|
||||
nr 3 VPOS 0 -> strobe1, 1 -> strobe2, 2 -> strobe3, 3 -> strobe 4
|
||||
nr 4 VDDH 0 -> strobe1, 1 -> strobe2, 2 -> strobe3, 3 -> strobe 4
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-array"
|
||||
maxItems: 4
|
||||
|
||||
ti,up-delay-ms:
|
||||
description: vdrive activation delays for the four phases (strobes).
|
||||
possible delays are 3, 6, 9, 12 [ms]
|
||||
maxItems: 4
|
||||
|
||||
ti,down-sequence:
|
||||
description: TODO same as with up sequence
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-array"
|
||||
maxItems: 4
|
||||
|
||||
ti,down-delay-ms:
|
||||
description: TODO same as with up delays
|
||||
maxItems: 4
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
description: List of regulators and its properties
|
||||
|
||||
properties:
|
||||
"v3p3":
|
||||
type: object
|
||||
$ref: regulator.yaml#
|
||||
description:
|
||||
3.3 V output regulator
|
||||
TODO How do we include the requirement for the PineNote to always
|
||||
turn this on? Also, I think the driver at some locations assumes
|
||||
this regulator stays on.
|
||||
|
||||
properties:
|
||||
regulator-name: true
|
||||
regulator-always-on: true
|
||||
regulator-boot-on: true
|
||||
regulator-min-microvolt: true
|
||||
regulator-max-microvolt: true
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
- regulator-min-microvolt
|
||||
- regulator-max-microvolt
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
"vcom":
|
||||
type: object
|
||||
$ref: regulator.yaml#
|
||||
description:
|
||||
VCOM voltage (back-plane bias for the epd panel) output regulator,
|
||||
-5.11 V to 0 V. (The minus sign is dropped here to conform to the
|
||||
regulator framework).
|
||||
TODO Make sure to note that by default the vcom value should be read
|
||||
by the driver from the internal memory, but can also be specified
|
||||
here.
|
||||
|
||||
properties:
|
||||
regulator-name: true
|
||||
regulator-always-on: true
|
||||
regulator-boot-on: true
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
"vdrive":
|
||||
type: object
|
||||
$ref: regulator.yaml#
|
||||
description:
|
||||
Controls the power rails (VDDH, VPOS, VEE, and VNEG).
|
||||
|
||||
properties:
|
||||
regulator-name: true
|
||||
regulator-always-on: true
|
||||
# TODO: this should probably be false. It works, but should not be
|
||||
# the default as constantly driving vdrive can damage the epd
|
||||
# display
|
||||
regulator-boot-on: true
|
||||
# TODO: This is a virtual regulator in the sense that it groups four
|
||||
# different voltages whose voltages we do not have (direct) control
|
||||
# over. Are these values required?
|
||||
regulator-min-microvolt: true
|
||||
regulator-max-microvolt: true
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
- regulator-min-microvolt
|
||||
- regulator-max-microvolt
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- powerup-gpios
|
||||
- pwr_good-gpios
|
||||
- vcom_ctrl-gpios
|
||||
- vin-supply
|
||||
- vin3p3-supply
|
||||
- wakeup-gpios
|
||||
- ti,up-sequence
|
||||
- ti,up-delay-ms
|
||||
- ti,down-sequence
|
||||
- ti,down-delay-ms
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ebc_pmic: pmic@68 {
|
||||
compatible = "ti,tps65185";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
|
||||
#io-channel-cells = <1>;
|
||||
pinctrl-0 = <&ebc_pmic_pins>;
|
||||
pinctrl-names = "default";
|
||||
powerup-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
|
||||
pwr_good-gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
|
||||
vcom_ctrl-gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
|
||||
vin-supply = <&vcc_bat>;
|
||||
vin3p3-supply = <&vcc_3v3>;
|
||||
wakeup-gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
|
||||
ti,up-sequence = <1>, <0>, <2>, <3>;
|
||||
ti,up-delay-ms = <3>, <3>, <3>, <3>;
|
||||
ti,down-sequence = <2>, <3>, <1>, <0>;
|
||||
ti,down-delay-ms = <3>, <6>, <6>, <6>;
|
||||
|
||||
regulators {
|
||||
v3p3: v3p3 {
|
||||
regulator-name = "v3p3";
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vcom: vcom {
|
||||
regulator-name = "vcom";
|
||||
/* voltage range is board-specific */
|
||||
/* regulator-min-microvolt = <930000>; */
|
||||
/* regulator-max-microvolt = <930000>; */
|
||||
};
|
||||
|
||||
vdrive: vdrive {
|
||||
regulator-name = "vdrive";
|
||||
regulator-min-microvolt = <15000000>;
|
||||
regulator-max-microvolt = <15000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue