18c2ecf20Sopenharmony_ci* Microchip PIC32 Pin Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and
48c2ecf20Sopenharmony_ci../interrupt-controller/interrupts.txt for generic information regarding
58c2ecf20Sopenharmony_cipin controller, GPIO, and interrupt bindings.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciPIC32 'pin configuration node' is a node of a group of pins which can be
88c2ecf20Sopenharmony_ciused for a specific device or function. This node represents configurations of
98c2ecf20Sopenharmony_cipins, optional function, and optional mux related configuration.
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciRequired properties for pin controller node:
128c2ecf20Sopenharmony_ci - compatible: "microchip,pic32mada-pinctrl"
138c2ecf20Sopenharmony_ci - reg: Address range of the pinctrl registers.
148c2ecf20Sopenharmony_ci - clocks: Clock specifier (see clock bindings for details)
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciRequired properties for pin configuration sub-nodes:
178c2ecf20Sopenharmony_ci - pins: List of pins to which the configuration applies.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciOptional properties for pin configuration sub-nodes:
208c2ecf20Sopenharmony_ci----------------------------------------------------
218c2ecf20Sopenharmony_ci - function: Mux function for the specified pins.
228c2ecf20Sopenharmony_ci - bias-pull-up: Enable weak pull-up.
238c2ecf20Sopenharmony_ci - bias-pull-down: Enable weak pull-down.
248c2ecf20Sopenharmony_ci - input-enable: Set the pin as an input.
258c2ecf20Sopenharmony_ci - output-low: Set the pin as an output level low.
268c2ecf20Sopenharmony_ci - output-high: Set the pin as an output level high.
278c2ecf20Sopenharmony_ci - microchip,digital: Enable digital I/O.
288c2ecf20Sopenharmony_ci - microchip,analog: Enable analog I/O.
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciExample:
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_cipic32_pinctrl: pinctrl@1f801400{
338c2ecf20Sopenharmony_ci	#address-cells = <1>;
348c2ecf20Sopenharmony_ci	#size-cells = <1>;
358c2ecf20Sopenharmony_ci	compatible = "microchip,pic32mzda-pinctrl";
368c2ecf20Sopenharmony_ci	reg = <0x1f801400 0x400>;
378c2ecf20Sopenharmony_ci	clocks = <&rootclk PB1CLK>;
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	pinctrl_uart2: pinctrl_uart2 {
408c2ecf20Sopenharmony_ci		uart2-tx {
418c2ecf20Sopenharmony_ci			pins = "G9";
428c2ecf20Sopenharmony_ci			function = "U2TX";
438c2ecf20Sopenharmony_ci			microchip,digital;
448c2ecf20Sopenharmony_ci			output-low;
458c2ecf20Sopenharmony_ci		};
468c2ecf20Sopenharmony_ci		uart2-rx {
478c2ecf20Sopenharmony_ci			pins = "B0";
488c2ecf20Sopenharmony_ci			function = "U2RX";
498c2ecf20Sopenharmony_ci			microchip,digital;
508c2ecf20Sopenharmony_ci			input-enable;
518c2ecf20Sopenharmony_ci		};
528c2ecf20Sopenharmony_ci	};
538c2ecf20Sopenharmony_ci};
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciuart2: serial@1f822200 {
568c2ecf20Sopenharmony_ci	compatible = "microchip,pic32mzda-uart";
578c2ecf20Sopenharmony_ci	reg = <0x1f822200 0x50>;
588c2ecf20Sopenharmony_ci	pinctrl-names = "default";
598c2ecf20Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart2>;
608c2ecf20Sopenharmony_ci};
61