Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: Cygnus: define Broadcom Cygnus GPIO/PINCONF binding

Document the GPIO/PINCONF device tree binding for Broadcom Cygnus SoC

Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Ray Jui and committed by
Linus Walleij
2dffad82 c58e031d

+98
+98
Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.txt
··· 1 + Broadcom Cygnus GPIO/PINCONF Controller 2 + 3 + Required properties: 4 + 5 + - compatible: 6 + Must be "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio", or 7 + "brcm,cygnus-crmu-gpio" 8 + 9 + - reg: 10 + Define the base and range of the I/O address space that contains the Cygnus 11 + GPIO/PINCONF controller registers 12 + 13 + - #gpio-cells: 14 + Must be two. The first cell is the GPIO pin number (within the 15 + controller's pin space) and the second cell is used for the following: 16 + bit[0]: polarity (0 for active high and 1 for active low) 17 + 18 + - gpio-controller: 19 + Specifies that the node is a GPIO controller 20 + 21 + Optional properties: 22 + 23 + - interrupts: 24 + Interrupt ID 25 + 26 + - interrupt-controller: 27 + Specifies that the node is an interrupt controller 28 + 29 + - pinmux: 30 + Specifies the phandle to the IOMUX device, where pins can be individually 31 + muxed to GPIO 32 + 33 + Supported generic PINCONF properties in child nodes: 34 + 35 + - pins: 36 + The list of pins (within the controller's own pin space) that properties 37 + in the node apply to. Pin names are "gpio-<pin>" 38 + 39 + - bias-disable: 40 + Disable pin bias 41 + 42 + - bias-pull-up: 43 + Enable internal pull up resistor 44 + 45 + - bias-pull-down: 46 + Enable internal pull down resistor 47 + 48 + - drive-strength: 49 + Valid drive strength values include 2, 4, 6, 8, 10, 12, 14, 16 (mA) 50 + 51 + Example: 52 + gpio_ccm: gpio@1800a000 { 53 + compatible = "brcm,cygnus-ccm-gpio"; 54 + reg = <0x1800a000 0x50>, 55 + <0x0301d164 0x20>; 56 + #gpio-cells = <2>; 57 + gpio-controller; 58 + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 59 + interrupt-controller; 60 + 61 + touch_pins: touch_pins { 62 + pwr: pwr { 63 + pins = "gpio-0"; 64 + drive-strength = <16>; 65 + }; 66 + 67 + event: event { 68 + pins = "gpio-1"; 69 + bias-pull-up; 70 + }; 71 + }; 72 + }; 73 + 74 + gpio_asiu: gpio@180a5000 { 75 + compatible = "brcm,cygnus-asiu-gpio"; 76 + reg = <0x180a5000 0x668>; 77 + #gpio-cells = <2>; 78 + gpio-controller; 79 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 80 + interrupt-controller; 81 + }; 82 + 83 + /* 84 + * Touchscreen that uses the CCM GPIO 0 and 1 85 + */ 86 + tsc { 87 + ... 88 + ... 89 + gpio-pwr = <&gpio_ccm 0 0>; 90 + gpio-event = <&gpio_ccm 1 0>; 91 + }; 92 + 93 + /* Bluetooth that uses the ASIU GPIO 5, with polarity inverted */ 94 + bluetooth { 95 + ... 96 + ... 97 + bcm,rfkill-bank-sel = <&gpio_asiu 5 1> 98 + }