Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1Motorola CPCAP PMIC device tree binding
2
3Required properties:
4- compatible : One or both of "motorola,cpcap" or "ste,6556002"
5- reg : SPI chip select
6- interrupts : The interrupt line the device is connected to
7- interrupt-controller : Marks the device node as an interrupt controller
8- #interrupt-cells : The number of cells to describe an IRQ, should be 2
9- #address-cells : Child device offset number of cells, should be 1
10- #size-cells : Child device size number of cells, should be 0
11- spi-max-frequency : Typically set to 3000000
12- spi-cs-high : SPI chip select direction
13
14Optional subnodes:
15
16The sub-functions of CPCAP get their own node with their own compatible values,
17which are described in the following files:
18
19- Documentation/devicetree/bindings/power/supply/cpcap-battery.yaml
20- Documentation/devicetree/bindings/power/supply/cpcap-charger.yaml
21- Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
22- Documentation/devicetree/bindings/phy/motorola,cpcap-usb-phy.yaml
23- Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
24- Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
25- Documentation/devicetree/bindings/leds/leds-cpcap.txt
26- Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
27
28The only exception is the audio codec. Instead of a compatible value its
29node must be named "audio-codec".
30
31Required properties for the audio-codec subnode:
32
33- #sound-dai-cells = <1>;
34- interrupts : should contain jack detection interrupts, with headset
35 detect interrupt matching "hs" and microphone bias 2
36 detect interrupt matching "mb2" in interrupt-names.
37- interrupt-names : Contains "hs", "mb2"
38
39The audio-codec provides two DAIs. The first one is connected to the
40Stereo HiFi DAC and the second one is connected to the Voice DAC.
41
42Example:
43
44&mcspi1 {
45 cpcap: pmic@0 {
46 compatible = "motorola,cpcap", "ste,6556002";
47 reg = <0>; /* cs0 */
48 interrupt-parent = <&gpio1>;
49 interrupts = <7 IRQ_TYPE_EDGE_RISING>;
50 interrupt-controller;
51 #interrupt-cells = <2>;
52 #address-cells = <1>;
53 #size-cells = <0>;
54 spi-max-frequency = <3000000>;
55 spi-cs-high;
56
57 audio-codec {
58 #sound-dai-cells = <1>;
59 interrupts-extended = <&cpcap 9 0>, <&cpcap 10 0>;
60 interrupt-names = "hs", "mb2";
61
62 /* HiFi */
63 port@0 {
64 endpoint {
65 remote-endpoint = <&cpu_dai1>;
66 };
67 };
68
69 /* Voice */
70 port@1 {
71 endpoint {
72 remote-endpoint = <&cpu_dai2>;
73 };
74 };
75 };
76 };
77};
78