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