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