18c2ecf20Sopenharmony_ci	Binding for Xilinx Zynq Pinctrl
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible: "xlnx,zynq-pinctrl"
58c2ecf20Sopenharmony_ci- syscon: phandle to SLCR
68c2ecf20Sopenharmony_ci- reg: Offset and length of pinctrl space in SLCR
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the
98c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the
108c2ecf20Sopenharmony_ciphrase "pin configuration node".
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciZynq's pin configuration nodes act as a container for an arbitrary number of
138c2ecf20Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a
148c2ecf20Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the
158c2ecf20Sopenharmony_cimux function to select on those pin(s)/group(s), and various pin configuration
168c2ecf20Sopenharmony_ciparameters, such as pull-up, slew rate, etc.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciEach configuration node can consist of multiple nodes describing the pinmux and
198c2ecf20Sopenharmony_cipinconf options. Those nodes can be pinmux nodes or pinconf nodes.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciThe name of each subnode is not important; all subnodes should be enumerated
228c2ecf20Sopenharmony_ciand processed purely based on their content.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciRequired properties for pinmux nodes are:
258c2ecf20Sopenharmony_ci - groups: A list of pinmux groups.
268c2ecf20Sopenharmony_ci - function: The name of a pinmux function to activate for the specified set
278c2ecf20Sopenharmony_ci   of groups.
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciRequired properties for configuration nodes:
308c2ecf20Sopenharmony_ciOne of:
318c2ecf20Sopenharmony_ci - pins: a list of pin names
328c2ecf20Sopenharmony_ci - groups: A list of pinmux groups.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciThe following generic properties as defined in pinctrl-bindings.txt are valid
358c2ecf20Sopenharmony_cito specify in a pinmux subnode:
368c2ecf20Sopenharmony_ci groups, function
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciThe following generic properties as defined in pinctrl-bindings.txt are valid
398c2ecf20Sopenharmony_cito specify in a pinconf subnode:
408c2ecf20Sopenharmony_ci groups, pins, bias-disable, bias-high-impedance, bias-pull-up, slew-rate,
418c2ecf20Sopenharmony_ci low-power-disable, low-power-enable
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci Valid arguments for 'slew-rate' are '0' and '1' to select between slow and fast
448c2ecf20Sopenharmony_ci respectively.
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci Valid values for groups are:
478c2ecf20Sopenharmony_ci   ethernet0_0_grp, ethernet1_0_grp, mdio0_0_grp, mdio1_0_grp,
488c2ecf20Sopenharmony_ci   qspi0_0_grp, qspi1_0_grp, qspi_fbclk, qspi_cs1_grp, spi0_0_grp - spi0_2_grp,
498c2ecf20Sopenharmony_ci   spi0_X_ssY (X=0..2, Y=0..2), spi1_0_grp - spi1_3_grp,
508c2ecf20Sopenharmony_ci   spi1_X_ssY (X=0..3, Y=0..2), sdio0_0_grp - sdio0_2_grp,
518c2ecf20Sopenharmony_ci   sdio1_0_grp - sdio1_3_grp, sdio0_emio_wp, sdio0_emio_cd, sdio1_emio_wp,
528c2ecf20Sopenharmony_ci   sdio1_emio_cd, smc0_nor, smc0_nor_cs1_grp, smc0_nor_addr25_grp, smc0_nand,
538c2ecf20Sopenharmony_ci   can0_0_grp - can0_10_grp, can1_0_grp - can1_11_grp, uart0_0_grp - uart0_10_grp,
548c2ecf20Sopenharmony_ci   uart1_0_grp - uart1_11_grp, i2c0_0_grp - i2c0_10_grp, i2c1_0_grp - i2c1_10_grp,
558c2ecf20Sopenharmony_ci   ttc0_0_grp - ttc0_2_grp, ttc1_0_grp - ttc1_2_grp, swdt0_0_grp - swdt0_4_grp,
568c2ecf20Sopenharmony_ci   gpio0_0_grp - gpio0_53_grp, usb0_0_grp, usb1_0_grp
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci Valid values for pins are:
598c2ecf20Sopenharmony_ci   MIO0 - MIO53
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci Valid values for function are:
628c2ecf20Sopenharmony_ci   ethernet0, ethernet1, mdio0, mdio1, qspi0, qspi1, qspi_fbclk, qspi_cs1,
638c2ecf20Sopenharmony_ci   spi0, spi0_ss, spi1, spi1_ss, sdio0, sdio0_pc, sdio0_cd, sdio0_wp,
648c2ecf20Sopenharmony_ci   sdio1, sdio1_pc, sdio1_cd, sdio1_wp,
658c2ecf20Sopenharmony_ci   smc0_nor, smc0_nor_cs1, smc0_nor_addr25, smc0_nand, can0, can1, uart0, uart1,
668c2ecf20Sopenharmony_ci   i2c0, i2c1, ttc0, ttc1, swdt0, gpio0, usb0, usb1
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciThe following driver-specific properties as defined here are valid to specify in
698c2ecf20Sopenharmony_cia pin configuration subnode:
708c2ecf20Sopenharmony_ci - io-standard: Configure the pin to use the selected IO standard according to
718c2ecf20Sopenharmony_ci   this mapping:
728c2ecf20Sopenharmony_ci    1: LVCMOS18
738c2ecf20Sopenharmony_ci    2: LVCMOS25
748c2ecf20Sopenharmony_ci    3: LVCMOS33
758c2ecf20Sopenharmony_ci    4: HSTL
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciExample:
788c2ecf20Sopenharmony_ci	pinctrl0: pinctrl@700 {
798c2ecf20Sopenharmony_ci		compatible = "xlnx,pinctrl-zynq";
808c2ecf20Sopenharmony_ci		reg = <0x700 0x200>;
818c2ecf20Sopenharmony_ci		syscon = <&slcr>;
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci		pinctrl_uart1_default: uart1-default {
848c2ecf20Sopenharmony_ci			mux {
858c2ecf20Sopenharmony_ci				groups = "uart1_10_grp";
868c2ecf20Sopenharmony_ci				function = "uart1";
878c2ecf20Sopenharmony_ci			};
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci			conf {
908c2ecf20Sopenharmony_ci				groups = "uart1_10_grp";
918c2ecf20Sopenharmony_ci				slew-rate = <0>;
928c2ecf20Sopenharmony_ci				io-standard = <1>;
938c2ecf20Sopenharmony_ci			};
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci			conf-rx {
968c2ecf20Sopenharmony_ci				pins = "MIO49";
978c2ecf20Sopenharmony_ci				bias-high-impedance;
988c2ecf20Sopenharmony_ci			};
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci			conf-tx {
1018c2ecf20Sopenharmony_ci				pins = "MIO48";
1028c2ecf20Sopenharmony_ci				bias-disable;
1038c2ecf20Sopenharmony_ci			};
1048c2ecf20Sopenharmony_ci		};
1058c2ecf20Sopenharmony_ci	};
106