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