hc
2023-02-14 0cc9b7c44253c93447ddf73e206fbdbb3d9f16b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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:
 
- ../power/supply/cpcap-battery.txt
- ../power/supply/cpcap-charger.txt
- ../regulator/cpcap-regulator.txt
- ../phy/phy-cpcap-usb.txt
- ../input/cpcap-pwrbutton.txt
- ../rtc/cpcap-rtc.txt
- ../leds/leds-cpcap.txt
- ../iio/adc/cpcap-adc.txt
 
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>;
               };
           };
       };
   };
};