162306a36Sopenharmony_ci* Marvell Armada 37xx SoC pin and gpio controller
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciEach Armada 37xx SoC come with two pin and gpio controller one for the
462306a36Sopenharmony_cisouth bridge and the other for the north bridge.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciInside this set of register the gpio latch allows exposing some
762306a36Sopenharmony_ciconfiguration of the SoC and especially the clock frequency of the
862306a36Sopenharmony_cixtal. Hence, this node is a represent as syscon allowing sharing the
962306a36Sopenharmony_ciregister between multiple hardware block.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciGPIO and pin controller:
1262306a36Sopenharmony_ci------------------------
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciMain node:
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciRefer to pinctrl-bindings.txt in this directory for details of the
1762306a36Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning
1862306a36Sopenharmony_ciof the phrase "pin configuration node".
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciRequired properties for pinctrl driver:
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci- compatible:	"marvell,armada3710-sb-pinctrl", "syscon, "simple-mfd"
2362306a36Sopenharmony_ci		for the south bridge
2462306a36Sopenharmony_ci		"marvell,armada3710-nb-pinctrl", "syscon, "simple-mfd"
2562306a36Sopenharmony_ci		for the north bridge
2662306a36Sopenharmony_ci- reg: The first set of register are for pinctrl/gpio and the second
2762306a36Sopenharmony_ci  set for the interrupt controller
2862306a36Sopenharmony_ci- interrupts: list of the interrupt use by the gpio
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciAvailable groups and functions for the North bridge:
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cigroup: jtag
3362306a36Sopenharmony_ci - pins 20-24
3462306a36Sopenharmony_ci - functions jtag, gpio
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_cigroup sdio0
3762306a36Sopenharmony_ci - pins 8-10
3862306a36Sopenharmony_ci - functions sdio, gpio
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_cigroup emmc_nb
4162306a36Sopenharmony_ci - pins 27-35
4262306a36Sopenharmony_ci - functions emmc, gpio
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cigroup pwm0
4562306a36Sopenharmony_ci - pin 11 (GPIO1-11)
4662306a36Sopenharmony_ci - functions pwm, led, gpio
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cigroup pwm1
4962306a36Sopenharmony_ci - pin 12
5062306a36Sopenharmony_ci - functions pwm, led, gpio
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_cigroup pwm2
5362306a36Sopenharmony_ci - pin 13
5462306a36Sopenharmony_ci - functions pwm, led, gpio
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cigroup pwm3
5762306a36Sopenharmony_ci - pin 14
5862306a36Sopenharmony_ci - functions pwm, led, gpio
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_cigroup pmic1
6162306a36Sopenharmony_ci - pin 7
6262306a36Sopenharmony_ci - functions pmic, gpio
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_cigroup pmic0
6562306a36Sopenharmony_ci - pin 6
6662306a36Sopenharmony_ci - functions pmic, gpio
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cigroup i2c2
6962306a36Sopenharmony_ci - pins 2-3
7062306a36Sopenharmony_ci - functions i2c, gpio
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_cigroup i2c1
7362306a36Sopenharmony_ci - pins 0-1
7462306a36Sopenharmony_ci - functions i2c, gpio
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cigroup spi_cs1
7762306a36Sopenharmony_ci - pin 17
7862306a36Sopenharmony_ci - functions spi, gpio
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_cigroup spi_cs2
8162306a36Sopenharmony_ci - pin 18
8262306a36Sopenharmony_ci - functions spi, gpio
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_cigroup spi_cs3
8562306a36Sopenharmony_ci - pin 19
8662306a36Sopenharmony_ci - functions spi, gpio
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cigroup onewire
8962306a36Sopenharmony_ci - pin 4
9062306a36Sopenharmony_ci - functions onewire, gpio
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cigroup uart1
9362306a36Sopenharmony_ci - pins 25-26
9462306a36Sopenharmony_ci - functions uart, gpio
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cigroup spi_quad
9762306a36Sopenharmony_ci - pins 15-16
9862306a36Sopenharmony_ci - functions spi, gpio
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_cigroup uart2
10162306a36Sopenharmony_ci - pins 9-10 and 18-19
10262306a36Sopenharmony_ci - functions uart, gpio
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciAvailable groups and functions for the South bridge:
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_cigroup usb32_drvvbus0
10762306a36Sopenharmony_ci - pin 36
10862306a36Sopenharmony_ci - functions drvbus, gpio
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_cigroup usb2_drvvbus1
11162306a36Sopenharmony_ci - pin 37
11262306a36Sopenharmony_ci - functions drvbus, gpio
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_cigroup sdio_sb
11562306a36Sopenharmony_ci - pins 60-65
11662306a36Sopenharmony_ci - functions sdio, gpio
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_cigroup rgmii
11962306a36Sopenharmony_ci - pins 42-53
12062306a36Sopenharmony_ci - functions mii, gpio
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cigroup pcie1
12362306a36Sopenharmony_ci - pins 39
12462306a36Sopenharmony_ci - functions pcie, gpio
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_cigroup pcie1_clkreq
12762306a36Sopenharmony_ci - pins 40
12862306a36Sopenharmony_ci - functions pcie, gpio
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_cigroup pcie1_wakeup
13162306a36Sopenharmony_ci - pins 41
13262306a36Sopenharmony_ci - functions pcie, gpio
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_cigroup smi
13562306a36Sopenharmony_ci - pins 54-55
13662306a36Sopenharmony_ci - functions smi, gpio
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cigroup ptp
13962306a36Sopenharmony_ci - pins 56
14062306a36Sopenharmony_ci - functions ptp, gpio
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_cigroup ptp_clk
14362306a36Sopenharmony_ci - pin 57
14462306a36Sopenharmony_ci - functions ptp, mii
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_cigroup ptp_trig
14762306a36Sopenharmony_ci - pin 58
14862306a36Sopenharmony_ci - functions ptp, mii
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_cigroup mii_col
15162306a36Sopenharmony_ci - pin 59
15262306a36Sopenharmony_ci - functions mii, mii_err
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciGPIO subnode:
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciPlease refer to gpio.txt in this directory for details of gpio-ranges property
15762306a36Sopenharmony_ciand the common GPIO bindings used by client devices.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciRequired properties for gpio driver under the gpio subnode:
16062306a36Sopenharmony_ci- interrupts: List of interrupt specifier for the controllers interrupt.
16162306a36Sopenharmony_ci- gpio-controller: Marks the device node as a gpio controller.
16262306a36Sopenharmony_ci- #gpio-cells: Should be 2. The first cell is the GPIO number and the
16362306a36Sopenharmony_ci   second cell specifies GPIO flags, as defined in
16462306a36Sopenharmony_ci   <dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH and
16562306a36Sopenharmony_ci   GPIO_ACTIVE_LOW flags are supported.
16662306a36Sopenharmony_ci- gpio-ranges: Range of pins managed by the GPIO controller.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ciXtal Clock bindings for Marvell Armada 37xx SoCs
16962306a36Sopenharmony_ci------------------------------------------------
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_cisee Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciExample:
17562306a36Sopenharmony_cipinctrl_sb: pinctrl-sb@18800 {
17662306a36Sopenharmony_ci	compatible = "marvell,armada3710-sb-pinctrl", "syscon", "simple-mfd";
17762306a36Sopenharmony_ci	reg = <0x18800 0x100>, <0x18C00 0x20>;
17862306a36Sopenharmony_ci	gpio {
17962306a36Sopenharmony_ci		#gpio-cells = <2>;
18062306a36Sopenharmony_ci		gpio-ranges = <&pinctrl_sb 0 0 29>;
18162306a36Sopenharmony_ci		gpio-controller;
18262306a36Sopenharmony_ci		interrupts =
18362306a36Sopenharmony_ci		<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
18462306a36Sopenharmony_ci		<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
18562306a36Sopenharmony_ci		<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
18662306a36Sopenharmony_ci		<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
18762306a36Sopenharmony_ci		<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
18862306a36Sopenharmony_ci	};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci	rgmii_pins: mii-pins {
19162306a36Sopenharmony_ci		groups = "rgmii";
19262306a36Sopenharmony_ci		function = "mii";
19362306a36Sopenharmony_ci	};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci};
196