123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- 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>;
- ...
- };
|