18c2ecf20Sopenharmony_ciAxis ARTPEC-6 Pin Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible: "axis,artpec6-pinctrl".
58c2ecf20Sopenharmony_ci- reg: Should contain the register physical address and length for the pin
68c2ecf20Sopenharmony_ci       controller.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciA pinctrl node should contain at least one subnode representing the pinctrl
98c2ecf20Sopenharmony_cigroups available on the machine. Each subnode will list the mux function
108c2ecf20Sopenharmony_cirequired and what pin group it will use. Each subnode will also configure the
118c2ecf20Sopenharmony_cidrive strength and bias pullup of the pin group. If either of these options is
128c2ecf20Sopenharmony_cinot set, its actual value will be unspecified.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciRequired subnode-properties:
168c2ecf20Sopenharmony_ci- function: Function to mux.
178c2ecf20Sopenharmony_ci- groups: Name of the pin group to use for the function above.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	Available functions and groups (function: group0, group1...):
208c2ecf20Sopenharmony_ci		gpio: cpuclkoutgrp0, udlclkoutgrp0, i2c1grp0, i2c2grp0,
218c2ecf20Sopenharmony_ci		      i2c3grp0, i2s0grp0, i2s1grp0, i2srefclkgrp0, spi0grp0,
228c2ecf20Sopenharmony_ci		      spi1grp0, pciedebuggrp0, uart0grp0, uart0grp1, uart0grp2,
238c2ecf20Sopenharmony_ci		      uart1grp0, uart1grp1, uart2grp0, uart2grp1, uart2grp2,
248c2ecf20Sopenharmony_ci		      uart3grp0, uart4grp0, uart4grp1, uart5grp0, uart5grp1,
258c2ecf20Sopenharmony_ci		      uart5nocts
268c2ecf20Sopenharmony_ci		cpuclkout: cpuclkoutgrp0
278c2ecf20Sopenharmony_ci		udlclkout: udlclkoutgrp0
288c2ecf20Sopenharmony_ci		i2c1: i2c1grp0
298c2ecf20Sopenharmony_ci		i2c2: i2c2grp0
308c2ecf20Sopenharmony_ci		i2c3: i2c3grp0
318c2ecf20Sopenharmony_ci		i2s0: i2s0grp0
328c2ecf20Sopenharmony_ci		i2s1: i2s1grp0
338c2ecf20Sopenharmony_ci		i2srefclk: i2srefclkgrp0
348c2ecf20Sopenharmony_ci		spi0: spi0grp0
358c2ecf20Sopenharmony_ci		spi1: spi1grp0
368c2ecf20Sopenharmony_ci		pciedebug: pciedebuggrp0
378c2ecf20Sopenharmony_ci		uart0: uart0grp0, uart0grp1, uart0grp2
388c2ecf20Sopenharmony_ci		uart1: uart1grp0, uart1grp1
398c2ecf20Sopenharmony_ci		uart2: uart2grp0, uart2grp1, uart2grp2
408c2ecf20Sopenharmony_ci		uart3: uart3grp0
418c2ecf20Sopenharmony_ci		uart4: uart4grp0, uart4grp1
428c2ecf20Sopenharmony_ci		uart5: uart5grp0, uart5grp1, uart5nocts
438c2ecf20Sopenharmony_ci		nand: nandgrp0
448c2ecf20Sopenharmony_ci		sdio0: sdio0grp0
458c2ecf20Sopenharmony_ci		sdio1: sdio1grp0
468c2ecf20Sopenharmony_ci		ethernet: ethernetgrp0
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciOptional subnode-properties (see pinctrl-bindings.txt):
508c2ecf20Sopenharmony_ci- drive-strength: 4, 6, 8, 9 mA.  For SD and NAND pins, this is for 3.3V VCCQ3.
518c2ecf20Sopenharmony_ci- bias-pull-up
528c2ecf20Sopenharmony_ci- bias-disable
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciExamples:
558c2ecf20Sopenharmony_cipinctrl@f801d000 {
568c2ecf20Sopenharmony_ci	compatible = "axis,artpec6-pinctrl";
578c2ecf20Sopenharmony_ci	reg = <0xf801d000 0x400>;
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci	pinctrl_uart0: uart0grp {
608c2ecf20Sopenharmony_ci		function = "uart0";
618c2ecf20Sopenharmony_ci		groups = "uart0grp0";
628c2ecf20Sopenharmony_ci		drive-strength = <4>;
638c2ecf20Sopenharmony_ci		bias-pull-up;
648c2ecf20Sopenharmony_ci	};
658c2ecf20Sopenharmony_ci	pinctrl_uart3: uart3grp {
668c2ecf20Sopenharmony_ci		function = "uart3";
678c2ecf20Sopenharmony_ci		groups = "uart3grp0";
688c2ecf20Sopenharmony_ci	};
698c2ecf20Sopenharmony_ci};
708c2ecf20Sopenharmony_ciuart0: uart@f8036000 {
718c2ecf20Sopenharmony_ci	compatible = "arm,pl011", "arm,primecell";
728c2ecf20Sopenharmony_ci	reg = <0xf8036000 0x1000>;
738c2ecf20Sopenharmony_ci	interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
748c2ecf20Sopenharmony_ci	clocks = <&pll2div24>, <&apb_pclk>;
758c2ecf20Sopenharmony_ci	clock-names = "uart_clk", "apb_pclk";
768c2ecf20Sopenharmony_ci	pinctrl-names = "default";
778c2ecf20Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart0>;
788c2ecf20Sopenharmony_ci};
798c2ecf20Sopenharmony_ciuart3: uart@f8039000 {
808c2ecf20Sopenharmony_ci	compatible = "arm,pl011", "arm,primecell";
818c2ecf20Sopenharmony_ci	reg = <0xf8039000 0x1000>;
828c2ecf20Sopenharmony_ci	interrupts = <0 128 IRQ_TYPE_LEVEL_HIGH>;
838c2ecf20Sopenharmony_ci	clocks = <&pll2div24>, <&apb_pclk>;
848c2ecf20Sopenharmony_ci	clock-names = "uart_clk", "apb_pclk";
858c2ecf20Sopenharmony_ci	pinctrl-names = "default";
868c2ecf20Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart3>;
878c2ecf20Sopenharmony_ci};
88