Kernel-4.18.0-80.el8_sprd,sc9860-pinctrl

  • Spreadtrum SC9860 Pin Controller

Please refer to sprd,pinctrl.txt in this directory for common binding part
and usage.

Required properties:

  • compatible: Must be “sprd,sc9860-pinctrl”.
  • reg: The register address of pin controller device.
  • pins : An array of strings, each string containing the name of a pin.

Optional properties:

  • function: A string containing the name of the function, values must be
    one of: “func1”, “func2”, “func3” and “func4”.
  • drive-strength: Drive strength in mA. Supported values: 2, 4, 6, 8, 10,
    12, 14, 16, 20, 21, 24, 25, 27, 29, 31 and 33.
  • input-schmitt-disable: Enable schmitt-trigger mode.
  • input-schmitt-enable: Disable schmitt-trigger mode.
  • bias-disable: Disable pin bias.
  • bias-pull-down: Pull down on pin.
  • bias-pull-up: Pull up on pin. Supported values: 20000 for pull-up resistor
    is 20K and 4700 for pull-up resistor is 4.7K.
  • input-enable: Enable pin input.
  • input-disable: Enable pin output.
  • output-high: Set the pin as an output level high.
  • output-low: Set the pin as an output level low.
  • sleep-hardware-state: Indicate these configs in this state are sleep related.
  • sprd,control: Control values referring to databook for global control pins.
  • sprd,sleep-mode: Choose the pin sleep mode, and supported values are:
    AP_SLEEP, PUBCP_SLEEP, TGLDSP_SLEEP and AGDSP_SLEEP.

Pin sleep mode definition:
enum pin_sleep_mode {
AP_SLEEP = BIT(0),
PUBCP_SLEEP = BIT(1),
TGLDSP_SLEEP = BIT(2),
AGDSP_SLEEP = BIT(3),
};

Example:
pin_controller: pinctrl@402a0000 {
compatible = “sprd,sc9860-pinctrl”;
reg = <0x402a0000 0x10000>;

grp1: sd0 {
    pins = "SC9860_VIO_SD2_IRTE", "SC9860_VIO_SD0_IRTE";
    sprd,control = <0x1>;
};

grp2: rfctl_33 {
    pins = "SC9860_RFCTL33";
    function = "func2";
    sprd,sleep-mode = <AP_SLEEP | PUBCP_SLEEP>;
    grp2_sleep_mode: rfctl_33_sleep {
        pins = "SC9860_RFCTL33";
        sleep-hardware-state;
        output-low;
    }
};

grp3: rfctl_misc_20 {
    pins = "SC9860_RFCTL20_MISC";
    drive-strength = <10>;
    bias-pull-up = <4700>;
    grp3_sleep_mode: rfctl_misc_sleep {
        pins = "SC9860_RFCTL20_MISC";
        sleep-hardware-state;
        bias-pull-up;
    }
};

};