Merge tag 'leds_for_4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszews...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / pinctrl / sprd,sc9860-pinctrl.txt
1 * Spreadtrum SC9860 Pin Controller
2
3 Please refer to sprd,pinctrl.txt in this directory for common binding part
4 and usage.
5
6 Required properties:
7 - compatible: Must be "sprd,sc9860-pinctrl".
8 - reg: The register address of pin controller device.
9 - pins : An array of strings, each string containing the name of a pin.
10
11 Optional properties:
12 - function: A string containing the name of the function, values must be
13   one of: "func1", "func2", "func3" and "func4".
14 - drive-strength: Drive strength in mA. Supported values: 2, 4, 6, 8, 10,
15   12, 14, 16, 20, 21, 24, 25, 27, 29, 31 and 33.
16 - input-schmitt-disable: Enable schmitt-trigger mode.
17 - input-schmitt-enable: Disable schmitt-trigger mode.
18 - bias-disable: Disable pin bias.
19 - bias-pull-down: Pull down on pin.
20 - bias-pull-up: Pull up on pin. Supported values: 20000 for pull-up resistor
21   is 20K and 4700 for pull-up resistor is 4.7K.
22 - input-enable: Enable pin input.
23 - input-disable: Enable pin output.
24 - output-high: Set the pin as an output level high.
25 - output-low: Set the pin as an output level low.
26 - sleep-hardware-state: Indicate these configs in this state are sleep related.
27 - sprd,control: Control values referring to databook for global control pins.
28 - sprd,sleep-mode: Choose the pin sleep mode, and supported values are:
29   AP_SLEEP, PUBCP_SLEEP, TGLDSP_SLEEP and AGDSP_SLEEP.
30
31 Pin sleep mode definition:
32 enum pin_sleep_mode {
33         AP_SLEEP = BIT(0),
34         PUBCP_SLEEP = BIT(1),
35         TGLDSP_SLEEP = BIT(2),
36         AGDSP_SLEEP = BIT(3),
37 };
38
39 Example:
40 pin_controller: pinctrl@402a0000 {
41         compatible = "sprd,sc9860-pinctrl";
42         reg = <0x402a0000 0x10000>;
43
44         grp1: sd0 {
45                 pins = "SC9860_VIO_SD2_IRTE", "SC9860_VIO_SD0_IRTE";
46                 sprd,control = <0x1>;
47         };
48
49         grp2: rfctl_33 {
50                 pins = "SC9860_RFCTL33";
51                 function = "func2";
52                 sprd,sleep-mode = <AP_SLEEP | PUBCP_SLEEP>;
53                 grp2_sleep_mode: rfctl_33_sleep {
54                         pins = "SC9860_RFCTL33";
55                         sleep-hardware-state;
56                         output-low;
57                 }
58         };
59
60         grp3: rfctl_misc_20 {
61                 pins = "SC9860_RFCTL20_MISC";
62                 drive-strength = <10>;
63                 bias-pull-up = <4700>;
64                 grp3_sleep_mode: rfctl_misc_sleep {
65                         pins = "SC9860_RFCTL20_MISC";
66                         sleep-hardware-state;
67                         bias-pull-up;
68                 }
69         };
70 };