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.
97 lines
2.6 KiB
97 lines
2.6 KiB
* Atmel PIO4 Controller |
|
|
|
The Atmel PIO4 controller is used to select the function of a pin and to |
|
configure it. |
|
|
|
Required properties: |
|
- compatible: |
|
"atmel,sama5d2-pinctrl" |
|
"microchip,sama7g5-pinctrl" |
|
- reg: base address and length of the PIO controller. |
|
- interrupts: interrupt outputs from the controller, one for each bank. |
|
- interrupt-controller: mark the device node as an interrupt controller. |
|
- #interrupt-cells: should be two. |
|
- gpio-controller: mark the device node as a gpio controller. |
|
- #gpio-cells: should be two. |
|
|
|
Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for |
|
a general description of GPIO and interrupt bindings. |
|
|
|
Please refer to pinctrl-bindings.txt in this directory for details of the |
|
common pinctrl bindings used by client devices. |
|
|
|
Subnode format |
|
Each node (or subnode) will list the pins it needs and how to configured these |
|
pins. |
|
|
|
node { |
|
pinmux = <PIN_NUMBER_PINMUX>; |
|
GENERIC_PINCONFIG; |
|
}; |
|
|
|
Required properties: |
|
- pinmux: integer array. Each integer represents a pin number plus mux and |
|
ioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the |
|
right representation of the pin. |
|
|
|
Optional properties: |
|
- GENERIC_PINCONFIG: generic pinconfig options to use: |
|
- bias-disable, bias-pull-down, bias-pull-up, drive-open-drain, |
|
input-schmitt-enable, input-debounce, output-low, output-high. |
|
- for microchip,sama7g5-pinctrl only: |
|
- slew-rate: 0 - disabled, 1 - enabled (default) |
|
- atmel,drive-strength: 0 or 1 for low drive, 2 for medium drive and 3 for |
|
high drive. The default value is low drive. |
|
|
|
Example: |
|
|
|
#include <sama5d2-pinfunc.h> |
|
|
|
... |
|
{ |
|
pioA: pinctrl@fc038000 { |
|
compatible = "atmel,sama5d2-pinctrl"; |
|
reg = <0xfc038000 0x600>; |
|
interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>, |
|
<68 IRQ_TYPE_LEVEL_HIGH 7>, |
|
<69 IRQ_TYPE_LEVEL_HIGH 7>, |
|
<70 IRQ_TYPE_LEVEL_HIGH 7>; |
|
interrupt-controller; |
|
#interrupt-cells = <2>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
clocks = <&pioA_clk>; |
|
|
|
pinctrl_i2c0_default: i2c0_default { |
|
pinmux = <PIN_PD21__TWD0>, |
|
<PIN_PD22__TWCK0>; |
|
bias-disable; |
|
}; |
|
|
|
pinctrl_led_gpio_default: led_gpio_default { |
|
pinmux = <PIN_PB0>, |
|
<PIN_PB5>; |
|
bias-pull-up; |
|
atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>; |
|
}; |
|
|
|
pinctrl_sdmmc1_default: sdmmc1_default { |
|
cmd_data { |
|
pinmux = <PIN_PA28__SDMMC1_CMD>, |
|
<PIN_PA18__SDMMC1_DAT0>, |
|
<PIN_PA19__SDMMC1_DAT1>, |
|
<PIN_PA20__SDMMC1_DAT2>, |
|
<PIN_PA21__SDMMC1_DAT3>; |
|
bias-pull-up; |
|
}; |
|
|
|
ck_cd { |
|
pinmux = <PIN_PA22__SDMMC1_CK>, |
|
<PIN_PA30__SDMMC1_CD>; |
|
bias-disable; |
|
}; |
|
}; |
|
... |
|
}; |
|
}; |
|
...
|
|
|