summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio_oxnas.txt47
-rw-r--r--Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt18
-rw-r--r--Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt79
-rw-r--r--Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt57
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt127
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt152
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt5
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt1
-rw-r--r--Documentation/pinctrl.txt24
-rw-r--r--drivers/pinctrl/Kconfig26
-rw-r--r--drivers/pinctrl/Makefile4
-rw-r--r--drivers/pinctrl/bcm/Kconfig15
-rw-r--r--drivers/pinctrl/bcm/Makefile1
-rw-r--r--drivers/pinctrl/bcm/pinctrl-iproc-gpio.c118
-rw-r--r--drivers/pinctrl/bcm/pinctrl-ns2-mux.c12
-rw-r--r--drivers/pinctrl/bcm/pinctrl-nsp-gpio.c6
-rw-r--r--drivers/pinctrl/bcm/pinctrl-nsp-mux.c642
-rw-r--r--drivers/pinctrl/core.c25
-rw-r--r--drivers/pinctrl/core.h2
-rw-r--r--drivers/pinctrl/devicetree.c7
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.c29
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1-core.c3
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx21.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx23.c17
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx25.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx27.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx28.c17
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx35.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx50.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx51.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx53.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6dl.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6q.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6sl.c15
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6sx.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6ul.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx7d.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-mxs.c12
-rw-r--r--drivers/pinctrl/freescale/pinctrl-mxs.h1
-rw-r--r--drivers/pinctrl/freescale/pinctrl-vf610.c10
-rw-r--r--drivers/pinctrl/intel/Kconfig11
-rw-r--r--drivers/pinctrl/intel/Makefile1
-rw-r--r--drivers/pinctrl/intel/pinctrl-baytrail.c25
-rw-r--r--drivers/pinctrl/intel/pinctrl-broxton.c43
-rw-r--r--drivers/pinctrl/intel/pinctrl-cherryview.c155
-rw-r--r--drivers/pinctrl/intel/pinctrl-intel.c52
-rw-r--r--drivers/pinctrl/intel/pinctrl-merrifield.c911
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-mtk-common.c4
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson-gxbb.c163
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-kirkwood.c85
-rw-r--r--drivers/pinctrl/nomadik/pinctrl-nomadik.c96
-rw-r--r--drivers/pinctrl/pinconf-generic.c22
-rw-r--r--drivers/pinctrl/pinconf.c8
-rw-r--r--drivers/pinctrl/pinctrl-at91-pio4.c26
-rw-r--r--drivers/pinctrl/pinctrl-at91.c13
-rw-r--r--drivers/pinctrl/pinctrl-digicolor.c16
-rw-r--r--drivers/pinctrl/pinctrl-lpc18xx.c20
-rw-r--r--drivers/pinctrl/pinctrl-max77620.c673
-rw-r--r--drivers/pinctrl/pinctrl-oxnas.c846
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c4
-rw-r--r--drivers/pinctrl/pinctrl-st.c2
-rw-r--r--drivers/pinctrl/pinctrl-u300.c2
-rw-r--r--drivers/pinctrl/pinctrl-xway.c72
-rw-r--r--drivers/pinctrl/pinctrl-zynq.c13
-rw-r--r--drivers/pinctrl/pinmux.c16
-rw-r--r--drivers/pinctrl/qcom/Kconfig8
-rw-r--r--drivers/pinctrl/qcom/Makefile1
-rw-r--r--drivers/pinctrl/qcom/pinctrl-mdm9615.c483
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm.c6
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm8660.c114
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm8x74.c43
-rw-r--r--drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c1
-rw-r--r--drivers/pinctrl/samsung/pinctrl-exynos5440.c1
-rw-r--r--drivers/pinctrl/samsung/pinctrl-samsung.c1
-rw-r--r--drivers/pinctrl/sh-pfc/core.c10
-rw-r--r--drivers/pinctrl/sh-pfc/core.h58
-rw-r--r--drivers/pinctrl/sh-pfc/gpio.c13
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a73a4.c1
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7740.c1
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7778.c2
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7790.c59
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7791.c1
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7795.c327
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7757.c1
-rw-r--r--drivers/pinctrl/sh-pfc/pinctrl.c46
-rw-r--r--drivers/pinctrl/sh-pfc/sh_pfc.h55
-rw-r--r--drivers/pinctrl/sirf/pinctrl-atlas7.c4
-rw-r--r--drivers/pinctrl/stm32/Kconfig6
-rw-r--r--drivers/pinctrl/stm32/Makefile1
-rw-r--r--drivers/pinctrl/stm32/pinctrl-stm32.c31
-rw-r--r--drivers/pinctrl/stm32/pinctrl-stm32f746.c1681
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c6
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c6
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c6
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.c8
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.h6
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra114.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra124.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra20.c6
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra210.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra30.c4
-rw-r--r--drivers/pinctrl/uniphier/Kconfig20
-rw-r--r--drivers/pinctrl/uniphier/Makefile2
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-core.c298
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c952
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c1050
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c494
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c609
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c819
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c653
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c603
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c455
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier.h59
-rw-r--r--include/dt-bindings/pinctrl/stm32f746-pinfunc.h1324
-rw-r--r--include/linux/pinctrl/pinconf-generic.h2
119 files changed, 12550 insertions, 2698 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt b/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt
new file mode 100644
index 000000000000..928ed4f43907
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt
@@ -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>;
+ };
+};
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt b/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt
index e4277921f3e3..a73cbeb0f309 100644
--- a/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt
@@ -3,8 +3,22 @@ Broadcom iProc GPIO/PINCONF Controller
Required properties:
- compatible:
- Must be "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio",
- "brcm,cygnus-crmu-gpio" or "brcm,iproc-gpio"
+ "brcm,iproc-gpio" for the generic iProc based GPIO controller IP that
+ supports full-featured pinctrl and GPIO functions used in various iProc
+ based SoCs
+
+ May contain an SoC-specific compatibility string to accommodate any
+ SoC-specific features
+
+ "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio", or
+ "brcm,cygnus-crmu-gpio" for Cygnus SoCs
+
+ "brcm,iproc-nsp-gpio" for the iProc NSP SoC that has drive strength support
+ disabled
+
+ "brcm,iproc-stingray-gpio" for the iProc Stingray SoC that has the general
+ pinctrl support completely disabled in this IP block. In Stingray, a
+ different IP block is used to handle pinctrl related functions
- reg:
Define the base and range of the I/O address space that contains SoC
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt
new file mode 100644
index 000000000000..603564e5fe6f
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt
@@ -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