forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
5.9 KiB
217 lines
5.9 KiB
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>; |
|
... |
|
};
|
|
|