1*256a3f24SWenyou Yang* Atmel PIO4 Controller 2*256a3f24SWenyou Yang 3*256a3f24SWenyou YangThe Atmel PIO4 controller is used to select the function of a pin and to 4*256a3f24SWenyou Yangconfigure it. 5*256a3f24SWenyou Yang 6*256a3f24SWenyou YangRequired properties: 7*256a3f24SWenyou Yang- compatible: "atmel,sama5d2-pinctrl". 8*256a3f24SWenyou Yang- reg: base address and length of the PIO controller. 9*256a3f24SWenyou Yang 10*256a3f24SWenyou YangPlease refer to pinctrl-bindings.txt in this directory for details of the 11*256a3f24SWenyou Yangcommon pinctrl bindings used by client devices. 12*256a3f24SWenyou Yang 13*256a3f24SWenyou YangSubnode format 14*256a3f24SWenyou YangEach node (or subnode) will list the pins it needs and how to configured these 15*256a3f24SWenyou Yangpins. 16*256a3f24SWenyou Yang 17*256a3f24SWenyou Yang node { 18*256a3f24SWenyou Yang pinmux = <PIN_NUMBER_PINMUX>; 19*256a3f24SWenyou Yang GENERIC_PINCONFIG; 20*256a3f24SWenyou Yang }; 21*256a3f24SWenyou Yang 22*256a3f24SWenyou YangRequired properties: 23*256a3f24SWenyou Yang- pinmux: integer array. Each integer represents a pin number plus mux and 24*256a3f24SWenyou Yangioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the 25*256a3f24SWenyou Yangright representation of the pin. 26*256a3f24SWenyou Yang 27*256a3f24SWenyou YangOptional properties: 28*256a3f24SWenyou Yang- GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable, 29*256a3f24SWenyou Yangbias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable, 30*256a3f24SWenyou Yanginput-debounce. 31*256a3f24SWenyou Yang 32*256a3f24SWenyou YangExample: 33*256a3f24SWenyou Yang 34*256a3f24SWenyou Yang#include <sama5d2-pinfunc.h> 35*256a3f24SWenyou Yang 36*256a3f24SWenyou Yang... 37*256a3f24SWenyou Yang{ 38*256a3f24SWenyou Yang spi0: spi@f8000000 { 39*256a3f24SWenyou Yang cs-gpios = <&pioA 17 0>, <0>, <0>, <0>; 40*256a3f24SWenyou Yang pinctrl-names = "default"; 41*256a3f24SWenyou Yang pinctrl-0 = <&pinctrl_spi0_default>; 42*256a3f24SWenyou Yang status = "okay"; 43*256a3f24SWenyou Yang 44*256a3f24SWenyou Yang spi_flash@0 { 45*256a3f24SWenyou Yang compatible = "spi-flash"; 46*256a3f24SWenyou Yang reg = <0>; 47*256a3f24SWenyou Yang spi-max-frequency = <50000000>; 48*256a3f24SWenyou Yang }; 49*256a3f24SWenyou Yang }; 50*256a3f24SWenyou Yang 51*256a3f24SWenyou Yang ... 52*256a3f24SWenyou Yang 53*256a3f24SWenyou Yang pioA: pinctrl@fc038000 { 54*256a3f24SWenyou Yang compatible = "atmel,sama5d2-pinctrl"; 55*256a3f24SWenyou Yang reg = <0xfc038000 0x600>; 56*256a3f24SWenyou Yang 57*256a3f24SWenyou Yang pinctrl_spi0_default: spi0_default { 58*256a3f24SWenyou Yang pinmux = <PIN_PA14__SPI0_SPCK>, 59*256a3f24SWenyou Yang <PIN_PA15__SPI0_MOSI>, 60*256a3f24SWenyou Yang <PIN_PA16__SPI0_MISO>; 61*256a3f24SWenyou Yang bias-disable; 62*256a3f24SWenyou Yang }; 63*256a3f24SWenyou Yang ... 64*256a3f24SWenyou Yang }; 65*256a3f24SWenyou Yang}; 66*256a3f24SWenyou Yang... 67