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