forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kern…
…el/git/linusw/linux-pinctrl Pull pin control updates from Linus Walleij: "This is the bulk of pin control changes for the v4.8 kernel cycle. Nothing stands out as especially exiting: new drivers, new subdrivers, lots of cleanups and incremental features. Business as usual. New drivers: - New driver for Oxnas pin control and GPIO. This ARM-based chipset is used in a few storage (NAS) type devices. - New driver for the MAX77620/MAX20024 pin controller portions. - New driver for the Intel Merrifield pin controller. New subdrivers: - New subdriver for the Qualcomm MDM9615 - New subdriver for the STM32F746 MCU - New subdriver for the Broadcom NSP SoC. Cleanups: - Demodularization of bool compiled-in drivers. Apart from this there is just regular incremental improvements to a lot of drivers, especially Uniphier and PFC" * tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (131 commits) pinctrl: fix pincontrol definition for marvell pinctrl: xway: fix typo Revert "pinctrl: amd: make it explicitly non-modular" pinctrl: iproc: Add NSP and Stingray GPIO support pinctrl: Update iProc GPIO DT bindings pinctrl: bcm: add OF dependencies pinctrl: ns2: remove redundant dev_err call in ns2_pinmux_probe() pinctrl: Add STM32F746 MCU support pinctrl: intel: Protect set wake flow by spin lock pinctrl: nsp: remove redundant dev_err call in nsp_pinmux_probe() pinctrl: uniphier: add Ethernet pin-mux settings sh-pfc: Use PTR_ERR_OR_ZERO() to simplify the code pinctrl: ns2: fix return value check in ns2_pinmux_probe() pinctrl: qcom: update DT bindings with ebi2 groups pinctrl: qcom: establish proper EBI2 pin groups pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro Documentation: dt: Add new compatible to STM32 pinctrl driver bindings includes: dt-bindings: Add STM32F746 pinctrl DT bindings pinctrl: sunxi: fix nand0 function name for sun8i pinctrl: uniphier: remove pointless pin-mux settings for PH1-LD11 ...
- Loading branch information
Showing
119 changed files
with
12,550 additions
and
2,698 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
* Oxford Semiconductor OXNAS SoC GPIO Controller | ||
|
||
Please refer to gpio.txt for generic information regarding GPIO bindings. | ||
|
||
Required properties: | ||
- compatible: "oxsemi,ox810se-gpio" | ||
- reg: Base address and length for the device. | ||
- interrupts: The port interrupt shared by all pins. | ||
- gpio-controller: Marks the port as GPIO controller. | ||
- #gpio-cells: Two. The first cell is the pin number and | ||
the second cell is used to specify the gpio polarity as defined in | ||
defined in <dt-bindings/gpio/gpio.h>: | ||
0 = GPIO_ACTIVE_HIGH | ||
1 = GPIO_ACTIVE_LOW | ||
- interrupt-controller: Marks the device node as an interrupt controller. | ||
- #interrupt-cells: Two. The first cell is the GPIO number and second cell | ||
is used to specify the trigger type as defined in | ||
<dt-bindings/interrupt-controller/irq.h>: | ||
IRQ_TYPE_EDGE_RISING | ||
IRQ_TYPE_EDGE_FALLING | ||
IRQ_TYPE_EDGE_BOTH | ||
- gpio-ranges: Interaction with the PINCTRL subsystem, it also specifies the | ||
gpio base and count, should be in the format of numeric-gpio-range as | ||
specified in the gpio.txt file. | ||
|
||
Example: | ||
|
||
gpio0: gpio@0 { | ||
compatible = "oxsemi,ox810se-gpio"; | ||
reg = <0x000000 0x100000>; | ||
interrupts = <21>; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
gpio-ranges = <&pinctrl 0 0 32>; | ||
}; | ||
|
||
keys { | ||
... | ||
|
||
button-esc { | ||
label = "ESC"; | ||
linux,code = <1>; | ||
gpios = <&gpio0 12 0>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
79 changes: 79 additions & 0 deletions
79
Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
Broadcom NSP (Northstar plus) IOMUX Controller | ||
|
||
The NSP IOMUX controller supports group based mux configuration. In | ||
addition, certain pins can be muxed to GPIO function individually. | ||
|
||
Required properties: | ||
- compatible: | ||
Must be "brcm,nsp-pinmux" | ||
|
||
- reg: | ||
Should contain the register physical address and length for each of | ||
GPIO_CONTROL0, GP_AUX_SEL and IPROC_CONFIG IOMUX registers | ||
|
||
Properties in subnodes: | ||
- function: | ||
The mux function to select | ||
|
||
- groups: | ||
The list of groups to select with a given function | ||
|
||
For more details, refer to | ||
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | ||
|
||
For example: | ||
|
||
pinmux: pinmux@1803f1c0 { | ||
compatible = "brcm,nsp-pinmux"; | ||
reg = <0x1803f1c0 0x04>, | ||
<0x18030028 0x04>, | ||
<0x1803f408 0x04>; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pwm &gpio_b &nand_sel>; | ||
|
||
pwm: pwm { | ||
function = "pwm"; | ||
groups = "pwm0_grp", "pwm1_grp"; | ||
}; | ||
|
||
gpio_b: gpio_b { | ||
function = "gpio_b"; | ||
groups = "gpio_b_0_grp", "gpio_b_1_grp"; | ||
}; | ||
|
||
nand_sel: nand_sel { | ||
function = "nand"; | ||
groups = "nand_grp"; | ||
}; | ||
}; | ||
|
||
List of supported functions and groups in Northstar Plus: | ||
|
||
"spi": "spi_grp" | ||
|
||
"i2c": "i2c_grp" | ||
|
||
"mdio": "mdio_grp" | ||
|
||
"pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp" | ||
|
||
"gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp" | ||
|
||
"uart1": "uart1_grp" | ||
|
||
"uart2": "uart2_grp" | ||
|
||
"synce": "synce_grp" | ||
|
||
"sata_led_grps": "sata0_led_grp", "sata1_led_grp" | ||
|
||
"xtal_out": "xtal_out_grp" | ||
|
||
"sdio": "sdio_pwr_grp", "sdio_1p8v_grp" | ||
|
||
"switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp" | ||
|
||
"nand": "nand_grp" | ||
|
||
"emmc": "emmc_grp" |
57 changes: 57 additions & 0 deletions
57
Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
* Oxford Semiconductor OXNAS SoC Family Pin Controller | ||
|
||
Please refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and | ||
../interrupt-controller/interrupts.txt for generic information regarding | ||
pin controller, GPIO, and interrupt bindings. | ||
|
||
OXNAS 'pin configuration node' is a node of a group of pins which can be | ||
used for a specific device or function. This node represents configurations of | ||
pins, optional function, and optional mux related configuration. | ||
|
||
Required properties for pin controller node: | ||
- compatible: "oxsemi,ox810se-pinctrl" | ||
- oxsemi,sys-ctrl: a phandle to the system controller syscon node | ||
|
||
Required properties for pin configuration sub-nodes: | ||
- pins: List of pins to which the configuration applies. | ||
|
||
Optional properties for pin configuration sub-nodes: | ||
---------------------------------------------------- | ||
- function: Mux function for the specified pins. | ||
- bias-pull-up: Enable weak pull-up. | ||
|
||
Example: | ||
|
||
pinctrl: pinctrl { | ||
compatible = "oxsemi,ox810se-pinctrl"; | ||
|
||
/* Regmap for sys registers */ | ||
oxsemi,sys-ctrl = <&sys>; | ||
|
||
pinctrl_uart2: pinctrl_uart2 { | ||
uart2a { | ||
pins = "gpio31"; | ||
function = "fct3"; | ||
}; | ||
uart2b { | ||
pins = "gpio32"; | ||
function = "fct3"; | ||
}; | ||
}; | ||
}; | ||
|
||
uart2: serial@900000 { | ||
compatible = "ns16550a"; | ||
reg = <0x900000 0x100000>; | ||
clocks = <&sysclk>; | ||
interrupts = <29>; | ||
reg-shift = <0>; | ||
fifo-size = <16>; | ||
reg-io-width = <1>; | ||
current-speed = <115200>; | ||
no-loopback-test; | ||
status = "disabled"; | ||
resets = <&reset 22>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pinctrl_uart2>; | ||
}; |
127 changes: 127 additions & 0 deletions
127
Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
Pincontrol driver for MAX77620 Power management IC from Maxim Semiconductor. | ||
|
||
Device has 8 GPIO pins which can be configured as GPIO as well as the | ||
special IO functions. | ||
|
||
Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt> | ||
for details of the common pinctrl bindings used by client devices, | ||
including the meaning of the phrase "pin configuration node". | ||
|
||
Optional Pinmux properties: | ||
-------------------------- | ||
Following properties are required if default setting of pins are required | ||
at boot. | ||
- pinctrl-names: A pinctrl state named per <pinctrl-binding.txt>. | ||
- pinctrl[0...n]: Properties to contain the phandle for pinctrl states per | ||
<pinctrl-binding.txt>. | ||
|
||
The pin configurations are defined as child of the pinctrl states node. Each | ||
sub-node have following properties: | ||
|
||
Required properties: | ||
------------------ | ||
- pins: List of pins. Valid values of pins properties are: | ||
gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7. | ||
|
||
Optional properties: | ||
------------------- | ||
Following are optional properties defined as pinmux DT binding document | ||
<pinctrl-bindings.txt>. Absence of properties will leave the configuration | ||
on default. | ||
function, | ||
drive-push-pull, | ||
drive-open-drain, | ||
bias-pull-up, | ||
bias-pull-down. | ||
|
||
Valid values for function properties are: | ||
gpio, lpm-control-in, fps-out, 32k-out, sd0-dvs-in, sd1-dvs-in, | ||
reference-out | ||
|
||
Theres is also customised properties for the GPIO1, GPIO2 and GPIO3. These | ||
customised properties are required to configure FPS configuration parameters | ||
of these GPIOs. Please refer <devicetree/bindings/mfd/max77620.txt> for more | ||
detail of Flexible Power Sequence (FPS). | ||
|
||
- maxim,active-fps-source: FPS source for the GPIOs to get | ||
enabled/disabled when system is in | ||
active state. Valid values are: | ||
- MAX77620_FPS_SRC_0, | ||
FPS source is FPS0. | ||
- MAX77620_FPS_SRC_1, | ||
FPS source is FPS1 | ||
- MAX77620_FPS_SRC_2 and | ||
FPS source is FPS2 | ||
- MAX77620_FPS_SRC_NONE. | ||
GPIO is not controlled | ||
by FPS events and it gets | ||
enabled/disabled by register | ||
access. | ||
Absence of this property will leave | ||
the FPS configuration register for that | ||
GPIO to default configuration. | ||
|
||
- maxim,active-fps-power-up-slot: Sequencing event slot number on which | ||
the GPIO get enabled when | ||
master FPS input event set to HIGH. | ||
Valid values are 0 to 7. | ||
This is applicable if FPS source is | ||
selected as FPS0, FPS1 or FPS2. | ||
|
||
- maxim,active-fps-power-down-slot: Sequencing event slot number on which | ||
the GPIO get disabled when master | ||
FPS input event set to LOW. | ||
Valid values are 0 to 7. | ||
This is applicable if FPS source is | ||
selected as FPS0, FPS1 or FPS2. | ||
|
||
- maxim,suspend-fps-source: This is same as property | ||
"maxim,active-fps-source" but value | ||
get configured when system enters in | ||
to suspend state. | ||
|
||
- maxim,suspend-fps-power-up-slot: This is same as property | ||
"maxim,active-fps-power-up-slot" but | ||
this value get configured into FPS | ||
configuration register when system | ||
enters into suspend. | ||
This is applicable if suspend state | ||
FPS source is selected as FPS0, FPS1 or | ||
|
||
- maxim,suspend-fps-power-down-slot: This is same as property | ||
"maxim,active-fps-power-down-slot" but | ||
this value get configured into FPS | ||
configuration register when system | ||
enters into suspend. | ||
This is applicable if suspend state | ||
FPS source is selected as FPS0, FPS1 or | ||
FPS2. | ||
|
||
Example: | ||
-------- | ||
#include <dt-bindings/mfd/max77620.h> | ||
... | ||
max77620@3c { | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&spmic_default>; | ||
|
||
spmic_default: pinmux@0 { | ||
pin_gpio0 { | ||
pins = "gpio0"; | ||
function = "gpio"; | ||
}; | ||
|
||
pin_gpio1 { | ||
pins = "gpio1"; | ||
function = "fps-out"; | ||
maxim,active-fps-source = <MAX77620_FPS_SRC_0>; | ||
}; | ||
|
||
pin_gpio2 { | ||
pins = "gpio2"; | ||
function = "fps-out"; | ||
maxim,active-fps-source = <MAX77620_FPS_SRC_1>; | ||
}; | ||
}; | ||
}; |
Oops, something went wrong.