Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | Imagination Technologies Pistachio SoC pin controllers ====================================================== The pin controllers on Pistachio are a combined GPIO controller, (GPIO) interrupt controller, and pinmux + pinconf device. The system ("east") pin controller on Pistachio has 99 pins, 90 of which are MFIOs which can be configured as GPIOs. The 90 GPIOs are divided into 6 banks of up to 16 GPIOs each. The GPIO banks are represented as sub-nodes of the pad controller node. Please refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and ../interrupt-controller/interrupts.txt for generic information regarding pin controller, GPIO, and interrupt bindings. Required properties for pin controller node: -------------------------------------------- - compatible: "img,pistachio-system-pinctrl". - reg: Address range of the pinctrl registers. Required properties for GPIO bank sub-nodes: -------------------------------------------- - interrupts: Interrupt line for the GPIO bank. - gpio-controller: Indicates the device is a GPIO controller. - #gpio-cells: Must be two. The first cell is the GPIO pin number and the second cell indicates the polarity. See <dt-bindings/gpio/gpio.h> for a list of possible values. - interrupt-controller: Indicates the device is an interrupt controller. - #interrupt-cells: Must be two. The first cell is the GPIO pin number and the second cell encodes the interrupt flags. See <dt-bindings/interrupt-controller/irq.h> for a list of valid flags. Note that the N GPIO bank sub-nodes *must* be named gpio0, gpio1, ... gpioN-1. Required properties for pin configuration sub-nodes: ---------------------------------------------------- - pins: List of pins to which the configuration applies. See below for a list of possible pins. Optional properties for pin configuration sub-nodes: ---------------------------------------------------- - function: Mux function for the specified pins. This is not applicable for non-MFIO pins. See below for a list of valid functions for each pin. - bias-high-impedance: Enable high-impedance mode. - bias-pull-up: Enable weak pull-up. - bias-pull-down: Enable weak pull-down. - bias-bus-hold: Enable bus-keeper mode. - drive-strength: Drive strength in mA. Supported values: 2, 4, 8, 12. - input-schmitt-enable: Enable Schmitt trigger. - input-schmitt-disable: Disable Schmitt trigger. - slew-rate: Slew rate control. 0 for slow, 1 for fast. Pin Functions --- --------- mfio0 spim1 mfio1 spim1, spim0, uart1 mfio2 spim1, spim0, uart1 mfio3 spim1 mfio4 spim1 mfio5 spim1 mfio6 spim1 mfio7 spim1 mfio8 spim0 mfio9 spim0 mfio10 spim0 mfio11 spis mfio12 spis mfio13 spis mfio14 spis mfio15 sdhost, mips_trace_clk, mips_trace_data mfio16 sdhost, mips_trace_dint, mips_trace_data mfio17 sdhost, mips_trace_trigout, mips_trace_data mfio18 sdhost, mips_trace_trigin, mips_trace_data mfio19 sdhost, mips_trace_dm, mips_trace_data mfio20 sdhost, mips_trace_probe_n, mips_trace_data mfio21 sdhost, mips_trace_data mfio22 sdhost, mips_trace_data mfio23 sdhost mfio24 sdhost mfio25 sdhost mfio26 sdhost mfio27 sdhost mfio28 i2c0, spim0 mfio29 i2c0, spim0 mfio30 i2c1, spim0 mfio31 i2c1, spim1 mfio32 i2c2 mfio33 i2c2 mfio34 i2c3 mfio35 i2c3 mfio36 i2s_out, audio_clk_in mfio37 i2s_out, debug_raw_cca_ind mfio38 i2s_out, debug_ed_sec20_cca_ind mfio39 i2s_out, debug_ed_sec40_cca_ind mfio40 i2s_out, debug_agc_done_0 mfio41 i2s_out, debug_agc_done_1 mfio42 i2s_out, debug_ed_cca_ind mfio43 i2s_out, debug_s2l_done mfio44 i2s_out mfio45 i2s_dac_clk, audio_sync mfio46 audio_trigger mfio47 i2s_in mfio48 i2s_in mfio49 i2s_in mfio50 i2s_in mfio51 i2s_in mfio52 i2s_in mfio53 i2s_in mfio54 i2s_in, spdif_in mfio55 uart0, spim0, spim1 mfio56 uart0, spim0, spim1 mfio57 uart0, spim0, spim1 mfio58 uart0, spim1 mfio59 uart1 mfio60 uart1 mfio61 spdif_out mfio62 spdif_in mfio63 eth, mips_trace_clk, mips_trace_data mfio64 eth, mips_trace_dint, mips_trace_data mfio65 eth, mips_trace_trigout, mips_trace_data mfio66 eth, mips_trace_trigin, mips_trace_data mfio67 eth, mips_trace_dm, mips_trace_data mfio68 eth, mips_trace_probe_n, mips_trace_data mfio69 eth, mips_trace_data mfio70 eth, mips_trace_data mfio71 eth mfio72 ir mfio73 pwmpdm, mips_trace_clk, sram_debug mfio74 pwmpdm, mips_trace_dint, sram_debug mfio75 pwmpdm, mips_trace_trigout, rom_debug mfio76 pwmpdm, mips_trace_trigin, rom_debug mfio77 mdc_debug, mips_trace_dm, rpu_debug mfio78 mdc_debug, mips_trace_probe_n, rpu_debug mfio79 ddr_debug, mips_trace_data, mips_debug mfio80 ddr_debug, mips_trace_data, mips_debug mfio81 dreq0, mips_trace_data, eth_debug mfio82 dreq1, mips_trace_data, eth_debug mfio83 mips_pll_lock, mips_trace_data, usb_debug mfio84 audio_pll_lock, mips_trace_data, usb_debug mfio85 rpu_v_pll_lock, mips_trace_data, sdhost_debug mfio86 rpu_l_pll_lock, mips_trace_data, sdhost_debug mfio87 sys_pll_lock, dreq2, socif_debug mfio88 wifi_pll_lock, dreq3, socif_debug mfio89 bt_pll_lock, dreq4, dreq5 tck trstn tdi tms tdo jtag_comply safe_mode por_disable resetn Example: -------- pinctrl@18101C00 { compatible = "img,pistachio-system-pinctrl"; reg = <0x18101C00 0x400>; gpio0: gpio0 { interrupts = <GIC_SHARED 71 IRQ_TYPE_LEVEL_HIGH>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; }; ... gpio5: gpio5 { interrupts = <GIC_SHARED 76 IRQ_TYPE_LEVEL_HIGH>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; }; ... uart0_xfer: uart0-xfer { uart0-rxd { pins = "mfio55"; function = "uart0"; }; uart0-txd { pins = "mfio56"; function = "uart0"; }; }; uart0_rts_cts: uart0-rts-cts { uart0-rts { pins = "mfio57"; function = "uart0"; }; uart0-cts { pins = "mfio58"; function = "uart0"; }; }; }; uart@... { ... pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer>, <&uart0_rts_cts>; ... }; usb_vbus: fixed-regulator { ... gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>; ... }; |