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