Commit | Line | Data |
---|---|---|
56d79422 LD |
1 | * Atmel PIO4 Controller |
2 | ||
3 | The Atmel PIO4 controller is used to select the function of a pin and to | |
4 | configure it. | |
5 | ||
6 | Required 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 | ||
15 | Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for | |
16 | a general description of GPIO and interrupt bindings. | |
17 | ||
18 | Please refer to pinctrl-bindings.txt in this directory for details of the | |
19 | common pinctrl bindings used by client devices. | |
20 | ||
21 | Subnode format | |
22 | Each node (or subnode) will list the pins it needs and how to configured these | |
23 | pins. | |
24 | ||
25 | node { | |
26 | pinmux = <PIN_NUMBER_PINMUX>; | |
27 | GENERIC_PINCONFIG; | |
28 | }; | |
29 | ||
30 | Required properties: | |
31 | - pinmux: integer array. Each integer represents a pin number plus mux and | |
32 | ioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the | |
33 | right representation of the pin. | |
34 | ||
35 | Optional properties: | |
36 | - GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable, | |
37 | bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable, | |
38 | input-debounce, output-low, output-high. | |
39 | ||
40 | Example: | |
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 | ... |