1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pinctrl/eswin,eic7700-pinctrl.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Eswin Eic7700 Pinctrl 8 9maintainers: 10 - Yulin Lu <luyulin@eswincomputing.com> 11 12allOf: 13 - $ref: pinctrl.yaml# 14 15description: | 16 eic7700 pin configuration nodes act as a container for an arbitrary number of 17 subnodes. Each of these subnodes represents some desired configuration for one or 18 more pins. This configuration can include the mux function to select on those pin(s), 19 and various pin configuration parameters, such as input-enable, pull-up, etc. 20 21properties: 22 compatible: 23 const: eswin,eic7700-pinctrl 24 25 reg: 26 maxItems: 1 27 28 vrgmii-supply: 29 description: 30 Regulator supply for the RGMII interface IO power domain. 31 This property should reference a regulator that provides either 1.8V or 3.3V, 32 depending on the board-level voltage configuration required by the RGMII interface. 33 34patternProperties: 35 '-grp$': 36 type: object 37 additionalProperties: false 38 39 patternProperties: 40 '-pins$': 41 type: object 42 43 properties: 44 pins: 45 description: 46 For eic7700, specifies the name(s) of one or more pins to be configured by 47 this node. 48 items: 49 enum: [ chip_mode, mode_set0, mode_set1, mode_set2, mode_set3, xin, 50 rst_out_n, key_reset_n, gpio0, por_sel, jtag0_tck, jtag0_tms, 51 jtag0_tdi, jtag0_tdo, gpio5, spi2_cs0_n, jtag1_tck, jtag1_tms, 52 jtag1_tdi, jtag1_tdo, gpio11, spi2_cs1_n, pcie_clkreq_n, 53 pcie_wake_n, pcie_perst_n, hdmi_scl, hdmi_sda, hdmi_cec, 54 jtag2_trst, rgmii0_clk_125, rgmii0_txen, rgmii0_txclk, 55 rgmii0_txd0, rgmii0_txd1, rgmii0_txd2, rgmii0_txd3, i2s0_bclk, 56 i2s0_wclk, i2s0_sdi, i2s0_sdo, i2s_mclk, rgmii0_rxclk, 57 rgmii0_rxdv, rgmii0_rxd0, rgmii0_rxd1, rgmii0_rxd2, rgmii0_rxd3, 58 i2s2_bclk, i2s2_wclk, i2s2_sdi, i2s2_sdo, gpio27, gpio28, gpio29, 59 rgmii0_mdc, rgmii0_mdio, rgmii0_intb, rgmii1_clk_125, rgmii1_txen, 60 rgmii1_txclk, rgmii1_txd0, rgmii1_txd1, rgmii1_txd2, rgmii1_txd3, 61 i2s1_bclk, i2s1_wclk, i2s1_sdi, i2s1_sdo, gpio34, rgmii1_rxclk, 62 rgmii1_rxdv, rgmii1_rxd0, rgmii1_rxd1, rgmii1_rxd2, rgmii1_rxd3, 63 spi1_cs0_n, spi1_clk, spi1_d0, spi1_d1, spi1_d2, spi1_d3, spi1_cs1_n, 64 rgmii1_mdc, rgmii1_mdio, rgmii1_intb, usb0_pwren, usb1_pwren, 65 i2c0_scl, i2c0_sda, i2c1_scl, i2c1_sda, i2c2_scl, i2c2_sda, 66 i2c3_scl, i2c3_sda, i2c4_scl, i2c4_sda, i2c5_scl, i2c5_sda, 67 uart0_tx, uart0_rx, uart1_tx, uart1_rx, uart1_cts, uart1_rts, 68 uart2_tx, uart2_rx, jtag2_tck, jtag2_tms, jtag2_tdi, jtag2_tdo, 69 fan_pwm, fan_tach, mipi_csi0_xvs, mipi_csi0_xhs, mipi_csi0_mclk, 70 mipi_csi1_xvs, mipi_csi1_xhs, mipi_csi1_mclk, mipi_csi2_xvs, 71 mipi_csi2_xhs, mipi_csi2_mclk, mipi_csi3_xvs, mipi_csi3_xhs, 72 mipi_csi3_mclk, mipi_csi4_xvs, mipi_csi4_xhs, mipi_csi4_mclk, 73 mipi_csi5_xvs, mipi_csi5_xhs, mipi_csi5_mclk, spi3_cs_n, spi3_clk, 74 spi3_di, spi3_do, gpio92, gpio93, s_mode, gpio95, spi0_cs_n, 75 spi0_clk, spi0_d0, spi0_d1, spi0_d2, spi0_d3, i2c10_scl, 76 i2c10_sda, i2c11_scl, i2c11_sda, gpio106, boot_sel0, boot_sel1, 77 boot_sel2, boot_sel3, gpio111, lpddr_ref_clk ] 78 79 function: 80 description: 81 Specify the alternative function to be configured for the 82 given pins. 83 enum: [ disabled, boot_sel, chip_mode, emmc, fan_tach, 84 gpio, hdmi, i2c, i2s, jtag, ddr_ref_clk_sel, 85 lpddr_ref_clk, mipi_csi, osc, pcie, pwm, 86 rgmii, reset, sata, sdio, spi, s_mode, uart, usb ] 87 88 input-schmitt-enable: true 89 90 input-schmitt-disable: true 91 92 bias-disable: true 93 94 bias-pull-down: true 95 96 bias-pull-up: true 97 98 input-enable: true 99 100 input-disable: true 101 102 drive-strength-microamp: true 103 104 required: 105 - pins 106 107 additionalProperties: false 108 109 allOf: 110 - $ref: pincfg-node.yaml# 111 - $ref: pinmux-node.yaml# 112 113 - if: 114 properties: 115 pins: 116 anyOf: 117 - pattern: '^rgmii' 118 - const: lpddr_ref_clk 119 then: 120 properties: 121 drive-strength-microamp: 122 enum: [3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000] 123 else: 124 properties: 125 drive-strength-microamp: 126 enum: [6000, 9000, 12000, 15000, 18000, 21000, 24000, 27000] 127 128required: 129 - compatible 130 - reg 131 132unevaluatedProperties: false 133 134examples: 135 - | 136 pinctrl@51600080 { 137 compatible = "eswin,eic7700-pinctrl"; 138 reg = <0x51600080 0x1fff80>; 139 vrgmii-supply = <&vcc_1v8>; 140 141 dev-active-grp { 142 /* group node defining 1 standard pin */ 143 gpio10-pins { 144 pins = "jtag1_tdo"; 145 function = "gpio"; 146 input-enable; 147 bias-pull-up; 148 }; 149 150 /* group node defining 2 I2C pins */ 151 i2c6-pins { 152 pins = "uart1_cts", "uart1_rts"; 153 function = "i2c"; 154 }; 155 }; 156 }; 157