xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/marvell,armada-37xx-pinctrl.txt (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
1c66ec88fSEmmanuel Vadot* Marvell Armada 37xx SoC pin and gpio controller
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotEach Armada 37xx SoC come with two pin and gpio controller one for the
4c66ec88fSEmmanuel Vadotsouth bridge and the other for the north bridge.
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotInside this set of register the gpio latch allows exposing some
7c66ec88fSEmmanuel Vadotconfiguration of the SoC and especially the clock frequency of the
8c66ec88fSEmmanuel Vadotxtal. Hence, this node is a represent as syscon allowing sharing the
9c66ec88fSEmmanuel Vadotregister between multiple hardware block.
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel VadotGPIO and pin controller:
12c66ec88fSEmmanuel Vadot------------------------
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel VadotMain node:
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel VadotRefer to pinctrl-bindings.txt in this directory for details of the
17c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning
18c66ec88fSEmmanuel Vadotof the phrase "pin configuration node".
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel VadotRequired properties for pinctrl driver:
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot- compatible:	"marvell,armada3710-sb-pinctrl", "syscon, "simple-mfd"
23c66ec88fSEmmanuel Vadot		for the south bridge
24c66ec88fSEmmanuel Vadot		"marvell,armada3710-nb-pinctrl", "syscon, "simple-mfd"
25c66ec88fSEmmanuel Vadot		for the north bridge
26c66ec88fSEmmanuel Vadot- reg: The first set of register are for pinctrl/gpio and the second
27c66ec88fSEmmanuel Vadot  set for the interrupt controller
28c66ec88fSEmmanuel Vadot- interrupts: list of the interrupt use by the gpio
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel VadotAvailable groups and functions for the North bridge:
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadotgroup: jtag
33c66ec88fSEmmanuel Vadot - pins 20-24
34c66ec88fSEmmanuel Vadot - functions jtag, gpio
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadotgroup sdio0
37c66ec88fSEmmanuel Vadot - pins 8-10
38c66ec88fSEmmanuel Vadot - functions sdio, gpio
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadotgroup emmc_nb
41c66ec88fSEmmanuel Vadot - pins 27-35
42c66ec88fSEmmanuel Vadot - functions emmc, gpio
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadotgroup pwm0
45c66ec88fSEmmanuel Vadot - pin 11 (GPIO1-11)
46*354d7675SEmmanuel Vadot - functions pwm, led, gpio
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadotgroup pwm1
49c66ec88fSEmmanuel Vadot - pin 12
50*354d7675SEmmanuel Vadot - functions pwm, led, gpio
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadotgroup pwm2
53c66ec88fSEmmanuel Vadot - pin 13
54*354d7675SEmmanuel Vadot - functions pwm, led, gpio
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadotgroup pwm3
57c66ec88fSEmmanuel Vadot - pin 14
58*354d7675SEmmanuel Vadot - functions pwm, led, gpio
59c66ec88fSEmmanuel Vadot
60c66ec88fSEmmanuel Vadotgroup pmic1
61c66ec88fSEmmanuel Vadot - pin 7
62c66ec88fSEmmanuel Vadot - functions pmic, gpio
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadotgroup pmic0
65c66ec88fSEmmanuel Vadot - pin 6
66c66ec88fSEmmanuel Vadot - functions pmic, gpio
67c66ec88fSEmmanuel Vadot
68c66ec88fSEmmanuel Vadotgroup i2c2
69c66ec88fSEmmanuel Vadot - pins 2-3
70c66ec88fSEmmanuel Vadot - functions i2c, gpio
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadotgroup i2c1
73c66ec88fSEmmanuel Vadot - pins 0-1
74c66ec88fSEmmanuel Vadot - functions i2c, gpio
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadotgroup spi_cs1
77c66ec88fSEmmanuel Vadot - pin 17
78c66ec88fSEmmanuel Vadot - functions spi, gpio
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadotgroup spi_cs2
81c66ec88fSEmmanuel Vadot - pin 18
82c66ec88fSEmmanuel Vadot - functions spi, gpio
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadotgroup spi_cs3
85c66ec88fSEmmanuel Vadot - pin 19
86c66ec88fSEmmanuel Vadot - functions spi, gpio
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadotgroup onewire
89c66ec88fSEmmanuel Vadot - pin 4
90c66ec88fSEmmanuel Vadot - functions onewire, gpio
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadotgroup uart1
93c66ec88fSEmmanuel Vadot - pins 25-26
94c66ec88fSEmmanuel Vadot - functions uart, gpio
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadotgroup spi_quad
97c66ec88fSEmmanuel Vadot - pins 15-16
98c66ec88fSEmmanuel Vadot - functions spi, gpio
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadotgroup uart2
101c66ec88fSEmmanuel Vadot - pins 9-10 and 18-19
102c66ec88fSEmmanuel Vadot - functions uart, gpio
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel VadotAvailable groups and functions for the South bridge:
105c66ec88fSEmmanuel Vadot
106c66ec88fSEmmanuel Vadotgroup usb32_drvvbus0
107c66ec88fSEmmanuel Vadot - pin 36
108c66ec88fSEmmanuel Vadot - functions drvbus, gpio
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadotgroup usb2_drvvbus1
111c66ec88fSEmmanuel Vadot - pin 37
112c66ec88fSEmmanuel Vadot - functions drvbus, gpio
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadotgroup sdio_sb
115c66ec88fSEmmanuel Vadot - pins 60-65
116c66ec88fSEmmanuel Vadot - functions sdio, gpio
117c66ec88fSEmmanuel Vadot
118c66ec88fSEmmanuel Vadotgroup rgmii
119c66ec88fSEmmanuel Vadot - pins 42-53
120c66ec88fSEmmanuel Vadot - functions mii, gpio
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadotgroup pcie1
123c66ec88fSEmmanuel Vadot - pins 39
124c66ec88fSEmmanuel Vadot - functions pcie, gpio
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadotgroup pcie1_clkreq
127c66ec88fSEmmanuel Vadot - pins 40
128c66ec88fSEmmanuel Vadot - functions pcie, gpio
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadotgroup pcie1_wakeup
131c66ec88fSEmmanuel Vadot - pins 41
132c66ec88fSEmmanuel Vadot - functions pcie, gpio
133c66ec88fSEmmanuel Vadot
134c66ec88fSEmmanuel Vadotgroup smi
135c66ec88fSEmmanuel Vadot - pins 54-55
136c66ec88fSEmmanuel Vadot - functions smi, gpio
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadotgroup ptp
139c66ec88fSEmmanuel Vadot - pins 56
140c66ec88fSEmmanuel Vadot - functions ptp, gpio
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadotgroup ptp_clk
143c66ec88fSEmmanuel Vadot - pin 57
144c66ec88fSEmmanuel Vadot - functions ptp, mii
145c66ec88fSEmmanuel Vadot
146c66ec88fSEmmanuel Vadotgroup ptp_trig
147c66ec88fSEmmanuel Vadot - pin 58
148c66ec88fSEmmanuel Vadot - functions ptp, mii
149c66ec88fSEmmanuel Vadot
150c66ec88fSEmmanuel Vadotgroup mii_col
151c66ec88fSEmmanuel Vadot - pin 59
152c66ec88fSEmmanuel Vadot - functions mii, mii_err
153c66ec88fSEmmanuel Vadot
154c66ec88fSEmmanuel VadotGPIO subnode:
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel VadotPlease refer to gpio.txt in this directory for details of gpio-ranges property
157c66ec88fSEmmanuel Vadotand the common GPIO bindings used by client devices.
158c66ec88fSEmmanuel Vadot
159c66ec88fSEmmanuel VadotRequired properties for gpio driver under the gpio subnode:
160c66ec88fSEmmanuel Vadot- interrupts: List of interrupt specifier for the controllers interrupt.
161c66ec88fSEmmanuel Vadot- gpio-controller: Marks the device node as a gpio controller.
162c66ec88fSEmmanuel Vadot- #gpio-cells: Should be 2. The first cell is the GPIO number and the
163c66ec88fSEmmanuel Vadot   second cell specifies GPIO flags, as defined in
164c66ec88fSEmmanuel Vadot   <dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH and
165c66ec88fSEmmanuel Vadot   GPIO_ACTIVE_LOW flags are supported.
166c66ec88fSEmmanuel Vadot- gpio-ranges: Range of pins managed by the GPIO controller.
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel VadotXtal Clock bindings for Marvell Armada 37xx SoCs
169c66ec88fSEmmanuel Vadot------------------------------------------------
170c66ec88fSEmmanuel Vadot
171c66ec88fSEmmanuel Vadotsee Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt
172c66ec88fSEmmanuel Vadot
173c66ec88fSEmmanuel Vadot
174c66ec88fSEmmanuel VadotExample:
175c66ec88fSEmmanuel Vadotpinctrl_sb: pinctrl-sb@18800 {
176c66ec88fSEmmanuel Vadot	compatible = "marvell,armada3710-sb-pinctrl", "syscon", "simple-mfd";
177c66ec88fSEmmanuel Vadot	reg = <0x18800 0x100>, <0x18C00 0x20>;
178c66ec88fSEmmanuel Vadot	gpio {
179c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
180c66ec88fSEmmanuel Vadot		gpio-ranges = <&pinctrl_sb 0 0 29>;
181c66ec88fSEmmanuel Vadot		gpio-controller;
182c66ec88fSEmmanuel Vadot		interrupts =
183c66ec88fSEmmanuel Vadot		<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
184c66ec88fSEmmanuel Vadot		<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
185c66ec88fSEmmanuel Vadot		<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
186c66ec88fSEmmanuel Vadot		<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
187c66ec88fSEmmanuel Vadot		<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
188c66ec88fSEmmanuel Vadot	};
189c66ec88fSEmmanuel Vadot
190c66ec88fSEmmanuel Vadot	rgmii_pins: mii-pins {
191c66ec88fSEmmanuel Vadot		groups = "rgmii";
192c66ec88fSEmmanuel Vadot		function = "mii";
193c66ec88fSEmmanuel Vadot	};
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot};
196