162306a36Sopenharmony_ci* Microchip PIC32 Pin Controller
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciPlease refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and
462306a36Sopenharmony_ci../interrupt-controller/interrupts.txt for generic information regarding
562306a36Sopenharmony_cipin controller, GPIO, and interrupt bindings.
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciPIC32 'pin configuration node' is a node of a group of pins which can be
862306a36Sopenharmony_ciused for a specific device or function. This node represents configurations of
962306a36Sopenharmony_cipins, optional function, and optional mux related configuration.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciRequired properties for pin controller node:
1262306a36Sopenharmony_ci - compatible: "microchip,pic32mada-pinctrl"
1362306a36Sopenharmony_ci - reg: Address range of the pinctrl registers.
1462306a36Sopenharmony_ci - clocks: Clock specifier (see clock bindings for details)
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciRequired properties for pin configuration sub-nodes:
1762306a36Sopenharmony_ci - pins: List of pins to which the configuration applies.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciOptional properties for pin configuration sub-nodes:
2062306a36Sopenharmony_ci----------------------------------------------------
2162306a36Sopenharmony_ci - function: Mux function for the specified pins.
2262306a36Sopenharmony_ci - bias-pull-up: Enable weak pull-up.
2362306a36Sopenharmony_ci - bias-pull-down: Enable weak pull-down.
2462306a36Sopenharmony_ci - input-enable: Set the pin as an input.
2562306a36Sopenharmony_ci - output-low: Set the pin as an output level low.
2662306a36Sopenharmony_ci - output-high: Set the pin as an output level high.
2762306a36Sopenharmony_ci - microchip,digital: Enable digital I/O.
2862306a36Sopenharmony_ci - microchip,analog: Enable analog I/O.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciExample:
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cipic32_pinctrl: pinctrl@1f801400{
3362306a36Sopenharmony_ci	#address-cells = <1>;
3462306a36Sopenharmony_ci	#size-cells = <1>;
3562306a36Sopenharmony_ci	compatible = "microchip,pic32mzda-pinctrl";
3662306a36Sopenharmony_ci	reg = <0x1f801400 0x400>;
3762306a36Sopenharmony_ci	clocks = <&rootclk PB1CLK>;
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	pinctrl_uart2: pinctrl_uart2 {
4062306a36Sopenharmony_ci		uart2-tx {
4162306a36Sopenharmony_ci			pins = "G9";
4262306a36Sopenharmony_ci			function = "U2TX";
4362306a36Sopenharmony_ci			microchip,digital;
4462306a36Sopenharmony_ci			output-low;
4562306a36Sopenharmony_ci		};
4662306a36Sopenharmony_ci		uart2-rx {
4762306a36Sopenharmony_ci			pins = "B0";
4862306a36Sopenharmony_ci			function = "U2RX";
4962306a36Sopenharmony_ci			microchip,digital;
5062306a36Sopenharmony_ci			input-enable;
5162306a36Sopenharmony_ci		};
5262306a36Sopenharmony_ci	};
5362306a36Sopenharmony_ci};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciuart2: serial@1f822200 {
5662306a36Sopenharmony_ci	compatible = "microchip,pic32mzda-uart";
5762306a36Sopenharmony_ci	reg = <0x1f822200 0x50>;
5862306a36Sopenharmony_ci	pinctrl-names = "default";
5962306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart2>;
6062306a36Sopenharmony_ci};
61