Documentation / devicetree / bindings / pinctrl / eswin,eic7700-pinctrl.yaml


Based on kernel version 6.17. Page generated on 2025-10-03 10:04 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/eswin,eic7700-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Eswin Eic7700 Pinctrl

maintainers:
  - Yulin Lu <luyulin@eswincomputing.com>

allOf:
  - $ref: pinctrl.yaml#

description: |
  eic7700 pin configuration nodes act as a container for an arbitrary number of
  subnodes. Each of these subnodes represents some desired configuration for one or
  more pins. This configuration can include the mux function to select on those pin(s),
  and various pin configuration parameters, such as input-enable, pull-up, etc.

properties:
  compatible:
    const: eswin,eic7700-pinctrl

  reg:
    maxItems: 1

  vrgmii-supply:
    description:
      Regulator supply for the RGMII interface IO power domain.
      This property should reference a regulator that provides either 1.8V or 3.3V,
      depending on the board-level voltage configuration required by the RGMII interface.

patternProperties:
  '-grp$':
    type: object
    additionalProperties: false

    patternProperties:
      '-pins$':
        type: object

        properties:
          pins:
            description:
              For eic7700, specifies the name(s) of one or more pins to be configured by
              this node.
            items:
              enum: [ chip_mode, mode_set0, mode_set1, mode_set2, mode_set3, xin,
                      rst_out_n, key_reset_n, gpio0, por_sel, jtag0_tck, jtag0_tms,
                      jtag0_tdi, jtag0_tdo, gpio5, spi2_cs0_n, jtag1_tck, jtag1_tms,
                      jtag1_tdi, jtag1_tdo, gpio11, spi2_cs1_n, pcie_clkreq_n,
                      pcie_wake_n, pcie_perst_n, hdmi_scl, hdmi_sda, hdmi_cec,
                      jtag2_trst, rgmii0_clk_125, rgmii0_txen, rgmii0_txclk,
                      rgmii0_txd0, rgmii0_txd1, rgmii0_txd2, rgmii0_txd3, i2s0_bclk,
                      i2s0_wclk, i2s0_sdi, i2s0_sdo, i2s_mclk, rgmii0_rxclk,
                      rgmii0_rxdv, rgmii0_rxd0, rgmii0_rxd1, rgmii0_rxd2, rgmii0_rxd3,
                      i2s2_bclk, i2s2_wclk, i2s2_sdi, i2s2_sdo, gpio27, gpio28, gpio29,
                      rgmii0_mdc, rgmii0_mdio, rgmii0_intb, rgmii1_clk_125, rgmii1_txen,
                      rgmii1_txclk, rgmii1_txd0, rgmii1_txd1, rgmii1_txd2, rgmii1_txd3,
                      i2s1_bclk, i2s1_wclk, i2s1_sdi, i2s1_sdo, gpio34, rgmii1_rxclk,
                      rgmii1_rxdv, rgmii1_rxd0, rgmii1_rxd1, rgmii1_rxd2, rgmii1_rxd3,
                      spi1_cs0_n, spi1_clk, spi1_d0, spi1_d1, spi1_d2, spi1_d3, spi1_cs1_n,
                      rgmii1_mdc, rgmii1_mdio, rgmii1_intb, usb0_pwren, usb1_pwren,
                      i2c0_scl, i2c0_sda, i2c1_scl, i2c1_sda, i2c2_scl, i2c2_sda,
                      i2c3_scl, i2c3_sda, i2c4_scl, i2c4_sda, i2c5_scl, i2c5_sda,
                      uart0_tx, uart0_rx, uart1_tx, uart1_rx, uart1_cts, uart1_rts,
                      uart2_tx, uart2_rx, jtag2_tck, jtag2_tms, jtag2_tdi, jtag2_tdo,
                      fan_pwm, fan_tach, mipi_csi0_xvs, mipi_csi0_xhs, mipi_csi0_mclk,
                      mipi_csi1_xvs, mipi_csi1_xhs, mipi_csi1_mclk, mipi_csi2_xvs,
                      mipi_csi2_xhs, mipi_csi2_mclk, mipi_csi3_xvs, mipi_csi3_xhs,
                      mipi_csi3_mclk, mipi_csi4_xvs, mipi_csi4_xhs, mipi_csi4_mclk,
                      mipi_csi5_xvs, mipi_csi5_xhs, mipi_csi5_mclk, spi3_cs_n, spi3_clk,
                      spi3_di, spi3_do, gpio92, gpio93, s_mode, gpio95, spi0_cs_n,
                      spi0_clk, spi0_d0, spi0_d1, spi0_d2, spi0_d3, i2c10_scl,
                      i2c10_sda, i2c11_scl, i2c11_sda, gpio106, boot_sel0, boot_sel1,
                      boot_sel2, boot_sel3, gpio111, lpddr_ref_clk ]

          function:
            description:
              Specify the alternative function to be configured for the
              given pins.
            enum: [ disabled, boot_sel, chip_mode, emmc, fan_tach,
                    gpio, hdmi, i2c, i2s, jtag, ddr_ref_clk_sel,
                    lpddr_ref_clk, mipi_csi, osc, pcie, pwm,
                    rgmii, reset, sata, sdio, spi, s_mode, uart, usb ]

          input-schmitt-enable: true

          input-schmitt-disable: true

          bias-disable: true

          bias-pull-down: true

          bias-pull-up: true

          input-enable: true

          input-disable: true

          drive-strength-microamp: true

        required:
          - pins

        additionalProperties: false

        allOf:
          - $ref: pincfg-node.yaml#
          - $ref: pinmux-node.yaml#

          - if:
              properties:
                pins:
                  anyOf:
                    - pattern: '^rgmii'
                    - const: lpddr_ref_clk
            then:
              properties:
                drive-strength-microamp:
                  enum: [3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000]
            else:
              properties:
                drive-strength-microamp:
                  enum: [6000, 9000, 12000, 15000, 18000, 21000, 24000, 27000]

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    pinctrl@51600080 {
      compatible = "eswin,eic7700-pinctrl";
      reg = <0x51600080 0x1fff80>;
      vrgmii-supply = <&vcc_1v8>;
 
      dev-active-grp {
        /* group node defining 1 standard pin */
        gpio10-pins {
          pins = "jtag1_tdo";
          function = "gpio";
          input-enable;
          bias-pull-up;
        };
 
        /* group node defining 2 I2C pins */
        i2c6-pins {
          pins = "uart1_cts", "uart1_rts";
          function = "i2c";
        };
      };
    };