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