1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pinctrl/atmel,at91rm9200-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Microchip PIO3 Pinmux Controller
10 - Manikandan Muralidharan <manikandan.m@microchip.com>
13 The AT91 Pinmux Controller, enables the IC to share one PAD to several
14 functional blocks. The sharing is done by multiplexing the PAD input/output
15 signals. For each PAD there are up to 8 muxing options (called periph modes).
16 Since different modules require different PAD settings (like pull up, keeper,
17 etc) the controller controls also the PAD settings parameters.
24 - atmel,at91rm9200-pinctrl
25 - atmel,at91sam9x5-pinctrl
26 - atmel,sama5d3-pinctrl
27 - microchip,sam9x60-pinctrl
31 - microchip,sam9x7-pinctrl
32 - const: microchip,sam9x60-pinctrl
44 $ref: /schemas/types.yaml#/definitions/uint32-matrix
46 Array of mask (periph per bank) to describe if a pin can be
47 configured in this periph mode. All the periph and bank need to
50 #How to create such array:
52 Each column will represent the possible peripheral of the pinctrl
53 Each line will represent a pio bank
58 Peripheral: 2 ( A and B)
62 0xffffffff 0xffc00c3b # pioA
63 0xffffffff 0x7fff3ccf # pioB
64 0xffffffff 0x007fffff # pioC
66 For each peripheral/bank we will describe in a u32 if a pin can be
67 configured in it by putting 1 to the pin bit (1 << pin)
69 Let's take the pioA on peripheral B whose value is 0xffc00c3b
70 From the datasheet Table 10-2.
106 - $ref: pinctrl.yaml#
117 $ref: /schemas/gpio/atmel,at91rm9200-gpio.yaml
118 unevaluatedProperties: false
120 additionalProperties:
122 additionalProperties:
124 additionalProperties: false
128 $ref: /schemas/types.yaml#/definitions/uint32-matrix
130 Each entry consists of 4 integers and represents the pins
131 mux and config setting.The format is
132 atmel,pins = <PIN_BANK PIN_BANK_NUM PERIPH CONFIG>.
133 Supported pin number and mux varies for different SoCs, and
134 are defined in <include/dt-bindings/pinctrl/at91.h>.
148 #include <dt-bindings/clock/at91.h>
149 #include <dt-bindings/interrupt-controller/irq.h>
150 #include <dt-bindings/pinctrl/at91.h>
153 #address-cells = <1>;
155 compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
156 ranges = <0xfffff400 0xfffff400 0x600>;
160 0xffffffff 0xffc00c3b /* pioA */
161 0xffffffff 0x7fff3ccf /* pioB */
162 0xffffffff 0x007fffff /* pioC */
166 pinctrl_dbgu: dbgu-0 {
168 <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
169 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
173 pioA: gpio@fffff400 {
174 compatible = "atmel,at91rm9200-gpio";
175 reg = <0xfffff400 0x200>;
176 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
179 interrupt-controller;
180 #interrupt-cells = <2>;
181 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;