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