xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/abilis,tb10x-iomux.txt (revision 5aad0db1c1ebb0f5be79f0adbecc16a2f0259b21)
1*5aad0db1SChristian RuppertAbilis Systems TB10x pin controller
2*5aad0db1SChristian Ruppert===================================
3*5aad0db1SChristian Ruppert
4*5aad0db1SChristian RuppertRequired properties
5*5aad0db1SChristian Ruppert-------------------
6*5aad0db1SChristian Ruppert
7*5aad0db1SChristian Ruppert- compatible: should be "abilis,tb10x-iomux";
8*5aad0db1SChristian Ruppert- reg: should contain the physical address and size of the pin controller's
9*5aad0db1SChristian Ruppert  register range.
10*5aad0db1SChristian Ruppert
11*5aad0db1SChristian Ruppert
12*5aad0db1SChristian RuppertFunction definitions
13*5aad0db1SChristian Ruppert--------------------
14*5aad0db1SChristian Ruppert
15*5aad0db1SChristian RuppertFunctions are defined (and referenced) by sub-nodes of the pin controller.
16*5aad0db1SChristian RuppertEvery sub-node defines exactly one function (implying a set of pins).
17*5aad0db1SChristian RuppertEvery function is associated to one named pin group inside the pin controller
18*5aad0db1SChristian Ruppertdriver and these names are used to associate pin group predefinitions to pin
19*5aad0db1SChristian Ruppertcontroller sub-nodes.
20*5aad0db1SChristian Ruppert
21*5aad0db1SChristian RuppertRequired function definition subnode properties:
22*5aad0db1SChristian Ruppert  - abilis,function: should be set to the name of the function's pin group.
23*5aad0db1SChristian Ruppert
24*5aad0db1SChristian RuppertThe following pin groups are available:
25*5aad0db1SChristian Ruppert  - GPIO ports: gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog,
26*5aad0db1SChristian Ruppert                gpioh, gpioi, gpioj, gpiok, gpiol, gpiom, gpion
27*5aad0db1SChristian Ruppert  - Serial TS input ports: mis0, mis1, mis2, mis3, mis4, mis5, mis6, mis7
28*5aad0db1SChristian Ruppert  - Parallel TS input ports: mip1, mip3, mip5, mip7
29*5aad0db1SChristian Ruppert  - Serial TS output ports: mos0, mos1, mos2, mos3
30*5aad0db1SChristian Ruppert  - Parallel TS output port: mop
31*5aad0db1SChristian Ruppert  - CI+ port: ciplus
32*5aad0db1SChristian Ruppert  - CableCard (Mcard) port: mcard
33*5aad0db1SChristian Ruppert  - Smart card ports: stc0, stc1
34*5aad0db1SChristian Ruppert  - UART ports: uart0, uart1
35*5aad0db1SChristian Ruppert  - SPI ports: spi1, spi3
36*5aad0db1SChristian Ruppert  - JTAG: jtag
37*5aad0db1SChristian Ruppert
38*5aad0db1SChristian RuppertAll other ports of the chip are not multiplexed and thus not managed by this
39*5aad0db1SChristian Ruppertdriver.
40*5aad0db1SChristian Ruppert
41*5aad0db1SChristian Ruppert
42*5aad0db1SChristian RuppertGPIO ranges definition
43*5aad0db1SChristian Ruppert----------------------
44*5aad0db1SChristian Ruppert
45*5aad0db1SChristian RuppertThe named pin groups of GPIO ports can be used to define GPIO ranges as
46*5aad0db1SChristian Ruppertexplained in Documentation/devicetree/bindings/gpio/gpio.txt.
47*5aad0db1SChristian Ruppert
48*5aad0db1SChristian Ruppert
49*5aad0db1SChristian RuppertExample
50*5aad0db1SChristian Ruppert-------
51*5aad0db1SChristian Ruppert
52*5aad0db1SChristian Ruppertiomux: iomux@FF10601c {
53*5aad0db1SChristian Ruppert	compatible = "abilis,tb10x-iomux";
54*5aad0db1SChristian Ruppert	reg = <0xFF10601c 0x4>;
55*5aad0db1SChristian Ruppert	pctl_gpio_a: pctl-gpio-a {
56*5aad0db1SChristian Ruppert		abilis,function = "gpioa";
57*5aad0db1SChristian Ruppert	};
58*5aad0db1SChristian Ruppert	pctl_uart0: pctl-uart0 {
59*5aad0db1SChristian Ruppert		abilis,function = "uart0";
60*5aad0db1SChristian Ruppert	};
61*5aad0db1SChristian Ruppert};
62*5aad0db1SChristian Ruppertuart@FF100000 {
63*5aad0db1SChristian Ruppert	compatible = "snps,dw-apb-uart";
64*5aad0db1SChristian Ruppert	reg = <0xFF100000 0x100>;
65*5aad0db1SChristian Ruppert	clock-frequency = <166666666>;
66*5aad0db1SChristian Ruppert	interrupts = <25 1>;
67*5aad0db1SChristian Ruppert	reg-shift = <2>;
68*5aad0db1SChristian Ruppert	reg-io-width = <4>;
69*5aad0db1SChristian Ruppert	pinctrl-names = "default";
70*5aad0db1SChristian Ruppert	pinctrl-0 = <&pctl_uart0>;
71*5aad0db1SChristian Ruppert};
72*5aad0db1SChristian Ruppertgpioa: gpio@FF140000 {
73*5aad0db1SChristian Ruppert	compatible = "abilis,tb10x-gpio";
74*5aad0db1SChristian Ruppert	reg = <0xFF140000 0x1000>;
75*5aad0db1SChristian Ruppert	gpio-controller;
76*5aad0db1SChristian Ruppert	#gpio-cells = <2>;
77*5aad0db1SChristian Ruppert	ngpio = <3>;
78*5aad0db1SChristian Ruppert	gpio-ranges = <&iomux 0 0>;
79*5aad0db1SChristian Ruppert	gpio-ranges-group-names = "gpioa";
80*5aad0db1SChristian Ruppert};
81