~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/atmel,at91rm9200-pinctrl.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pinctrl/atmel,at91rm9200-pinctrl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Microchip PIO3 Pinmux Controller
  8 
  9 maintainers:
 10   - Manikandan Muralidharan <manikandan.m@microchip.com>
 11 
 12 description:
 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.
 18 
 19 properties:
 20   compatible:
 21     oneOf:
 22       - items:
 23           - enum:
 24               - atmel,at91rm9200-pinctrl
 25               - atmel,at91sam9x5-pinctrl
 26               - atmel,sama5d3-pinctrl
 27               - microchip,sam9x60-pinctrl
 28           - const: simple-mfd
 29       - items:
 30           - enum:
 31               - microchip,sam9x7-pinctrl
 32           - const: microchip,sam9x60-pinctrl
 33           - const: simple-mfd
 34 
 35   '#address-cells':
 36     const: 1
 37 
 38   '#size-cells':
 39     const: 1
 40 
 41   ranges: true
 42 
 43   atmel,mux-mask:
 44     $ref: /schemas/types.yaml#/definitions/uint32-matrix
 45     description: |
 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
 48       be described.
 49 
 50       #How to create such array:
 51 
 52       Each column will represent the possible peripheral of the pinctrl
 53       Each line will represent a pio bank
 54 
 55       #Example:
 56 
 57       In at91sam9260.dtsi,
 58       Peripheral: 2 ( A and B)
 59       Bank: 3 (A, B and C)
 60 
 61       #    A          B
 62       0xffffffff 0xffc00c3b  # pioA
 63       0xffffffff 0x7fff3ccf  # pioB
 64       0xffffffff 0x007fffff  # pioC
 65 
 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)
 68 
 69       Let's take the pioA on peripheral B whose value is 0xffc00c3b
 70       From the datasheet Table 10-2.
 71       Peripheral B
 72       PA0     MCDB0
 73       PA1     MCCDB
 74       PA2
 75       PA3     MCDB3
 76       PA4     MCDB2
 77       PA5     MCDB1
 78       PA6
 79       PA7
 80       PA8
 81       PA9
 82       PA10    ETX2
 83       PA11    ETX3
 84       PA12
 85       PA13
 86       PA14
 87       PA15
 88       PA16
 89       PA17
 90       PA18
 91       PA19
 92       PA20
 93       PA21
 94       PA22    ETXER
 95       PA23    ETX2
 96       PA24    ETX3
 97       PA25    ERX2
 98       PA26    ERX3
 99       PA27    ERXCK
100       PA28    ECRS
101       PA29    ECOL
102       PA30    RXD4
103       PA31    TXD4
104 
105 allOf:
106   - $ref: pinctrl.yaml#
107 
108 required:
109   - compatible
110   - ranges
111   - "#address-cells"
112   - "#size-cells"
113   - atmel,mux-mask
114 
115 patternProperties:
116   'gpio@[0-9a-f]+$':
117     $ref: /schemas/gpio/atmel,at91rm9200-gpio.yaml
118     unevaluatedProperties: false
119 
120 additionalProperties:
121   type: object
122   additionalProperties:
123     type: object
124     additionalProperties: false
125 
126     properties:
127       atmel,pins:
128         $ref: /schemas/types.yaml#/definitions/uint32-matrix
129         description: |
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>.
135           items:
136             items:
137               - description:
138                   Pin bank
139               - description:
140                   Pin bank index
141               - description:
142                   Peripheral function
143               - description:
144                   Pad configuration
145 
146 examples:
147   - |
148      #include <dt-bindings/clock/at91.h>
149      #include <dt-bindings/interrupt-controller/irq.h>
150      #include <dt-bindings/pinctrl/at91.h>
151 
152      pinctrl@fffff400 {
153        #address-cells = <1>;
154        #size-cells = <1>;
155        compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
156        ranges = <0xfffff400 0xfffff400 0x600>;
157 
158        atmel,mux-mask = <
159          /*    A         B     */
160          0xffffffff 0xffc00c3b  /* pioA */
161          0xffffffff 0x7fff3ccf  /* pioB */
162          0xffffffff 0x007fffff  /* pioC */
163          >;
164 
165        dbgu {
166          pinctrl_dbgu: dbgu-0 {
167            atmel,pins =
168              <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
169               AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
170          };
171        };
172 
173        pioA: gpio@fffff400 {
174          compatible = "atmel,at91rm9200-gpio";
175          reg = <0xfffff400 0x200>;
176          interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
177          #gpio-cells = <2>;
178          gpio-controller;
179          interrupt-controller;
180          #interrupt-cells = <2>;
181          clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
182        };
183      };
184 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php