]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - Documentation/devicetree/bindings/pinctrl/abilis,tb10x-iomux.txt
Merge remote-tracking branch 'pinctrl/for-next'
[karo-tx-linux.git] / Documentation / devicetree / bindings / pinctrl / abilis,tb10x-iomux.txt
diff --git a/Documentation/devicetree/bindings/pinctrl/abilis,tb10x-iomux.txt b/Documentation/devicetree/bindings/pinctrl/abilis,tb10x-iomux.txt
new file mode 100644 (file)
index 0000000..2c11866
--- /dev/null
@@ -0,0 +1,80 @@
+Abilis Systems TB10x pin controller
+===================================
+
+Required properties
+-------------------
+
+- compatible: should be "abilis,tb10x-iomux";
+- reg: should contain the physical address and size of the pin controller's
+  register range.
+
+
+Function definitions
+--------------------
+
+Functions are defined (and referenced) by sub-nodes of the pin controller.
+Every sub-node defines exactly one function (implying a set of pins).
+Every function is associated to one named pin group inside the pin controller
+driver and these names are used to associate pin group predefinitions to pin
+controller sub-nodes.
+
+Required function definition subnode properties:
+  - abilis,function: should be set to the name of the function's pin group.
+
+The following pin groups are available:
+  - GPIO ports: gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog,
+                gpioh, gpioi, gpioj, gpiok, gpiol, gpiom, gpion
+  - Serial TS input ports: mis0, mis1, mis2, mis3, mis4, mis5, mis6, mis7
+  - Parallel TS input ports: mip1, mip3, mip5, mip7
+  - Serial TS output ports: mos0, mos1, mos2, mos3
+  - Parallel TS output port: mop
+  - CI+ port: ciplus
+  - CableCard (Mcard) port: mcard
+  - Smart card ports: stc0, stc1
+  - UART ports: uart0, uart1
+  - SPI ports: spi1, spi3
+  - JTAG: jtag
+
+All other ports of the chip are not multiplexed and thus not managed by this
+driver.
+
+
+GPIO ranges definition
+----------------------
+
+The named pin groups of GPIO ports can be used to define GPIO ranges as
+explained in Documentation/devicetree/bindings/gpio/gpio.txt.
+
+
+Example
+-------
+
+iomux: iomux@FF10601c {
+       compatible = "abilis,tb10x-iomux";
+       reg = <0xFF10601c 0x4>;
+       pctl_gpio_a: pctl-gpio-a {
+               abilis,function = "gpioa";
+       };
+       pctl_uart0: pctl-uart0 {
+               abilis,function = "uart0";
+       };
+};
+uart@FF100000 {
+       compatible = "snps,dw-apb-uart";
+       reg = <0xFF100000 0x100>;
+       clock-frequency = <166666666>;
+       interrupts = <25 1>;
+       reg-shift = <2>;
+       reg-io-width = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pctl_uart0>;
+};
+gpioa: gpio@FF140000 {
+       compatible = "abilis,tb10x-gpio";
+       reg = <0xFF140000 0x1000>;
+       gpio-controller;
+       #gpio-cells = <2>;
+       ngpio = <3>;
+       gpio-ranges = <&iomux 0 0>;
+       gpio-ranges-group-names = "gpioa";
+};