mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
dt-bindings: mfd: motorola-cpcap: Convert to DT schema
Convert devicetree bindings for the Motorola CPCAP MFD from TXT to YAML. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260721095654.429346-4-clamor95@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
811997a907
commit
ed7977e8ea
403
Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Normal file
403
Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Normal file
|
|
@ -0,0 +1,403 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/motorola,cpcap.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Motorola CPCAP PMIC MFD
|
||||
|
||||
maintainers:
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: motorola,cpcap
|
||||
- const: st,6556002
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 9600000
|
||||
|
||||
spi-cs-high: true
|
||||
spi-cpol: true
|
||||
spi-cpha: true
|
||||
|
||||
adc:
|
||||
$ref: /schemas/iio/adc/motorola,cpcap-adc.yaml#
|
||||
|
||||
audio-codec:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
interrupts:
|
||||
items:
|
||||
- description: headset detect interrupt
|
||||
- description: microphone bias 2 detect interrupt
|
||||
|
||||
interrupt-names:
|
||||
items:
|
||||
- const: hs
|
||||
- const: mb2
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 1
|
||||
|
||||
VAUDIO-supply:
|
||||
description:
|
||||
Codec power supply, usually VAUDIO regulator of CPCAP.
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
properties:
|
||||
port@0:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: port connected to the Stereo HiFi DAC
|
||||
|
||||
port@1:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: port connected to the Voice DAC
|
||||
|
||||
required:
|
||||
- port@0
|
||||
- port@1
|
||||
|
||||
required:
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
- "#sound-dai-cells"
|
||||
|
||||
battery:
|
||||
$ref: /schemas/power/supply/cpcap-battery.yaml#
|
||||
|
||||
charger:
|
||||
$ref: /schemas/power/supply/cpcap-charger.yaml#
|
||||
|
||||
key-power:
|
||||
$ref: /schemas/input/motorola,cpcap-pwrbutton.yaml#
|
||||
|
||||
phy:
|
||||
$ref: /schemas/phy/motorola,cpcap-usb-phy.yaml#
|
||||
|
||||
regulator:
|
||||
$ref: /schemas/regulator/motorola,cpcap-regulator.yaml#
|
||||
|
||||
rtc:
|
||||
$ref: /schemas/rtc/motorola,cpcap-rtc.yaml#
|
||||
|
||||
patternProperties:
|
||||
"^led(-[a-z]+)?$":
|
||||
$ref: /schemas/leds/motorola,cpcap-leds.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
- spi-max-frequency
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpcap: pmic@0 {
|
||||
compatible = "motorola,cpcap", "st,6556002";
|
||||
reg = <0>; /* cs0 */
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
spi-max-frequency = <3000000>;
|
||||
spi-cs-high;
|
||||
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
|
||||
cpcap_adc: adc {
|
||||
compatible = "motorola,cpcap-adc";
|
||||
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <8 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "adcdone";
|
||||
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
cpcap_audio: audio-codec {
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <9 IRQ_TYPE_NONE>, <10 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "hs", "mb2";
|
||||
|
||||
VAUDIO-supply = <&vdd_audio>;
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* HiFi */
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
cpcap_audio_codec0: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
/* Voice */
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
cpcap_audio_codec1: endpoint {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cpcap_battery: battery {
|
||||
compatible = "motorola,cpcap-battery";
|
||||
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <6 IRQ_TYPE_NONE>, <5 IRQ_TYPE_NONE>,
|
||||
<3 IRQ_TYPE_NONE>, <20 IRQ_TYPE_NONE>,
|
||||
<54 IRQ_TYPE_NONE>, <57 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "eol", "lowbph", "lowbpl",
|
||||
"chrgcurr1", "battdetb", "cccal";
|
||||
|
||||
io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
|
||||
<&cpcap_adc 5>, <&cpcap_adc 6>;
|
||||
io-channel-names = "battdetb", "battp",
|
||||
"chg_isense", "batti";
|
||||
power-supplies = <&cpcap_charger>;
|
||||
};
|
||||
|
||||
cpcap_charger: charger {
|
||||
compatible = "motorola,mapphone-cpcap-charger";
|
||||
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <13 IRQ_TYPE_NONE>, <12 IRQ_TYPE_NONE>,
|
||||
<29 IRQ_TYPE_NONE>, <28 IRQ_TYPE_NONE>,
|
||||
<22 IRQ_TYPE_NONE>, <21 IRQ_TYPE_NONE>,
|
||||
<20 IRQ_TYPE_NONE>, <19 IRQ_TYPE_NONE>,
|
||||
<54 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "chrg_det", "rvrs_chrg", "chrg_se1b",
|
||||
"se0conn", "rvrs_mode", "chrgcurr2",
|
||||
"chrgcurr1", "vbusvld", "battdetb";
|
||||
|
||||
mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>,
|
||||
<&gpio3 23 GPIO_ACTIVE_LOW>;
|
||||
|
||||
io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
|
||||
<&cpcap_adc 2>, <&cpcap_adc 5>,
|
||||
<&cpcap_adc 6>;
|
||||
io-channel-names = "battdetb", "battp",
|
||||
"vbus", "chg_isense",
|
||||
"batti";
|
||||
};
|
||||
|
||||
key-power {
|
||||
compatible = "motorola,cpcap-pwrbutton";
|
||||
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <23 IRQ_TYPE_NONE>;
|
||||
};
|
||||
|
||||
led-red {
|
||||
compatible = "motorola,cpcap-led-red";
|
||||
vdd-supply = <&vdd_led>;
|
||||
label = "status-led::red";
|
||||
};
|
||||
|
||||
led-green {
|
||||
compatible = "motorola,cpcap-led-green";
|
||||
vdd-supply = <&vdd_led>;
|
||||
label = "status-led::green";
|
||||
};
|
||||
|
||||
led-blue {
|
||||
compatible = "motorola,cpcap-led-blue";
|
||||
vdd-supply = <&vdd_led>;
|
||||
label = "status-led::blue";
|
||||
};
|
||||
|
||||
cpcap_usb2_phy: phy {
|
||||
compatible = "motorola,cpcap-usb-phy";
|
||||
|
||||
pinctrl-0 = <&usb_gpio_mux_sel1>, <&usb_gpio_mux_sel2>;
|
||||
pinctrl-1 = <&usb_ulpi_pins>;
|
||||
pinctrl-2 = <&usb_utmi_pins>;
|
||||
pinctrl-3 = <&uart3_pins>;
|
||||
pinctrl-names = "default", "ulpi", "utmi", "uart";
|
||||
#phy-cells = <0>;
|
||||
|
||||
interrupts-extended =
|
||||
<&cpcap 15 IRQ_TYPE_NONE>, <&cpcap 14 IRQ_TYPE_NONE>,
|
||||
<&cpcap 28 IRQ_TYPE_NONE>, <&cpcap 19 IRQ_TYPE_NONE>,
|
||||
<&cpcap 18 IRQ_TYPE_NONE>, <&cpcap 17 IRQ_TYPE_NONE>,
|
||||
<&cpcap 16 IRQ_TYPE_NONE>, <&cpcap 49 IRQ_TYPE_NONE>,
|
||||
<&cpcap 48 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "id_ground", "id_float", "se0conn",
|
||||
"vbusvld", "sessvld", "sessend",
|
||||
"se1", "dm", "dp";
|
||||
|
||||
mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>;
|
||||
io-channel-names = "vbus", "id";
|
||||
|
||||
vusb-supply = <&avdd_usb>;
|
||||
};
|
||||
|
||||
regulator {
|
||||
compatible = "motorola,cpcap-regulator";
|
||||
|
||||
regulators {
|
||||
vdd_cpu: SW1 {
|
||||
regulator-name = "vdd_cpu";
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1125000>;
|
||||
regulator-enable-ramp-delay = <1500>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_core: SW2 {
|
||||
regulator-name = "vdd_core";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-enable-ramp-delay = <1500>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_1v8_vio: SW3 {
|
||||
regulator-name = "vdd_1v8_vio";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-enable-ramp-delay = <0>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_aon: SW4 {
|
||||
regulator-name = "vdd_aon";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-enable-ramp-delay = <1500>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_led: SW5 {
|
||||
regulator-name = "vdd_led";
|
||||
regulator-min-microvolt = <5050000>;
|
||||
regulator-max-microvolt = <5050000>;
|
||||
regulator-enable-ramp-delay = <1500>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_hvio: VHVIO {
|
||||
regulator-name = "vdd_hvio";
|
||||
regulator-min-microvolt = <2775000>;
|
||||
regulator-max-microvolt = <2775000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
};
|
||||
|
||||
vcore_emmc: VSDIO {
|
||||
regulator-name = "vcore_emmc";
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
avdd_dsi_csi: VCSI {
|
||||
regulator-name = "avdd_dsi_csi";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
avdd_3v3_periph: VWLAN2 {
|
||||
regulator-name = "avdd_3v3_periph";
|
||||
regulator-min-microvolt = <2775000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vddio_usd: VSIMCARD {
|
||||
regulator-name = "vddio_usd";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <2900000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_haptic: VVIB {
|
||||
regulator-name = "vdd_haptic";
|
||||
regulator-min-microvolt = <1300000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
};
|
||||
|
||||
avdd_usb: VUSB {
|
||||
regulator-name = "avdd_usb";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_audio: VAUDIO {
|
||||
regulator-name = "vdd_audio";
|
||||
regulator-min-microvolt = <2775000>;
|
||||
regulator-max-microvolt = <2775000>;
|
||||
regulator-enable-ramp-delay = <1000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cpcap_rtc: rtc {
|
||||
compatible = "motorola,cpcap-rtc";
|
||||
|
||||
interrupt-parent = <&cpcap>;
|
||||
interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
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/motorola,cpcap-usb-phy.yaml
|
||||
- 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>;
|
||||
- interrupts : should contain jack detection interrupts, with headset
|
||||
detect interrupt matching "hs" and microphone bias 2
|
||||
detect interrupt matching "mb2" in interrupt-names.
|
||||
- interrupt-names : Contains "hs", "mb2"
|
||||
|
||||
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>;
|
||||
interrupts-extended = <&cpcap 9 0>, <&cpcap 10 0>;
|
||||
interrupt-names = "hs", "mb2";
|
||||
|
||||
/* HiFi */
|
||||
port@0 {
|
||||
endpoint {
|
||||
remote-endpoint = <&cpu_dai1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Voice */
|
||||
port@1 {
|
||||
endpoint {
|
||||
remote-endpoint = <&cpu_dai2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user