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