xref: /linux/Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml (revision 1260ed77798502de9c98020040d2995008de10cc)
1131a975aSStanislav Jakubek# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2131a975aSStanislav Jakubek%YAML 1.2
3131a975aSStanislav Jakubek---
4131a975aSStanislav Jakubek$id: http://devicetree.org/schemas/mfd/sprd,sc2731.yaml#
5131a975aSStanislav Jakubek$schema: http://devicetree.org/meta-schemas/core.yaml#
6131a975aSStanislav Jakubek
7131a975aSStanislav Jakubektitle: Spreadtrum SC27xx PMIC
8131a975aSStanislav Jakubek
9131a975aSStanislav Jakubekmaintainers:
10131a975aSStanislav Jakubek  - Orson Zhai <orsonzhai@gmail.com>
11131a975aSStanislav Jakubek  - Baolin Wang <baolin.wang7@gmail.com>
12131a975aSStanislav Jakubek  - Chunyan Zhang <zhang.lyra@gmail.com>
13131a975aSStanislav Jakubek
14131a975aSStanislav Jakubekdescription: |
15131a975aSStanislav Jakubek  Spreadtrum PMICs belonging to the SC27xx series integrate all mobile handset
16131a975aSStanislav Jakubek  power management, audio codec, battery management and user interface support
17131a975aSStanislav Jakubek  functions in a single chip. They have 6 major functional blocks:
18131a975aSStanislav Jakubek    - DCDCs to support CPU, memory
19131a975aSStanislav Jakubek    - LDOs to support both internal and external requirements
20131a975aSStanislav Jakubek    - Battery management system, such as charger, fuel gauge
21131a975aSStanislav Jakubek    - Audio codec
22131a975aSStanislav Jakubek    - User interface functions, such as indicator, flash LED and so on
23131a975aSStanislav Jakubek    - IC level interface, such as power on/off control, RTC, typec and so on
24131a975aSStanislav Jakubek
25131a975aSStanislav Jakubekproperties:
26131a975aSStanislav Jakubek  $nodename:
27131a975aSStanislav Jakubek    pattern: '^pmic@[0-9a-f]+$'
28131a975aSStanislav Jakubek
29131a975aSStanislav Jakubek  compatible:
30131a975aSStanislav Jakubek    enum:
31131a975aSStanislav Jakubek      - sprd,sc2720
32131a975aSStanislav Jakubek      - sprd,sc2721
33131a975aSStanislav Jakubek      - sprd,sc2723
34131a975aSStanislav Jakubek      - sprd,sc2730
35131a975aSStanislav Jakubek      - sprd,sc2731
36131a975aSStanislav Jakubek
37131a975aSStanislav Jakubek  reg:
38131a975aSStanislav Jakubek    maxItems: 1
39131a975aSStanislav Jakubek
40131a975aSStanislav Jakubek  interrupts:
41131a975aSStanislav Jakubek    maxItems: 1
42131a975aSStanislav Jakubek
43131a975aSStanislav Jakubek  interrupt-controller: true
44131a975aSStanislav Jakubek  spi-max-frequency: true
45131a975aSStanislav Jakubek
46131a975aSStanislav Jakubek  '#address-cells':
47131a975aSStanislav Jakubek    const: 1
48131a975aSStanislav Jakubek
49131a975aSStanislav Jakubek  '#interrupt-cells':
50131a975aSStanislav Jakubek    const: 1
51131a975aSStanislav Jakubek
52131a975aSStanislav Jakubek  '#size-cells':
53131a975aSStanislav Jakubek    const: 0
54131a975aSStanislav Jakubek
55131a975aSStanislav Jakubek  regulators:
56131a975aSStanislav Jakubek    type: object
57131a975aSStanislav Jakubek    $ref: /schemas/regulator/sprd,sc2731-regulator.yaml#
58131a975aSStanislav Jakubek
59131a975aSStanislav JakubekpatternProperties:
60131a975aSStanislav Jakubek  "^adc@[0-9a-f]+$":
61131a975aSStanislav Jakubek    type: object
62131a975aSStanislav Jakubek    $ref: /schemas/iio/adc/sprd,sc2720-adc.yaml#
63131a975aSStanislav Jakubek
64131a975aSStanislav Jakubek  "^charger@[0-9a-f]+$":
65131a975aSStanislav Jakubek    type: object
66131a975aSStanislav Jakubek    $ref: /schemas/power/supply/sc2731-charger.yaml#
67131a975aSStanislav Jakubek
68131a975aSStanislav Jakubek  "^efuse@[0-9a-f]+$":
69131a975aSStanislav Jakubek    type: object
70*81b82147SStanislav Jakubek    $ref: /schemas/nvmem/sprd,sc2731-efuse.yaml#
71131a975aSStanislav Jakubek
72131a975aSStanislav Jakubek  "^fuel-gauge@[0-9a-f]+$":
73131a975aSStanislav Jakubek    type: object
74131a975aSStanislav Jakubek    $ref: /schemas/power/supply/sc27xx-fg.yaml#
75131a975aSStanislav Jakubek
76131a975aSStanislav Jakubek  "^gpio@[0-9a-f]+$":
77131a975aSStanislav Jakubek    type: object
78131a975aSStanislav Jakubek    $ref: /schemas/gpio/sprd,gpio-eic.yaml#
79131a975aSStanislav Jakubek
80131a975aSStanislav Jakubek  "^led-controller@[0-9a-f]+$":
81131a975aSStanislav Jakubek    type: object
82131a975aSStanislav Jakubek    $ref: /schemas/leds/sprd,sc2731-bltc.yaml#
83131a975aSStanislav Jakubek
84131a975aSStanislav Jakubek  "^rtc@[0-9a-f]+$":
85131a975aSStanislav Jakubek    type: object
86131a975aSStanislav Jakubek    $ref: /schemas/rtc/sprd,sc2731-rtc.yaml#
87131a975aSStanislav Jakubek
88131a975aSStanislav Jakubek  "^vibrator@[0-9a-f]+$":
89131a975aSStanislav Jakubek    type: object
90131a975aSStanislav Jakubek    $ref: /schemas/input/sprd,sc27xx-vibrator.yaml#
91131a975aSStanislav Jakubek
92131a975aSStanislav Jakubekrequired:
93131a975aSStanislav Jakubek  - compatible
94131a975aSStanislav Jakubek  - reg
95131a975aSStanislav Jakubek  - interrupts
96131a975aSStanislav Jakubek  - interrupt-controller
97131a975aSStanislav Jakubek  - spi-max-frequency
98131a975aSStanislav Jakubek  - '#address-cells'
99131a975aSStanislav Jakubek  - '#interrupt-cells'
100131a975aSStanislav Jakubek  - '#size-cells'
101131a975aSStanislav Jakubek
102131a975aSStanislav JakubekadditionalProperties: false
103131a975aSStanislav Jakubek
104131a975aSStanislav Jakubekexamples:
105131a975aSStanislav Jakubek  - |
106131a975aSStanislav Jakubek    #include <dt-bindings/gpio/gpio.h>
107131a975aSStanislav Jakubek    #include <dt-bindings/interrupt-controller/arm-gic.h>
108131a975aSStanislav Jakubek    #include <dt-bindings/interrupt-controller/irq.h>
109131a975aSStanislav Jakubek    #include <dt-bindings/leds/common.h>
110131a975aSStanislav Jakubek
111131a975aSStanislav Jakubek    spi {
112131a975aSStanislav Jakubek      #address-cells = <1>;
113131a975aSStanislav Jakubek      #size-cells = <0>;
114131a975aSStanislav Jakubek
115131a975aSStanislav Jakubek      sc2731_pmic: pmic@0 {
116131a975aSStanislav Jakubek        compatible = "sprd,sc2731";
117131a975aSStanislav Jakubek        reg = <0>;
118131a975aSStanislav Jakubek        interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
119131a975aSStanislav Jakubek        interrupt-controller;
120131a975aSStanislav Jakubek        spi-max-frequency = <26000000>;
121131a975aSStanislav Jakubek        #address-cells = <1>;
122131a975aSStanislav Jakubek        #interrupt-cells = <1>;
123131a975aSStanislav Jakubek        #size-cells = <0>;
124131a975aSStanislav Jakubek
125131a975aSStanislav Jakubek        charger@0 {
126131a975aSStanislav Jakubek          compatible = "sprd,sc2731-charger";
127131a975aSStanislav Jakubek          reg = <0x0>;
128131a975aSStanislav Jakubek          phys = <&ssphy>;
129131a975aSStanislav Jakubek          monitored-battery = <&bat>;
130131a975aSStanislav Jakubek        };
131131a975aSStanislav Jakubek
132131a975aSStanislav Jakubek        led-controller@200 {
133131a975aSStanislav Jakubek          compatible = "sprd,sc2731-bltc";
134131a975aSStanislav Jakubek          reg = <0x200>;
135131a975aSStanislav Jakubek          #address-cells = <1>;
136131a975aSStanislav Jakubek          #size-cells = <0>;
137131a975aSStanislav Jakubek
138131a975aSStanislav Jakubek          led@0 {
139131a975aSStanislav Jakubek            reg = <0x0>;
140131a975aSStanislav Jakubek            color = <LED_COLOR_ID_RED>;
141131a975aSStanislav Jakubek          };
142131a975aSStanislav Jakubek
143131a975aSStanislav Jakubek          led@1 {
144131a975aSStanislav Jakubek            reg = <0x1>;
145131a975aSStanislav Jakubek            color = <LED_COLOR_ID_GREEN>;
146131a975aSStanislav Jakubek          };
147131a975aSStanislav Jakubek
148131a975aSStanislav Jakubek          led@2 {
149131a975aSStanislav Jakubek            reg = <0x2>;
150131a975aSStanislav Jakubek            color = <LED_COLOR_ID_BLUE>;
151131a975aSStanislav Jakubek          };
152131a975aSStanislav Jakubek        };
153131a975aSStanislav Jakubek
154131a975aSStanislav Jakubek        rtc@280 {
155131a975aSStanislav Jakubek          compatible = "sprd,sc2731-rtc";
156131a975aSStanislav Jakubek          reg = <0x280>;
157131a975aSStanislav Jakubek          interrupt-parent = <&sc2731_pmic>;
158131a975aSStanislav Jakubek          interrupts = <2>;
159131a975aSStanislav Jakubek        };
160131a975aSStanislav Jakubek
161131a975aSStanislav Jakubek        pmic_eic: gpio@300 {
162131a975aSStanislav Jakubek          compatible = "sprd,sc2731-eic";
163131a975aSStanislav Jakubek          reg = <0x300>;
164131a975aSStanislav Jakubek          interrupt-parent = <&sc2731_pmic>;
165131a975aSStanislav Jakubek          interrupts = <5>;
166131a975aSStanislav Jakubek          gpio-controller;
167131a975aSStanislav Jakubek          #gpio-cells = <2>;
168131a975aSStanislav Jakubek          interrupt-controller;
169131a975aSStanislav Jakubek          #interrupt-cells = <2>;
170131a975aSStanislav Jakubek        };
171131a975aSStanislav Jakubek
172131a975aSStanislav Jakubek        efuse@380 {
173131a975aSStanislav Jakubek          compatible = "sprd,sc2731-efuse";
174131a975aSStanislav Jakubek          reg = <0x380>;
175131a975aSStanislav Jakubek          hwlocks = <&hwlock 12>;
176131a975aSStanislav Jakubek          #address-cells = <1>;
177131a975aSStanislav Jakubek          #size-cells = <1>;
178131a975aSStanislav Jakubek
179131a975aSStanislav Jakubek          /* Data cells */
180131a975aSStanislav Jakubek          fgu_calib: calib@6 {
181131a975aSStanislav Jakubek            reg = <0x6 0x2>;
182131a975aSStanislav Jakubek            bits = <0 9>;
183131a975aSStanislav Jakubek          };
184131a975aSStanislav Jakubek
185131a975aSStanislav Jakubek          adc_big_scale: calib@24 {
186131a975aSStanislav Jakubek            reg = <0x24 0x2>;
187131a975aSStanislav Jakubek          };
188131a975aSStanislav Jakubek
189131a975aSStanislav Jakubek          adc_small_scale: calib@26 {
190131a975aSStanislav Jakubek            reg = <0x26 0x2>;
191131a975aSStanislav Jakubek          };
192131a975aSStanislav Jakubek        };
193131a975aSStanislav Jakubek
194*81b82147SStanislav Jakubek        pmic_adc: adc@480 {
195131a975aSStanislav Jakubek          compatible = "sprd,sc2731-adc";
196131a975aSStanislav Jakubek          reg = <0x480>;
197131a975aSStanislav Jakubek          interrupt-parent = <&sc2731_pmic>;
198131a975aSStanislav Jakubek          interrupts = <0>;
199131a975aSStanislav Jakubek          #io-channel-cells = <1>;
200131a975aSStanislav Jakubek          hwlocks = <&hwlock 4>;
201131a975aSStanislav Jakubek          nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
202131a975aSStanislav Jakubek          nvmem-cell-names = "big_scale_calib", "small_scale_calib";
203131a975aSStanislav Jakubek        };
204131a975aSStanislav Jakubek
205131a975aSStanislav Jakubek        fuel-gauge@a00 {
206131a975aSStanislav Jakubek          compatible = "sprd,sc2731-fgu";
207131a975aSStanislav Jakubek          reg = <0xa00>;
208131a975aSStanislav Jakubek          battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
209131a975aSStanislav Jakubek          interrupt-parent = <&sc2731_pmic>;
210131a975aSStanislav Jakubek          interrupts = <4>;
211131a975aSStanislav Jakubek          io-channels = <&pmic_adc 5>, <&pmic_adc 14>;
212131a975aSStanislav Jakubek          io-channel-names = "bat-temp", "charge-vol";
213131a975aSStanislav Jakubek          nvmem-cells = <&fgu_calib>;
214131a975aSStanislav Jakubek          nvmem-cell-names = "fgu_calib";
215131a975aSStanislav Jakubek          monitored-battery = <&bat>;
216131a975aSStanislav Jakubek          sprd,calib-resistance-micro-ohms = <21500>;
217131a975aSStanislav Jakubek        };
218131a975aSStanislav Jakubek
219131a975aSStanislav Jakubek        vibrator@ec8 {
220131a975aSStanislav Jakubek          compatible = "sprd,sc2731-vibrator";
221131a975aSStanislav Jakubek          reg = <0xec8>;
222131a975aSStanislav Jakubek        };
223131a975aSStanislav Jakubek
224131a975aSStanislav Jakubek        regulators {
225131a975aSStanislav Jakubek          compatible = "sprd,sc2731-regulator";
226131a975aSStanislav Jakubek
227131a975aSStanislav Jakubek          BUCK_CPU0 {
228131a975aSStanislav Jakubek            regulator-name = "vddarm0";
229131a975aSStanislav Jakubek            regulator-min-microvolt = <400000>;
230131a975aSStanislav Jakubek            regulator-max-microvolt = <1996875>;
231131a975aSStanislav Jakubek            regulator-ramp-delay = <25000>;
232131a975aSStanislav Jakubek            regulator-always-on;
233131a975aSStanislav Jakubek          };
234131a975aSStanislav Jakubek
235131a975aSStanislav Jakubek          LDO_CAMA0 {
236131a975aSStanislav Jakubek            regulator-name = "vddcama0";
237131a975aSStanislav Jakubek            regulator-min-microvolt = <1200000>;
238131a975aSStanislav Jakubek            regulator-max-microvolt = <3750000>;
239131a975aSStanislav Jakubek            regulator-enable-ramp-delay = <100>;
240131a975aSStanislav Jakubek          };
241131a975aSStanislav Jakubek        };
242131a975aSStanislav Jakubek      };
243131a975aSStanislav Jakubek    };
244131a975aSStanislav Jakubek...
245