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