18c2ecf20Sopenharmony_ci* Atmel PIO4 Controller 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe Atmel PIO4 controller is used to select the function of a pin and to 48c2ecf20Sopenharmony_ciconfigure it. 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciRequired properties: 78c2ecf20Sopenharmony_ci- compatible: 88c2ecf20Sopenharmony_ci "atmel,sama5d2-pinctrl" 98c2ecf20Sopenharmony_ci "microchip,sama7g5-pinctrl" 108c2ecf20Sopenharmony_ci- reg: base address and length of the PIO controller. 118c2ecf20Sopenharmony_ci- interrupts: interrupt outputs from the controller, one for each bank. 128c2ecf20Sopenharmony_ci- interrupt-controller: mark the device node as an interrupt controller. 138c2ecf20Sopenharmony_ci- #interrupt-cells: should be two. 148c2ecf20Sopenharmony_ci- gpio-controller: mark the device node as a gpio controller. 158c2ecf20Sopenharmony_ci- #gpio-cells: should be two. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 188c2ecf20Sopenharmony_cia general description of GPIO and interrupt bindings. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 218c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciSubnode format 248c2ecf20Sopenharmony_ciEach node (or subnode) will list the pins it needs and how to configured these 258c2ecf20Sopenharmony_cipins. 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci node { 288c2ecf20Sopenharmony_ci pinmux = <PIN_NUMBER_PINMUX>; 298c2ecf20Sopenharmony_ci GENERIC_PINCONFIG; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciRequired properties: 338c2ecf20Sopenharmony_ci- pinmux: integer array. Each integer represents a pin number plus mux and 348c2ecf20Sopenharmony_ciioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the 358c2ecf20Sopenharmony_ciright representation of the pin. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciOptional properties: 388c2ecf20Sopenharmony_ci- GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable, 398c2ecf20Sopenharmony_cibias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable, 408c2ecf20Sopenharmony_ciinput-debounce, output-low, output-high. 418c2ecf20Sopenharmony_ci- atmel,drive-strength: 0 or 1 for low drive, 2 for medium drive and 3 for 428c2ecf20Sopenharmony_cihigh drive. The default value is low drive. 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciExample: 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci#include <sama5d2-pinfunc.h> 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci... 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci pioA: pinctrl@fc038000 { 518c2ecf20Sopenharmony_ci compatible = "atmel,sama5d2-pinctrl"; 528c2ecf20Sopenharmony_ci reg = <0xfc038000 0x600>; 538c2ecf20Sopenharmony_ci interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>, 548c2ecf20Sopenharmony_ci <68 IRQ_TYPE_LEVEL_HIGH 7>, 558c2ecf20Sopenharmony_ci <69 IRQ_TYPE_LEVEL_HIGH 7>, 568c2ecf20Sopenharmony_ci <70 IRQ_TYPE_LEVEL_HIGH 7>; 578c2ecf20Sopenharmony_ci interrupt-controller; 588c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 598c2ecf20Sopenharmony_ci gpio-controller; 608c2ecf20Sopenharmony_ci #gpio-cells = <2>; 618c2ecf20Sopenharmony_ci clocks = <&pioA_clk>; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci pinctrl_i2c0_default: i2c0_default { 648c2ecf20Sopenharmony_ci pinmux = <PIN_PD21__TWD0>, 658c2ecf20Sopenharmony_ci <PIN_PD22__TWCK0>; 668c2ecf20Sopenharmony_ci bias-disable; 678c2ecf20Sopenharmony_ci }; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci pinctrl_led_gpio_default: led_gpio_default { 708c2ecf20Sopenharmony_ci pinmux = <PIN_PB0>, 718c2ecf20Sopenharmony_ci <PIN_PB5>; 728c2ecf20Sopenharmony_ci bias-pull-up; 738c2ecf20Sopenharmony_ci atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>; 748c2ecf20Sopenharmony_ci }; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci pinctrl_sdmmc1_default: sdmmc1_default { 778c2ecf20Sopenharmony_ci cmd_data { 788c2ecf20Sopenharmony_ci pinmux = <PIN_PA28__SDMMC1_CMD>, 798c2ecf20Sopenharmony_ci <PIN_PA18__SDMMC1_DAT0>, 808c2ecf20Sopenharmony_ci <PIN_PA19__SDMMC1_DAT1>, 818c2ecf20Sopenharmony_ci <PIN_PA20__SDMMC1_DAT2>, 828c2ecf20Sopenharmony_ci <PIN_PA21__SDMMC1_DAT3>; 838c2ecf20Sopenharmony_ci bias-pull-up; 848c2ecf20Sopenharmony_ci }; 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci ck_cd { 878c2ecf20Sopenharmony_ci pinmux = <PIN_PA22__SDMMC1_CK>, 888c2ecf20Sopenharmony_ci <PIN_PA30__SDMMC1_CD>; 898c2ecf20Sopenharmony_ci bias-disable; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci ... 938c2ecf20Sopenharmony_ci }; 948c2ecf20Sopenharmony_ci}; 958c2ecf20Sopenharmony_ci... 96