162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/pinctrl-single.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Generic Pin Controller with a Single Register for One or More Pins 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Tony Lindgren <tony@atomide.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci Some pin controller devices use a single register for one or more pins. The 1462306a36Sopenharmony_ci range of pin control registers can vary from one to many for each controller 1562306a36Sopenharmony_ci instance. Some SoCs from Altera, Broadcom, HiSilicon, Ralink, and TI have this 1662306a36Sopenharmony_ci kind of pin controller instances. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciproperties: 1962306a36Sopenharmony_ci compatible: 2062306a36Sopenharmony_ci oneOf: 2162306a36Sopenharmony_ci - enum: 2262306a36Sopenharmony_ci - pinctrl-single 2362306a36Sopenharmony_ci - pinconf-single 2462306a36Sopenharmony_ci - items: 2562306a36Sopenharmony_ci - enum: 2662306a36Sopenharmony_ci - ti,am437-padconf 2762306a36Sopenharmony_ci - ti,am654-padconf 2862306a36Sopenharmony_ci - ti,dra7-padconf 2962306a36Sopenharmony_ci - ti,omap2420-padconf 3062306a36Sopenharmony_ci - ti,omap2430-padconf 3162306a36Sopenharmony_ci - ti,omap3-padconf 3262306a36Sopenharmony_ci - ti,omap4-padconf 3362306a36Sopenharmony_ci - ti,omap5-padconf 3462306a36Sopenharmony_ci - const: pinctrl-single 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci reg: 3762306a36Sopenharmony_ci maxItems: 1 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci interrupt-controller: true 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci '#interrupt-cells': 4262306a36Sopenharmony_ci const: 1 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci '#address-cells': 4562306a36Sopenharmony_ci const: 1 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci '#size-cells': 4862306a36Sopenharmony_ci const: 0 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci '#pinctrl-cells': 5162306a36Sopenharmony_ci description: 5262306a36Sopenharmony_ci Number of cells. Usually 2, consisting of register offset, pin configuration 5362306a36Sopenharmony_ci value, and pinmux mode. Some controllers may use 1 for just offset and value. 5462306a36Sopenharmony_ci enum: [ 1, 2 ] 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci pinctrl-single,bit-per-mux: 5762306a36Sopenharmony_ci description: Optional flag to indicate register controls more than one pin 5862306a36Sopenharmony_ci type: boolean 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci pinctrl-single,function-mask: 6162306a36Sopenharmony_ci description: Mask of the allowed register bits 6262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci pinctrl-single,function-off: 6562306a36Sopenharmony_ci description: Optional function off mode for disabled state 6662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci pinctrl-single,register-width: 6962306a36Sopenharmony_ci description: Width of pin specific bits in the register 7062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7162306a36Sopenharmony_ci enum: [ 8, 16, 32 ] 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci pinctrl-single,gpio-range: 7462306a36Sopenharmony_ci description: Optional list of pin base, nr pins & gpio function 7562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle-array 7662306a36Sopenharmony_ci items: 7762306a36Sopenharmony_ci - items: 7862306a36Sopenharmony_ci - description: phandle of a gpio-range node 7962306a36Sopenharmony_ci - description: pin base 8062306a36Sopenharmony_ci - description: number of pins 8162306a36Sopenharmony_ci - description: gpio function 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci '#gpio-range-cells': 8462306a36Sopenharmony_ci description: No longer needed, may exist in older files for gpio-ranges 8562306a36Sopenharmony_ci deprecated: true 8662306a36Sopenharmony_ci const: 3 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci gpio-range: 8962306a36Sopenharmony_ci description: Optional node for gpio range cells 9062306a36Sopenharmony_ci type: object 9162306a36Sopenharmony_ci additionalProperties: false 9262306a36Sopenharmony_ci properties: 9362306a36Sopenharmony_ci '#pinctrl-single,gpio-range-cells': 9462306a36Sopenharmony_ci description: Number of gpio range cells 9562306a36Sopenharmony_ci const: 3 9662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_cipatternProperties: 9962306a36Sopenharmony_ci '-pins(-[0-9]+)?$|-pin$': 10062306a36Sopenharmony_ci description: 10162306a36Sopenharmony_ci Pin group node name using naming ending in -pins followed by an optional 10262306a36Sopenharmony_ci instance number 10362306a36Sopenharmony_ci type: object 10462306a36Sopenharmony_ci additionalProperties: false 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci properties: 10762306a36Sopenharmony_ci pinctrl-single,pins: 10862306a36Sopenharmony_ci description: 10962306a36Sopenharmony_ci Array of pins as described in pinmux-node.yaml for pinctrl-pin-array 11062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci pinctrl-single,bits: 11362306a36Sopenharmony_ci description: Register bit configuration for pinctrl-single,bit-per-mux 11462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 11562306a36Sopenharmony_ci items: 11662306a36Sopenharmony_ci - description: register offset 11762306a36Sopenharmony_ci - description: value 11862306a36Sopenharmony_ci - description: pin bitmask in the register 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci pinctrl-single,bias-pullup: 12162306a36Sopenharmony_ci description: Optional bias pull up configuration 12262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 12362306a36Sopenharmony_ci items: 12462306a36Sopenharmony_ci - description: input 12562306a36Sopenharmony_ci - description: enabled pull up bits 12662306a36Sopenharmony_ci - description: disabled pull up bits 12762306a36Sopenharmony_ci - description: bias pull up mask 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci pinctrl-single,bias-pulldown: 13062306a36Sopenharmony_ci description: Optional bias pull down configuration 13162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 13262306a36Sopenharmony_ci items: 13362306a36Sopenharmony_ci - description: input 13462306a36Sopenharmony_ci - description: enabled pull down bits 13562306a36Sopenharmony_ci - description: disabled pull down bits 13662306a36Sopenharmony_ci - description: bias pull down mask 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci pinctrl-single,drive-strength: 13962306a36Sopenharmony_ci description: Optional drive strength configuration 14062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 14162306a36Sopenharmony_ci items: 14262306a36Sopenharmony_ci - description: drive strength current 14362306a36Sopenharmony_ci - description: drive strength mask 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci pinctrl-single,input-schmitt: 14662306a36Sopenharmony_ci description: Optional input schmitt configuration 14762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 14862306a36Sopenharmony_ci items: 14962306a36Sopenharmony_ci - description: input 15062306a36Sopenharmony_ci - description: enable bits 15162306a36Sopenharmony_ci - description: disable bits 15262306a36Sopenharmony_ci - description: input schmitt mask 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci pinctrl-single,low-power-mode: 15562306a36Sopenharmony_ci description: Optional low power mode configuration 15662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 15762306a36Sopenharmony_ci items: 15862306a36Sopenharmony_ci - description: low power mode value 15962306a36Sopenharmony_ci - description: low power mode mask 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci pinctrl-single,slew-rate: 16262306a36Sopenharmony_ci description: Optional slew rate configuration 16362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 16462306a36Sopenharmony_ci items: 16562306a36Sopenharmony_ci - description: slew rate 16662306a36Sopenharmony_ci - description: slew rate mask 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciallOf: 16962306a36Sopenharmony_ci - $ref: pinctrl.yaml# 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_cirequired: 17262306a36Sopenharmony_ci - compatible 17362306a36Sopenharmony_ci - reg 17462306a36Sopenharmony_ci - pinctrl-single,register-width 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciadditionalProperties: false 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ciexamples: 17962306a36Sopenharmony_ci - | 18062306a36Sopenharmony_ci soc { 18162306a36Sopenharmony_ci #address-cells = <1>; 18262306a36Sopenharmony_ci #size-cells = <1>; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci pinmux@4a100040 { 18562306a36Sopenharmony_ci compatible = "pinctrl-single"; 18662306a36Sopenharmony_ci reg = <0x4a100040 0x0196>; 18762306a36Sopenharmony_ci #address-cells = <1>; 18862306a36Sopenharmony_ci #size-cells = <0>; 18962306a36Sopenharmony_ci #pinctrl-cells = <2>; 19062306a36Sopenharmony_ci #interrupt-cells = <1>; 19162306a36Sopenharmony_ci interrupt-controller; 19262306a36Sopenharmony_ci pinctrl-single,register-width = <16>; 19362306a36Sopenharmony_ci pinctrl-single,function-mask = <0xffff>; 19462306a36Sopenharmony_ci pinctrl-single,gpio-range = <&range 0 3 0>; 19562306a36Sopenharmony_ci range: gpio-range { 19662306a36Sopenharmony_ci #pinctrl-single,gpio-range-cells = <3>; 19762306a36Sopenharmony_ci }; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci uart2-pins { 20062306a36Sopenharmony_ci pinctrl-single,pins = 20162306a36Sopenharmony_ci <0xd8 0x118>, 20262306a36Sopenharmony_ci <0xda 0>, 20362306a36Sopenharmony_ci <0xdc 0x118>, 20462306a36Sopenharmony_ci <0xde 0>; 20562306a36Sopenharmony_ci }; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci }; 208