# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/microchip,pic32mzda-pinctrl.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Microchip PIC32 Pin Controller maintainers: - Linus Walleij description: PIC32 pin configuration node is a node of a group of pins which can be used for a specific device or function. This node represents configurations of pins, optional function, and optional mux related configuration. properties: compatible: const: microchip,pic32mzda-pinctrl reg: maxItems: 1 clocks: maxItems: 1 $defs: pin-node: type: object allOf: - $ref: /schemas/pinctrl/pincfg-node.yaml# - $ref: /schemas/pinctrl/pinmux-node.yaml# properties: pins: description: List of pins to which the configuration applies. items: type: string minItems: 1 function: true bias-pull-up: true bias-pull-down: true input-enable: true output-low: true output-high: true microchip,digital: description: Enable digital I/O. type: boolean microchip,analog: description: Enable analog I/O. type: boolean required: - pins unevaluatedProperties: false additionalProperties: oneOf: - additionalProperties: $ref: '#/$defs/pin-node' - $ref: '#/$defs/pin-node' required: - compatible - reg - clocks examples: - | #include #include pic32_pinctrl: pinctrl@1f801400 { compatible = "microchip,pic32mzda-pinctrl"; reg = <0x1f801400 0x400>; clocks = <&rootclk PB1CLK>; pinctrl_uart2: pinctrl_uart2 { uart2-tx { pins = "G9"; function = "U2TX"; microchip,digital; output-low; }; uart2-rx { pins = "B0"; function = "U2RX"; microchip,digital; input-enable; }; }; }; uart2: serial@1f822200 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822200 0x50>; interrupts = <145 IRQ_TYPE_LEVEL_HIGH>, <146 IRQ_TYPE_LEVEL_HIGH>, <147 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2>; };