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