xref: /linux/Documentation/devicetree/bindings/pinctrl/eswin,eic7700-pinctrl.yaml (revision 186f3edfdd41f2ae87fc40a9ccba52a3bf930994) !
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