1*677a6248STony Lindgren# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*677a6248STony Lindgren%YAML 1.2 3*677a6248STony Lindgren--- 4*677a6248STony Lindgren$id: http://devicetree.org/schemas/pinctrl/pinctrl-single.yaml# 5*677a6248STony Lindgren$schema: http://devicetree.org/meta-schemas/core.yaml# 6*677a6248STony Lindgren 7*677a6248STony Lindgrentitle: Generic Pin Controller with a Single Register for One or More Pins 8*677a6248STony Lindgren 9*677a6248STony Lindgrenmaintainers: 10*677a6248STony Lindgren - Tony Lindgren <tony@atomide.com> 11*677a6248STony Lindgren 12*677a6248STony Lindgrendescription: 13*677a6248STony Lindgren Some pin controller devices use a single register for one or more pins. The 14*677a6248STony Lindgren range of pin control registers can vary from one to many for each controller 15*677a6248STony Lindgren instance. Some SoCs from Altera, Broadcom, HiSilicon, Ralink, and TI have this 16*677a6248STony Lindgren kind of pin controller instances. 17*677a6248STony Lindgren 18*677a6248STony Lindgrenproperties: 19*677a6248STony Lindgren compatible: 20*677a6248STony Lindgren oneOf: 21*677a6248STony Lindgren - enum: 22*677a6248STony Lindgren - pinctrl-single 23*677a6248STony Lindgren - pinconf-single 24*677a6248STony Lindgren - items: 25*677a6248STony Lindgren - enum: 26*677a6248STony Lindgren - ti,am437-padconf 27*677a6248STony Lindgren - ti,dra7-padconf 28*677a6248STony Lindgren - ti,omap2420-padconf 29*677a6248STony Lindgren - ti,omap2430-padconf 30*677a6248STony Lindgren - ti,omap3-padconf 31*677a6248STony Lindgren - ti,omap4-padconf 32*677a6248STony Lindgren - ti,omap5-padconf 33*677a6248STony Lindgren - const: pinctrl-single 34*677a6248STony Lindgren 35*677a6248STony Lindgren reg: 36*677a6248STony Lindgren maxItems: 1 37*677a6248STony Lindgren 38*677a6248STony Lindgren interrupt-controller: true 39*677a6248STony Lindgren 40*677a6248STony Lindgren '#interrupt-cells': 41*677a6248STony Lindgren const: 1 42*677a6248STony Lindgren 43*677a6248STony Lindgren '#address-cells': 44*677a6248STony Lindgren const: 1 45*677a6248STony Lindgren 46*677a6248STony Lindgren '#size-cells': 47*677a6248STony Lindgren const: 0 48*677a6248STony Lindgren 49*677a6248STony Lindgren '#pinctrl-cells': 50*677a6248STony Lindgren description: 51*677a6248STony Lindgren Number of cells. Usually 2, consisting of register offset, pin configuration 52*677a6248STony Lindgren value, and pinmux mode. Some controllers may use 1 for just offset and value. 53*677a6248STony Lindgren enum: [ 1, 2 ] 54*677a6248STony Lindgren 55*677a6248STony Lindgren pinctrl-single,bit-per-mux: 56*677a6248STony Lindgren description: Optional flag to indicate register controls more than one pin 57*677a6248STony Lindgren type: boolean 58*677a6248STony Lindgren 59*677a6248STony Lindgren pinctrl-single,function-mask: 60*677a6248STony Lindgren description: Mask of the allowed register bits 61*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32 62*677a6248STony Lindgren 63*677a6248STony Lindgren pinctrl-single,function-off: 64*677a6248STony Lindgren description: Optional function off mode for disabled state 65*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32 66*677a6248STony Lindgren 67*677a6248STony Lindgren pinctrl-single,register-width: 68*677a6248STony Lindgren description: Width of pin specific bits in the register 69*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32 70*677a6248STony Lindgren enum: [ 8, 16, 32 ] 71*677a6248STony Lindgren 72*677a6248STony Lindgren pinctrl-single,gpio-range: 73*677a6248STony Lindgren description: Optional list of pin base, nr pins & gpio function 74*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/phandle-array 75*677a6248STony Lindgren items: 76*677a6248STony Lindgren - items: 77*677a6248STony Lindgren - description: phandle of a gpio-range node 78*677a6248STony Lindgren - description: pin base 79*677a6248STony Lindgren - description: number of pins 80*677a6248STony Lindgren - description: gpio function 81*677a6248STony Lindgren 82*677a6248STony Lindgren '#gpio-range-cells': 83*677a6248STony Lindgren description: No longer needed, may exist in older files for gpio-ranges 84*677a6248STony Lindgren deprecated: true 85*677a6248STony Lindgren const: 3 86*677a6248STony Lindgren 87*677a6248STony Lindgren gpio-range: 88*677a6248STony Lindgren description: Optional node for gpio range cells 89*677a6248STony Lindgren type: object 90*677a6248STony Lindgren additionalProperties: false 91*677a6248STony Lindgren properties: 92*677a6248STony Lindgren '#pinctrl-single,gpio-range-cells': 93*677a6248STony Lindgren description: Number of gpio range cells 94*677a6248STony Lindgren const: 3 95*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32 96*677a6248STony Lindgren 97*677a6248STony LindgrenpatternProperties: 98*677a6248STony Lindgren '-pins(-[0-9]+)?$|-pin$': 99*677a6248STony Lindgren description: 100*677a6248STony Lindgren Pin group node name using naming ending in -pins followed by an optional 101*677a6248STony Lindgren instance number 102*677a6248STony Lindgren type: object 103*677a6248STony Lindgren additionalProperties: false 104*677a6248STony Lindgren 105*677a6248STony Lindgren properties: 106*677a6248STony Lindgren pinctrl-single,pins: 107*677a6248STony Lindgren description: 108*677a6248STony Lindgren Array of pins as described in pinmux-node.yaml for pinctrl-pin-array 109*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 110*677a6248STony Lindgren 111*677a6248STony Lindgren pinctrl-single,bits: 112*677a6248STony Lindgren description: Register bit configuration for pinctrl-single,bit-per-mux 113*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 114*677a6248STony Lindgren items: 115*677a6248STony Lindgren - description: register offset 116*677a6248STony Lindgren - description: value 117*677a6248STony Lindgren - description: pin bitmask in the register 118*677a6248STony Lindgren 119*677a6248STony Lindgren pinctrl-single,bias-pullup: 120*677a6248STony Lindgren description: Optional bias pull up configuration 121*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 122*677a6248STony Lindgren items: 123*677a6248STony Lindgren - description: input 124*677a6248STony Lindgren - description: enabled pull up bits 125*677a6248STony Lindgren - description: disabled pull up bits 126*677a6248STony Lindgren - description: bias pull up mask 127*677a6248STony Lindgren 128*677a6248STony Lindgren pinctrl-single,bias-pulldown: 129*677a6248STony Lindgren description: Optional bias pull down configuration 130*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 131*677a6248STony Lindgren items: 132*677a6248STony Lindgren - description: input 133*677a6248STony Lindgren - description: enabled pull down bits 134*677a6248STony Lindgren - description: disabled pull down bits 135*677a6248STony Lindgren - description: bias pull down mask 136*677a6248STony Lindgren 137*677a6248STony Lindgren pinctrl-single,drive-strength: 138*677a6248STony Lindgren description: Optional drive strength configuration 139*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 140*677a6248STony Lindgren items: 141*677a6248STony Lindgren - description: drive strength current 142*677a6248STony Lindgren - description: drive strength mask 143*677a6248STony Lindgren 144*677a6248STony Lindgren pinctrl-single,input-schmitt: 145*677a6248STony Lindgren description: Optional input schmitt configuration 146*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 147*677a6248STony Lindgren items: 148*677a6248STony Lindgren - description: input 149*677a6248STony Lindgren - description: enable bits 150*677a6248STony Lindgren - description: disable bits 151*677a6248STony Lindgren - description: input schmitt mask 152*677a6248STony Lindgren 153*677a6248STony Lindgren pinctrl-single,low-power-mode: 154*677a6248STony Lindgren description: Optional low power mode configuration 155*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 156*677a6248STony Lindgren items: 157*677a6248STony Lindgren - description: low power mode value 158*677a6248STony Lindgren - description: low power mode mask 159*677a6248STony Lindgren 160*677a6248STony Lindgren pinctrl-single,slew-rate: 161*677a6248STony Lindgren description: Optional slew rate configuration 162*677a6248STony Lindgren $ref: /schemas/types.yaml#/definitions/uint32-array 163*677a6248STony Lindgren items: 164*677a6248STony Lindgren - description: slew rate 165*677a6248STony Lindgren - description: slew rate mask 166*677a6248STony Lindgren 167*677a6248STony LindgrenallOf: 168*677a6248STony Lindgren - $ref: pinctrl.yaml# 169*677a6248STony Lindgren 170*677a6248STony Lindgrenrequired: 171*677a6248STony Lindgren - compatible 172*677a6248STony Lindgren - reg 173*677a6248STony Lindgren - pinctrl-single,register-width 174*677a6248STony Lindgren 175*677a6248STony LindgrenadditionalProperties: false 176*677a6248STony Lindgren 177*677a6248STony Lindgrenexamples: 178*677a6248STony Lindgren - | 179*677a6248STony Lindgren soc { 180*677a6248STony Lindgren #address-cells = <1>; 181*677a6248STony Lindgren #size-cells = <1>; 182*677a6248STony Lindgren 183*677a6248STony Lindgren pinmux@4a100040 { 184*677a6248STony Lindgren compatible = "pinctrl-single"; 185*677a6248STony Lindgren reg = <0x4a100040 0x0196>; 186*677a6248STony Lindgren #address-cells = <1>; 187*677a6248STony Lindgren #size-cells = <0>; 188*677a6248STony Lindgren #pinctrl-cells = <2>; 189*677a6248STony Lindgren #interrupt-cells = <1>; 190*677a6248STony Lindgren interrupt-controller; 191*677a6248STony Lindgren pinctrl-single,register-width = <16>; 192*677a6248STony Lindgren pinctrl-single,function-mask = <0xffff>; 193*677a6248STony Lindgren pinctrl-single,gpio-range = <&range 0 3 0>; 194*677a6248STony Lindgren range: gpio-range { 195*677a6248STony Lindgren #pinctrl-single,gpio-range-cells = <3>; 196*677a6248STony Lindgren }; 197*677a6248STony Lindgren 198*677a6248STony Lindgren uart2-pins { 199*677a6248STony Lindgren pinctrl-single,pins = 200*677a6248STony Lindgren <0xd8 0x118>, 201*677a6248STony Lindgren <0xda 0>, 202*677a6248STony Lindgren <0xdc 0x118>, 203*677a6248STony Lindgren <0xde 0>; 204*677a6248STony Lindgren }; 205*677a6248STony Lindgren }; 206*677a6248STony Lindgren }; 207