xref: /openbmc/u-boot/doc/device-tree-bindings/pinctrl/atmel,at91-pio4-pinctrl.txt (revision 0fcb9f07a1d086fc6951c08d2fc1cf6048bd54e2)
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