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