1* Atmel PIO4 Controller 2 3The Atmel PIO4 controller is used to select the function of a pin and to 4configure it. 5 6Required properties: 7- compatible: "atmel,sama5d2-pinctrl". 8- reg: base address and length of the PIO controller. 9- interrupts: interrupt outputs from the controller, one for each bank. 10- interrupt-controller: mark the device node as an interrupt controller. 11- #interrupt-cells: should be two. 12- gpio-controller: mark the device node as a gpio controller. 13- #gpio-cells: should be two. 14 15Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 16a general description of GPIO and interrupt bindings. 17 18Please refer to pinctrl-bindings.txt in this directory for details of the 19common pinctrl bindings used by client devices. 20 21Subnode format 22Each node (or subnode) will list the pins it needs and how to configured these 23pins. 24 25 node { 26 pinmux = <PIN_NUMBER_PINMUX>; 27 GENERIC_PINCONFIG; 28 }; 29 30Required properties: 31- pinmux: integer array. Each integer represents a pin number plus mux and 32ioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the 33right representation of the pin. 34 35Optional properties: 36- GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable, 37bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable, 38input-debounce, output-low, output-high. 39 40Example: 41 42#include <sama5d2-pinfunc.h> 43 44... 45{ 46 pioA: pinctrl@fc038000 { 47 compatible = "atmel,sama5d2-pinctrl"; 48 reg = <0xfc038000 0x600>; 49 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>, 50 <68 IRQ_TYPE_LEVEL_HIGH 7>, 51 <69 IRQ_TYPE_LEVEL_HIGH 7>, 52 <70 IRQ_TYPE_LEVEL_HIGH 7>; 53 interrupt-controller; 54 #interrupt-cells = <2>; 55 gpio-controller; 56 #gpio-cells = <2>; 57 clocks = <&pioA_clk>; 58 59 pinctrl_i2c0_default: i2c0_default { 60 pinmux = <PIN_PD21__TWD0>, 61 <PIN_PD22__TWCK0>; 62 bias-disable; 63 }; 64 65 pinctrl_led_gpio_default: led_gpio_default { 66 pinmux = <PIN_PB0>, 67 <PIN_PB5>; 68 bias-pull-up; 69 }; 70 71 pinctrl_sdmmc1_default: sdmmc1_default { 72 cmd_data { 73 pinmux = <PIN_PA28__SDMMC1_CMD>, 74 <PIN_PA18__SDMMC1_DAT0>, 75 <PIN_PA19__SDMMC1_DAT1>, 76 <PIN_PA20__SDMMC1_DAT2>, 77 <PIN_PA21__SDMMC1_DAT3>; 78 bias-pull-up; 79 }; 80 81 ck_cd { 82 pinmux = <PIN_PA22__SDMMC1_CK>, 83 <PIN_PA30__SDMMC1_CD>; 84 bias-disable; 85 }; 86 }; 87 ... 88 }; 89}; 90... 91