1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/pinctrl/renesas,rzn1-pinctrl.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Renesas RZ/N1 Pin Controller 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Gareth Williams <gareth.williams.jx@renesas.com> 11*4882a593Smuzhiyun - Geert Uytterhoeven <geert+renesas@glider.be> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunproperties: 14*4882a593Smuzhiyun compatible: 15*4882a593Smuzhiyun items: 16*4882a593Smuzhiyun - enum: 17*4882a593Smuzhiyun - renesas,r9a06g032-pinctrl # RZ/N1D 18*4882a593Smuzhiyun - renesas,r9a06g033-pinctrl # RZ/N1S 19*4882a593Smuzhiyun - const: renesas,rzn1-pinctrl # Generic RZ/N1 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun reg: 22*4882a593Smuzhiyun items: 23*4882a593Smuzhiyun - description: GPIO Multiplexing Level1 Register Block 24*4882a593Smuzhiyun - description: GPIO Multiplexing Level2 Register Block 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun clocks: 27*4882a593Smuzhiyun maxItems: 1 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun clock-names: 30*4882a593Smuzhiyun const: bus 31*4882a593Smuzhiyun description: 32*4882a593Smuzhiyun The bus clock, sometimes described as pclk, for register accesses. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunrequired: 35*4882a593Smuzhiyun - compatible 36*4882a593Smuzhiyun - reg 37*4882a593Smuzhiyun - clocks 38*4882a593Smuzhiyun - clock-names 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunadditionalProperties: 41*4882a593Smuzhiyun anyOf: 42*4882a593Smuzhiyun - type: object 43*4882a593Smuzhiyun allOf: 44*4882a593Smuzhiyun - $ref: pincfg-node.yaml# 45*4882a593Smuzhiyun - $ref: pinmux-node.yaml# 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun description: 48*4882a593Smuzhiyun A pin multiplexing sub-node describes how to configure a set of (or a 49*4882a593Smuzhiyun single) pin in some desired alternate function mode. 50*4882a593Smuzhiyun A single sub-node may define several pin configurations. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun properties: 53*4882a593Smuzhiyun pinmux: 54*4882a593Smuzhiyun description: | 55*4882a593Smuzhiyun Integer array representing pin number and pin multiplexing 56*4882a593Smuzhiyun configuration. 57*4882a593Smuzhiyun When a pin has to be configured in alternate function mode, use 58*4882a593Smuzhiyun this property to identify the pin by its global index, and provide 59*4882a593Smuzhiyun its alternate function configuration number along with it. 60*4882a593Smuzhiyun When multiple pins are required to be configured as part of the 61*4882a593Smuzhiyun same alternate function they shall be specified as members of the 62*4882a593Smuzhiyun same argument list of a single "pinmux" property. 63*4882a593Smuzhiyun Integers values in the "pinmux" argument list are assembled as: 64*4882a593Smuzhiyun (PIN | MUX_FUNC << 8) 65*4882a593Smuzhiyun where PIN directly corresponds to the pl_gpio pin number and 66*4882a593Smuzhiyun MUX_FUNC is one of the alternate function identifiers defined in: 67*4882a593Smuzhiyun <include/dt-bindings/pinctrl/rzn1-pinctrl.h> 68*4882a593Smuzhiyun These identifiers collapse the IO Multiplex Configuration Level 1 69*4882a593Smuzhiyun and Level 2 numbers that are detailed in the hardware reference 70*4882a593Smuzhiyun manual into a single number. The identifiers for Level 2 are simply 71*4882a593Smuzhiyun offset by 10. Additional identifiers are provided to specify the 72*4882a593Smuzhiyun MDIO source peripheral. 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun phandle: true 75*4882a593Smuzhiyun bias-disable: true 76*4882a593Smuzhiyun bias-pull-up: 77*4882a593Smuzhiyun description: Pull up the pin with 50 kOhm 78*4882a593Smuzhiyun bias-pull-down: 79*4882a593Smuzhiyun description: Pull down the pin with 50 kOhm 80*4882a593Smuzhiyun bias-high-impedance: true 81*4882a593Smuzhiyun drive-strength: 82*4882a593Smuzhiyun enum: [ 4, 6, 8, 12 ] 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun required: 85*4882a593Smuzhiyun - pinmux 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun additionalProperties: 88*4882a593Smuzhiyun $ref: "#/additionalProperties/anyOf/0" 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun - type: object 91*4882a593Smuzhiyun properties: 92*4882a593Smuzhiyun phandle: true 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun additionalProperties: 95*4882a593Smuzhiyun $ref: "#/additionalProperties/anyOf/0" 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunexamples: 98*4882a593Smuzhiyun - | 99*4882a593Smuzhiyun #include <dt-bindings/clock/r9a06g032-sysctrl.h> 100*4882a593Smuzhiyun #include <dt-bindings/pinctrl/rzn1-pinctrl.h> 101*4882a593Smuzhiyun pinctrl: pinctrl@40067000 { 102*4882a593Smuzhiyun compatible = "renesas,r9a06g032-pinctrl", "renesas,rzn1-pinctrl"; 103*4882a593Smuzhiyun reg = <0x40067000 0x1000>, <0x51000000 0x480>; 104*4882a593Smuzhiyun clocks = <&sysctrl R9A06G032_HCLK_PINCONFIG>; 105*4882a593Smuzhiyun clock-names = "bus"; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun /* 108*4882a593Smuzhiyun * A serial communication interface with a TX output pin and an RX 109*4882a593Smuzhiyun * input pin. 110*4882a593Smuzhiyun */ 111*4882a593Smuzhiyun pins_uart0: pins_uart0 { 112*4882a593Smuzhiyun pinmux = < 113*4882a593Smuzhiyun RZN1_PINMUX(103, RZN1_FUNC_UART0_I) /* UART0_TXD */ 114*4882a593Smuzhiyun RZN1_PINMUX(104, RZN1_FUNC_UART0_I) /* UART0_RXD */ 115*4882a593Smuzhiyun >; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun /* 119*4882a593Smuzhiyun * Set the pull-up on the RXD pin of the UART. 120*4882a593Smuzhiyun */ 121*4882a593Smuzhiyun pins_uart0_alt: pins_uart0_alt { 122*4882a593Smuzhiyun pinmux = <RZN1_PINMUX(103, RZN1_FUNC_UART0_I)>; 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun pins_uart6_rx { 125*4882a593Smuzhiyun pinmux = <RZN1_PINMUX(104, RZN1_FUNC_UART0_I)>; 126*4882a593Smuzhiyun bias-pull-up; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun }; 130