| Renesas RZ/N1 SoC Pinctrl node description. |
| |
| Pin controller node |
| ------------------- |
| Required properties: |
| - compatible: SoC-specific compatible string "renesas,<soc-specific>-pinctrl" |
| followed by "renesas,rzn1-pinctrl" as fallback. The SoC-specific compatible |
| strings must be one of: |
| "renesas,r9a06g032-pinctrl" for RZ/N1D |
| "renesas,r9a06g033-pinctrl" for RZ/N1S |
| - reg: Address base and length of the memory area where the pin controller |
| hardware is mapped to. |
| - clocks: phandle for the clock, see the description of clock-names below. |
| - clock-names: Contains the name of the clock: |
| "bus", the bus clock, sometimes described as pclk, for register accesses. |
| |
| Example: |
| pinctrl: pin-controller@40067000 { |
| compatible = "renesas,r9a06g032-pinctrl", "renesas,rzn1-pinctrl"; |
| reg = <0x40067000 0x1000>, <0x51000000 0x480>; |
| clocks = <&sysctrl R9A06G032_HCLK_PINCONFIG>; |
| clock-names = "bus"; |
| }; |
| |
| Sub-nodes |
| --------- |
| |
| The child nodes of the pin controller node describe a pin multiplexing |
| function. |
| |
| - Pin multiplexing sub-nodes: |
| A pin multiplexing sub-node describes how to configure a set of |
| (or a single) pin in some desired alternate function mode. |
| A single sub-node may define several pin configurations. |
| Please refer to pinctrl-bindings.txt to get to know more on generic |
| pin properties usage. |
| |
| The allowed generic formats for a pin multiplexing sub-node are the |
| following ones: |
| |
| node-1 { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| |
| node-2 { |
| sub-node-1 { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| |
| sub-node-2 { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| |
| ... |
| |
| sub-node-n { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| }; |
| |
| node-3 { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| |
| sub-node-1 { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| |
| ... |
| |
| sub-node-n { |
| pinmux = <PIN_ID_AND_MUX>, <PIN_ID_AND_MUX>, ... ; |
| GENERIC_PINCONFIG; |
| }; |
| }; |
| |
| Use the latter two formats when pins part of the same logical group need to |
| have different generic pin configuration flags applied. Note that the generic |
| pinconfig in node-3 does not apply to the sub-nodes. |
| |
| Client sub-nodes shall refer to pin multiplexing sub-nodes using the phandle |
| of the most external one. |
| |
| Eg. |
| |
| client-1 { |
| ... |
| pinctrl-0 = <&node-1>; |
| ... |
| }; |
| |
| client-2 { |
| ... |
| pinctrl-0 = <&node-2>; |
| ... |
| }; |
| |
| Required properties: |
| - pinmux: |
| integer array representing pin number and pin multiplexing configuration. |
| When a pin has to be configured in alternate function mode, use this |
| property to identify the pin by its global index, and provide its |
| alternate function configuration number along with it. |
| When multiple pins are required to be configured as part of the same |
| alternate function they shall be specified as members of the same |
| argument list of a single "pinmux" property. |
| Integers values in the "pinmux" argument list are assembled as: |
| (PIN | MUX_FUNC << 8) |
| where PIN directly corresponds to the pl_gpio pin number and MUX_FUNC is |
| one of the alternate function identifiers defined in: |
| <include/dt-bindings/pinctrl/rzn1-pinctrl.h> |
| These identifiers collapse the IO Multiplex Configuration Level 1 and |
| Level 2 numbers that are detailed in the hardware reference manual into a |
| single number. The identifiers for Level 2 are simply offset by 10. |
| Additional identifiers are provided to specify the MDIO source peripheral. |
| |
| Optional generic pinconf properties: |
| - bias-disable - disable any pin bias |
| - bias-pull-up - pull up the pin with 50 KOhm |
| - bias-pull-down - pull down the pin with 50 KOhm |
| - bias-high-impedance - high impedance mode |
| - drive-strength - sink or source at most 4, 6, 8 or 12 mA |
| |
| Example: |
| A serial communication interface with a TX output pin and an RX input pin. |
| |
| &pinctrl { |
| pins_uart0: pins_uart0 { |
| pinmux = < |
| RZN1_PINMUX(103, RZN1_FUNC_UART0_I) /* UART0_TXD */ |
| RZN1_PINMUX(104, RZN1_FUNC_UART0_I) /* UART0_RXD */ |
| >; |
| }; |
| }; |
| |
| Example 2: |
| Here we set the pull up on the RXD pin of the UART. |
| |
| &pinctrl { |
| pins_uart0: pins_uart0 { |
| pinmux = <RZN1_PINMUX(103, RZN1_FUNC_UART0_I)>; /* TXD */ |
| |
| pins_uart6_rx { |
| pinmux = <RZN1_PINMUX(104, RZN1_FUNC_UART0_I)>; /* RXD */ |
| bias-pull-up; |
| }; |
| }; |
| }; |