-
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.1-1' of git://git.kernel.org/pub/scm/linux/kern…
…el/git/linusw/linux-pinctrl Pull pincontrol updates from Linus Walleij: "This is the bulk of pin control changes for the v4.1 development cycle. Nothing really exciting this time: we basically added a few new drivers and subdrivers and stabilized them in linux-next. Some cleanups too. With sunrisepoint Intel has a real fine fully featured pin control driver for contemporary hardware, and the AMD driver is also for large deployments. Most of the others are ARM devices. New drivers: - Intel Sunrisepoint - AMD KERNCZ GPIO - Broadcom Cygnus IOMUX New subdrivers: - Marvell MVEBU Armada 39x SoCs - Samsung Exynos 5433 - nVidia Tegra 210 - Mediatek MT8135 - Mediatek MT8173 - AMLogic Meson8b - Qualcomm PM8916 On top of this cleanups and development history for the above drivers as issues were fixed after merging" * tag 'pinctrl-v4.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (71 commits) pinctrl: sirf: move sgpio lock into state container pinctrl: Add support for PM8916 GPIO's and MPP's pinctrl: bcm2835: Fix support for threaded level triggered IRQs sh-pfc: r8a7790: add EtherAVB pin groups pinctrl: Document "function" + "pins" pinmux binding pinctrl: intel: Add Intel Sunrisepoint pin controller and GPIO support pinctrl: fsl: imx: Check for 0 config register pinctrl: Add support for Meson8b documentation: Extend pinctrl docs for Meson8b pinctrl: Cleanup Meson8 driver Fix inconsistent spinlock of AMD GPIO driver which can be recognized by static analysis tool smatch. Declare constant Variables with Sparse's suggestion. pinctrl: at91: convert __raw to endian agnostic IO pinctrl: constify of_device_id array pinctrl: pinconf-generic: add dt node names to error messages pinctrl: pinconf-generic: scan also referenced phandle node pinctrl: mvebu: add suspend/resume support to Armada XP pinctrl driver pinctrl: st: Display pin's function when printing pinctrl debug information pinctrl: st: Show correct pin direction also in GPIO mode pinctrl: st: Supply a GPIO get_direction() call-back pinctrl: st: Move st_get_pio_control() further up the source file ...
- Loading branch information
Showing
96 changed files
with
15,323 additions
and
957 deletions.
There are no files selected for viewing
98 changes: 98 additions & 0 deletions
98
Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.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,98 @@ | ||
Broadcom Cygnus GPIO/PINCONF Controller | ||
|
||
Required properties: | ||
|
||
- compatible: | ||
Must be "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio", or | ||
"brcm,cygnus-crmu-gpio" | ||
|
||
- reg: | ||
Define the base and range of the I/O address space that contains the Cygnus | ||
GPIO/PINCONF controller registers | ||
|
||
- #gpio-cells: | ||
Must be two. The first cell is the GPIO pin number (within the | ||
controller's pin space) and the second cell is used for the following: | ||
bit[0]: polarity (0 for active high and 1 for active low) | ||
|
||
- gpio-controller: | ||
Specifies that the node is a GPIO controller | ||
|
||
Optional properties: | ||
|
||
- interrupts: | ||
Interrupt ID | ||
|
||
- interrupt-controller: | ||
Specifies that the node is an interrupt controller | ||
|
||
- pinmux: | ||
Specifies the phandle to the IOMUX device, where pins can be individually | ||
muxed to GPIO | ||
|
||
Supported generic PINCONF properties in child nodes: | ||
|
||
- pins: | ||
The list of pins (within the controller's own pin space) that properties | ||
in the node apply to. Pin names are "gpio-<pin>" | ||
|
||
- bias-disable: | ||
Disable pin bias | ||
|
||
- bias-pull-up: | ||
Enable internal pull up resistor | ||
|
||
- bias-pull-down: | ||
Enable internal pull down resistor | ||
|
||
- drive-strength: | ||
Valid drive strength values include 2, 4, 6, 8, 10, 12, 14, 16 (mA) | ||
|
||
Example: | ||
gpio_ccm: gpio@1800a000 { | ||
compatible = "brcm,cygnus-ccm-gpio"; | ||
reg = <0x1800a000 0x50>, | ||
<0x0301d164 0x20>; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | ||
interrupt-controller; | ||
|
||
touch_pins: touch_pins { | ||
pwr: pwr { | ||
pins = "gpio-0"; | ||
drive-strength = <16>; | ||
}; | ||
|
||
event: event { | ||
pins = "gpio-1"; | ||
bias-pull-up; | ||
}; | ||
}; | ||
}; | ||
|
||
gpio_asiu: gpio@180a5000 { | ||
compatible = "brcm,cygnus-asiu-gpio"; | ||
reg = <0x180a5000 0x668>; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; | ||
interrupt-controller; | ||
}; | ||
|
||
/* | ||
* Touchscreen that uses the CCM GPIO 0 and 1 | ||
*/ | ||
tsc { | ||
... | ||
... | ||
gpio-pwr = <&gpio_ccm 0 0>; | ||
gpio-event = <&gpio_ccm 1 0>; | ||
}; | ||
|
||
/* Bluetooth that uses the ASIU GPIO 5, with polarity inverted */ | ||
bluetooth { | ||
... | ||
... | ||
bcm,rfkill-bank-sel = <&gpio_asiu 5 1> | ||
} |
132 changes: 132 additions & 0 deletions
132
Documentation/devicetree/bindings/pinctrl/brcm,cygnus-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,132 @@ | ||
Broadcom Cygnus IOMUX Controller | ||
|
||
The Cygnus IOMUX controller supports group based mux configuration. In | ||
addition, certain pins can be muxed to GPIO function individually. | ||
|
||
Required properties: | ||
|
||
- compatible: | ||
Must be "brcm,cygnus-pinmux" | ||
|
||
- reg: | ||
Define the base and range of the I/O address space that contains the Cygnus | ||
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@0x0301d0c8 { | ||
compatible = "brcm,cygnus-pinmux"; | ||
reg = <0x0301d0c8 0x1b0>; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&i2s0_default>; | ||
|
||
i2s0_default: i2s0_default { | ||
mux { | ||
function = "i2s0"; | ||
groups = "i2s0_0_grp", "i2s0_1_grp"; | ||
}; | ||
}; | ||
}; | ||
|
||
List of supported functions and groups in Cygnus: | ||
|
||
"i2s0": "i2s0_0_grp", "i2s0_1_grp" | ||
|
||
"i2s1": "i2s1_0_grp", "i2s1_1_grp" | ||
|
||
"i2s2": "i2s2_0_grp", "i2s2_1_grp", "i2s2_2_grp", "i2s2_3_grp", "i2s2_4_grp" | ||
|
||
"spdif": "spdif_grp" | ||
|
||
"pwm0": "pwm0_grp" | ||
|
||
"pwm1": "pwm1_grp" | ||
|
||
"pwm2": "pwm2_grp" | ||
|
||
"pwm3": "pwm3_grp" | ||
|
||
"pwm4": "pwm4_grp" | ||
|
||
"pwm5": "pwm5_grp" | ||
|
||
"key": "key0_grp", "key1_grp", "key2_grp", "key3_grp", "key4_grp", "key5_grp", | ||
"key6_grp", "key7_grp", "key8_grp", "key9_grp", "key10_grp", "key11_grp", | ||
"key12_grp", "key13_grp", "key14_grp", "key15_grp" | ||
|
||
"audio_dte": "audio_dte0_grp", "audio_dte1_grp", "audio_dte2_grp", "audio_dte3_grp" | ||
|
||
"smart_card0": "smart_card0_grp", "smart_card0_fcb_grp" | ||
|
||
"smart_card1": "smart_card1_grp", "smart_card1_fcb_grp" | ||
|
||
"spi0": "spi0_grp" | ||
|
||
"spi1": "spi1_grp" | ||
|
||
"spi2": "spi2_grp" | ||
|
||
"spi3": "spi3_grp" | ||
|
||
"spi4": "spi4_0_grp", "spi4_1_grp" | ||
|
||
"spi5": "spi5_grp" | ||
|
||
"sw_led0": "sw_led0_0_grp", "sw_led0_1_grp" | ||
|
||
"sw_led1": "sw_led1_grp" | ||
|
||
"sw_led2": "sw_led2_0_grp", "sw_led2_1_grp" | ||
|
||
"d1w": "d1w_grp" | ||
|
||
"lcd": "lcd_grp" | ||
|
||
"sram": "sram_0_grp", "sram_1_grp" | ||
|
||
"uart0": "uart0_grp" | ||
|
||
"uart1": "uart1_grp", "uart1_dte_grp" | ||
|
||
"uart2": "uart2_grp" | ||
|
||
"uart3": "uart3_grp" | ||
|
||
"uart4": "uart4_grp" | ||
|
||
"qspi": "qspi_0_grp", "qspi_1_grp" | ||
|
||
"nand": "nand_grp" | ||
|
||
"sdio0": "sdio0_grp", "sdio0_cd_grp", "sdio0_mmc_grp" | ||
|
||
"sdio1": "sdio1_data_0_grp", "sdio1_data_1_grp", "sdio1_cd_grp", | ||
"sdio1_led_grp", "sdio1_mmc_grp" | ||
|
||
"can0": "can0_grp" | ||
|
||
"can1": "can1_grp" | ||
|
||
"cam": "cam_led_grp", "cam_0_grp", "cam_1_grp" | ||
|
||
"bsc1": "bsc1_grp" | ||
|
||
"pcie_clkreq": "pcie_clkreq_grp" | ||
|
||
"usb0_oc": "usb0_oc_grp" | ||
|
||
"usb1_oc": "usb1_oc_grp" | ||
|
||
"usb2_oc": "usb2_oc_grp" |
78 changes: 78 additions & 0 deletions
78
Documentation/devicetree/bindings/pinctrl/marvell,armada-39x-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,78 @@ | ||
* Marvell Armada 39x SoC pinctrl driver for mpp | ||
|
||
Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding | ||
part and usage. | ||
|
||
Required properties: | ||
- compatible: "marvell,88f6920-pinctrl", "marvell,88f6928-pinctrl" | ||
depending on the specific variant of the SoC being used. | ||
- reg: register specifier of MPP registers | ||
|
||
Available mpp pins/groups and functions: | ||
Note: brackets (x) are not part of the mpp name for marvell,function and given | ||
only for more detailed description in this document. | ||
|
||
name pins functions | ||
================================================================================ | ||
mpp0 0 gpio, ua0(rxd) | ||
mpp1 1 gpio, ua0(txd) | ||
mpp2 2 gpio, i2c0(sck) | ||
mpp3 3 gpio, i2c0(sda) | ||
mpp4 4 gpio, ua1(txd), ua0(rts), smi(mdc) | ||
mpp5 5 gpio, ua1(rxd), ua0(cts), smi(mdio) | ||
mpp6 6 gpio, dev(cs3), xsmi(mdio) | ||
mpp7 7 gpio, dev(ad9), xsmi(mdc) | ||
mpp8 8 gpio, dev(ad10), ptp(trig) | ||
mpp9 9 gpio, dev(ad11), ptp(clk) | ||
mpp10 10 gpio, dev(ad12), ptp(event) | ||
mpp11 11 gpio, dev(ad13), led(clk) | ||
mpp12 12 gpio, pcie0(rstout), dev(ad14), led(stb) | ||
mpp13 13 gpio, dev(ad15), led(data) | ||
mpp14 14 gpio, m(vtt), dev(wen1), ua1(txd) | ||
mpp15 15 gpio, pcie0(rstout), spi0(mosi), i2c1(sck) | ||
mpp16 16 gpio, m(decc), spi0(miso), i2c1(sda) | ||
mpp17 17 gpio, ua1(rxd), spi0(sck), smi(mdio) | ||
mpp18 18 gpio, ua1(txd), spi0(cs0), i2c2(sck) | ||
mpp19 19 gpio, sata1(present) [1], ua0(cts), ua1(rxd), i2c2(sda) | ||
mpp20 20 gpio, sata0(present) [1], ua0(rts), ua1(txd), smi(mdc) | ||
mpp21 21 gpio, spi0(cs1), sata0(present) [1], sd(cmd), dev(bootcs), ge(rxd0) | ||
mpp22 22 gpio, spi0(mosi), dev(ad0) | ||
mpp23 23 gpio, spi0(sck), dev(ad2) | ||
mpp24 24 gpio, spi0(miso), ua0(cts), ua1(rxd), sd(d4), dev(readyn) | ||
mpp25 25 gpio, spi0(cs0), ua0(rts), ua1(txd), sd(d5), dev(cs0) | ||
mpp26 26 gpio, spi0(cs2), i2c1(sck), sd(d6), dev(cs1) | ||
mpp27 27 gpio, spi0(cs3), i2c1(sda), sd(d7), dev(cs2), ge(txclkout) | ||
mpp28 28 gpio, sd(clk), dev(ad5), ge(txd0) | ||
mpp29 29 gpio, dev(ale0), ge(txd1) | ||
mpp30 30 gpio, dev(oen), ge(txd2) | ||
mpp31 31 gpio, dev(ale1), ge(txd3) | ||
mpp32 32 gpio, dev(wen0), ge(txctl) | ||
mpp33 33 gpio, m(decc), dev(ad3) | ||
mpp34 34 gpio, dev(ad1) | ||
mpp35 35 gpio, ref(clk), dev(a1) | ||
mpp36 36 gpio, dev(a0) | ||
mpp37 37 gpio, sd(d3), dev(ad8), ge(rxclk) | ||
mpp38 38 gpio, ref(clk), sd(d0), dev(ad4), ge(rxd1) | ||
mpp39 39 gpio, i2c1(sck), ua0(cts), sd(d1), dev(a2), ge(rxd2) | ||
mpp40 40 gpio, i2c1(sda), ua0(rts), sd(d2), dev(ad6), ge(rxd3) | ||
mpp41 41 gpio, ua1(rxd), ua0(cts), spi1(cs3), dev(burstn), nd(rbn0), ge(rxctl) | ||
mpp42 42 gpio, ua1(txd), ua0(rts), dev(ad7) | ||
mpp43 43 gpio, pcie0(clkreq), m(vtt), m(decc), spi1(cs2), dev(clkout), nd(rbn1) | ||
mpp44 44 gpio, sata0(present) [1], sata1(present) [1], led(clk) | ||
mpp45 45 gpio, ref(clk), pcie0(rstout), ua1(rxd) | ||
mpp46 46 gpio, ref(clk), pcie0(rstout), ua1(txd), led(stb) | ||
mpp47 47 gpio, sata0(present) [1], sata1(present) [1], led(data) | ||
mpp48 48 gpio, sata0(present) [1], m(vtt), tdm(pclk) [1], audio(mclk) [1], sd(d4), pcie0(clkreq), ua1(txd) | ||
mpp49 49 gpio, tdm(fsync) [1], audio(lrclk) [1], sd(d5), ua2(rxd) | ||
mpp50 50 gpio, pcie0(rstout), tdm(drx) [1], audio(extclk) [1], sd(cmd), ua2(rxd) | ||
mpp51 51 gpio, tdm(dtx) [1], audio(sdo) [1], m(decc), ua2(txd) | ||
mpp52 52 gpio, pcie0(rstout), tdm(intn) [1], audio(sdi) [1], sd(d6), i2c3(sck) | ||
mpp53 53 gpio, sata1(present) [1], sata0(present) [1], tdm(rstn) [1], audio(bclk) [1], sd(d7), i2c3(sda) | ||
mpp54 54 gpio, sata0(present) [1], sata1(present) [1], pcie0(rstout), sd(d3), ua3(txd) | ||
mpp55 55 gpio, ua1(cts), spi1(cs1), sd(d0), ua1(rxd), ua3(rxd) | ||
mpp56 56 gpio, ua1(rts), m(decc), spi1(mosi), ua1(txd) | ||
mpp57 57 gpio, spi1(sck), sd(clk), ua1(txd) | ||
mpp58 58 gpio, i2c1(sck), pcie2(clkreq), spi1(miso), sd(d1), ua1(rxd) | ||
mpp59 59 gpio, pcie0(rstout), i2c1(sda), spi1(cs0), sd(d2) | ||
|
||
[1]: only available on 88F6928 |
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
Oops, something went wrong.