diff options
Diffstat (limited to 'include/linux/pinctrl/pinconf-generic.h')
-rw-r--r-- | include/linux/pinctrl/pinconf-generic.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h index 6aa238096622..bf7e989abcb5 100644 --- a/include/linux/pinctrl/pinconf-generic.h +++ b/include/linux/pinctrl/pinconf-generic.h | |||
@@ -29,12 +29,25 @@ | |||
29 | * if for example some other pin is going to drive the signal connected | 29 | * if for example some other pin is going to drive the signal connected |
30 | * to it for a while. Pins used for input are usually always high | 30 | * to it for a while. Pins used for input are usually always high |
31 | * impedance. | 31 | * impedance. |
32 | * @PIN_CONFIG_BIAS_BUS_HOLD: the pin will be set to weakly latch so that it | ||
33 | * weakly drives the last value on a tristate bus, also known as a "bus | ||
34 | * holder", "bus keeper" or "repeater". This allows another device on the | ||
35 | * bus to change the value by driving the bus high or low and switching to | ||
36 | * tristate. The argument is ignored. | ||
32 | * @PIN_CONFIG_BIAS_PULL_UP: the pin will be pulled up (usually with high | 37 | * @PIN_CONFIG_BIAS_PULL_UP: the pin will be pulled up (usually with high |
33 | * impedance to VDD). If the argument is != 0 pull-up is enabled, | 38 | * impedance to VDD). If the argument is != 0 pull-up is enabled, |
34 | * if it is 0, pull-up is disabled. | 39 | * if it is 0, pull-up is total, i.e. the pin is connected to VDD. |
35 | * @PIN_CONFIG_BIAS_PULL_DOWN: the pin will be pulled down (usually with high | 40 | * @PIN_CONFIG_BIAS_PULL_DOWN: the pin will be pulled down (usually with high |
36 | * impedance to GROUND). If the argument is != 0 pull-down is enabled, | 41 | * impedance to GROUND). If the argument is != 0 pull-down is enabled, |
37 | * if it is 0, pull-down is disabled. | 42 | * if it is 0, pull-down is total, i.e. the pin is connected to GROUND. |
43 | * @PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: the pin will be pulled up or down based | ||
44 | * on embedded knowledge of the controller hardware, like current mux | ||
45 | * function. The pull direction and possibly strength too will normally | ||
46 | * be decided completely inside the hardware block and not be readable | ||
47 | * from the kernel side. | ||
48 | * If the argument is != 0 pull up/down is enabled, if it is 0, the | ||
49 | * configuration is ignored. The proper way to disable it is to use | ||
50 | * @PIN_CONFIG_BIAS_DISABLE. | ||
38 | * @PIN_CONFIG_DRIVE_PUSH_PULL: the pin will be driven actively high and | 51 | * @PIN_CONFIG_DRIVE_PUSH_PULL: the pin will be driven actively high and |
39 | * low, this is the most typical case and is typically achieved with two | 52 | * low, this is the most typical case and is typically achieved with two |
40 | * active transistors on the output. Setting this config will enable | 53 | * active transistors on the output. Setting this config will enable |
@@ -57,14 +70,14 @@ | |||
57 | * setting pins to this mode. | 70 | * setting pins to this mode. |
58 | * @PIN_CONFIG_INPUT_DEBOUNCE: this will configure the pin to debounce mode, | 71 | * @PIN_CONFIG_INPUT_DEBOUNCE: this will configure the pin to debounce mode, |
59 | * which means it will wait for signals to settle when reading inputs. The | 72 | * which means it will wait for signals to settle when reading inputs. The |
60 | * argument gives the debounce time on a custom format. Setting the | 73 | * argument gives the debounce time in usecs. Setting the |
61 | * argument to zero turns debouncing off. | 74 | * argument to zero turns debouncing off. |
62 | * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power | 75 | * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power |
63 | * supplies, the argument to this parameter (on a custom format) tells | 76 | * supplies, the argument to this parameter (on a custom format) tells |
64 | * the driver which alternative power source to use. | 77 | * the driver which alternative power source to use. |
65 | * @PIN_CONFIG_SLEW_RATE: if the pin can select slew rate, the argument to | 78 | * @PIN_CONFIG_SLEW_RATE: if the pin can select slew rate, the argument to |
66 | * this parameter (on a custom format) tells the driver which alternative | 79 | * this parameter (on a custom format) tells the driver which alternative |
67 | * slew rate to use. | 80 | * slew rate to use. |
68 | * @PIN_CONFIG_LOW_POWER_MODE: this will configure the pin for low power | 81 | * @PIN_CONFIG_LOW_POWER_MODE: this will configure the pin for low power |
69 | * operation, if several modes of operation are supported these can be | 82 | * operation, if several modes of operation are supported these can be |
70 | * passed in the argument on a custom form, else just use argument 1 | 83 | * passed in the argument on a custom form, else just use argument 1 |
@@ -78,8 +91,10 @@ | |||
78 | enum pin_config_param { | 91 | enum pin_config_param { |
79 | PIN_CONFIG_BIAS_DISABLE, | 92 | PIN_CONFIG_BIAS_DISABLE, |
80 | PIN_CONFIG_BIAS_HIGH_IMPEDANCE, | 93 | PIN_CONFIG_BIAS_HIGH_IMPEDANCE, |
94 | PIN_CONFIG_BIAS_BUS_HOLD, | ||
81 | PIN_CONFIG_BIAS_PULL_UP, | 95 | PIN_CONFIG_BIAS_PULL_UP, |
82 | PIN_CONFIG_BIAS_PULL_DOWN, | 96 | PIN_CONFIG_BIAS_PULL_DOWN, |
97 | PIN_CONFIG_BIAS_PULL_PIN_DEFAULT, | ||
83 | PIN_CONFIG_DRIVE_PUSH_PULL, | 98 | PIN_CONFIG_DRIVE_PUSH_PULL, |
84 | PIN_CONFIG_DRIVE_OPEN_DRAIN, | 99 | PIN_CONFIG_DRIVE_OPEN_DRAIN, |
85 | PIN_CONFIG_DRIVE_OPEN_SOURCE, | 100 | PIN_CONFIG_DRIVE_OPEN_SOURCE, |