~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: 3139a99fa97178dbe54092518cdde9095a448892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
* Marvell Armada 37xx SoC pin and GPIO controller

Each Armada 37xx SoC comes with two pin and GPIO controllers, one for the
South Bridge and the other for the North Bridge.

GPIO and pin controller:
------------------------

Main node:

Refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning
of the phrase "pin configuration node".

Required properties for pinctrl driver:

- compatible:	"marvell,armada3710-sb-pinctrl", "syscon, "simple-mfd"
		for the South Bridge
		"marvell,armada3710-nb-pinctrl", "syscon, "simple-mfd"
		for the North Bridge
- reg: The first set of registers is for pinctrl/GPIO and the second
  set is for the interrupt controller
- interrupts: list of interrupts used by the GPIO

Available groups and functions for the North Bridge:

group: jtag
 - pins 20-24
 - functions jtag, gpio

group sdio0
 - pins 8-10
 - functions sdio, gpio

group emmc_nb
 - pins 27-35
 - functions emmc, gpio

group pwm0
 - pin 11 (GPIO1-11)
 - functions pwm, led, gpio

group pwm1
 - pin 12
 - functions pwm, led, gpio

group pwm2
 - pin 13
 - functions pwm, led, gpio

group pwm3
 - pin 14
 - functions pwm, led, gpio

group pmic1
 - pin 7
 - functions pmic, gpio

group pmic0
 - pin 6
 - functions pmic, gpio

group i2c2
 - pins 2-3
 - functions i2c, gpio

group i2c1
 - pins 0-1
 - functions i2c, gpio

group spi_cs1
 - pin 17
 - functions spi, gpio

group spi_cs2
 - pin 18
 - functions spi, gpio

group spi_cs3
 - pin 19
 - functions spi, gpio

group onewire
 - pin 4
 - functions onewire, gpio

group uart1
 - pins 25-26
 - functions uart, gpio

group spi_quad
 - pins 15-16
 - functions spi, gpio

group uart_2
 - pins 9-10
 - functions uart, gpio

Available groups and functions for the South Bridge:

group usb32_drvvbus0
 - pin 36
 - functions drvbus, gpio

group usb2_drvvbus1
 - pin 37
 - functions drvbus, gpio

group sdio_sb
 - pins 60-65
 - functions sdio, gpio

group rgmii
 - pins 42-53
 - functions mii, gpio

group pcie1
 - pins 39-41
 - functions pcie, gpio

group smi
 - pins 54-55
 - functions smi, gpio

group ptp
 - pins 56-58
 - functions ptp, gpio

group ptp_clk
 - pin 57
 - functions ptp, mii

group ptp_trig
 - pin 58
 - functions ptp, mii

group mii_col
 - pin 59
 - functions mii, mii_err

GPIO subnode:

Please refer to gpio.txt in "gpio" directory for details of gpio-ranges property
and the common GPIO bindings used by client devices.

Required properties for the GPIO driver under the gpio subnode:
- interrupts: List of interrupt specifiers for the controllers interrupt.
- gpio-controller: Marks the device node as a GPIO controller.
- #gpio-cells: Should be 2. The first cell is the GPIO number and the
   second cell specifies GPIO flags, as defined in
   <dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH and
   GPIO_ACTIVE_LOW flags are supported.
- gpio-ranges: Range of pins managed by the GPIO controller.

Example:
pinctrl_sb: pinctrl-sb@18800 {
	compatible = "marvell,armada3710-sb-pinctrl",
	"syscon", "simple-mfd";
	reg = <0x18800 0x100>, <0x18C00 0x20>;
	gpiosb: gpiosb {
		#gpio-cells = <2>;
		gpio-ranges = <&pinctrl_sb 0 0 30>;
		gpio-controller;
		interrupts =
		<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
		<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
		<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
		<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
		<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
	};

	rgmii_pins: mii-pins {
		groups = "rgmii";
		function = "mii";
	};

	sdio_pins: sdio-pins {
		groups = "sdio_sb";
		function = "sdio";
	};

	pcie_pins: pcie-pins {
		groups = "pcie1";
		function = "pcie";
	};
};